C2A_Core
common_cmd_packet.h
[詳解]
1 
6 #ifndef COMMON_CMD_PACKET_H_
7 #define COMMON_CMD_PACKET_H_
8 
9 #include "../System/TimeManager/obc_time.h"
11 
12 // ここで CCP_DEST_TYPE を定義する
13 // 詳細は
14 // - /Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h
15 // - https://github.com/ut-issl/c2a-core/blob/develop/Docs/Core/communication.md
16 // を参照
17 /* 例
18 typedef enum
19 {
20  CCP_DEST_TYPE_TO_ME = 0x0,
21  CCP_DEST_TYPE_TO_MOBC = 0x1,
22  CCP_DEST_TYPE_TO_AOBC = 0x2,
23  CCP_DEST_TYPE_TO_TOBC = 0x3,
24  CCP_DEST_TYPE_TO_UNKOWN = 0xe,
25  CCP_DEST_TYPE_TO_APID = 0xf
26 } CCP_DEST_TYPE;
27 */
28 // さらに, CCP_APID_TO_ME, CCP_MAX_LEN, CommonCmdPacket として使うパケット型を指定する
30 
31 // ここで APID を定義する
32 // 詳細は common_tlm_cmd_packet.h を参照
34 
35 // TL_MIS を有効にするかどうか
37 
43 typedef enum
44 {
45  CCP_EXEC_SUCCESS = 0,
55 
62 typedef enum
63 {
71 #ifdef TLCD_ENABLE_MISSION_TL
72  CCP_EXEC_TYPE_TL_FOR_MISSION,
73  CCP_EXEC_TYPE_UTL_FOR_MISSION,
74 #endif
77 
82 typedef struct
83 {
85  uint32_t err_code;
86 } CCP_CmdRet;
87 
88 
97 int CCP_is_valid_packet(const CommonCmdPacket* packet);
98 
104 cycle_t CCP_get_ti(const CommonCmdPacket* packet);
105 
112 void CCP_set_ti(CommonCmdPacket* packet, cycle_t ti);
113 
119 APID CCP_get_apid(const CommonCmdPacket* packet);
120 
127 void CCP_set_apid(CommonCmdPacket* packet, APID apid);
128 
135 
143 
150 
158 
164 CMD_CODE CCP_get_id(const CommonCmdPacket* packet);
165 
172 void CCP_set_id(CommonCmdPacket* packet, CMD_CODE id);
173 
179 uint16_t CCP_get_packet_len(const CommonCmdPacket* packet);
180 
186 uint16_t CCP_get_param_len(const CommonCmdPacket* packet);
187 
193 uint16_t CCP_get_max_param_len(void);
194 
200 const uint8_t* CCP_get_param_head(const CommonCmdPacket* packet);
201 
209 void CCP_set_param(CommonCmdPacket* packet, const uint8_t* param, uint16_t len);
210 
216 void CCP_set_common_hdr(CommonCmdPacket* packet);
217 
225 void CCP_copy_packet(CommonCmdPacket* dest, const CommonCmdPacket* src);
226 
227 #endif
CCSDS の APID を定義する
APID
Application Process ID
Definition: apid_define.h:17
コマンド定義
void CCP_set_param(CommonCmdPacket *packet, const uint8_t *param, uint16_t len)
パラメタを設定
uint16_t CCP_get_packet_len(const CommonCmdPacket *packet)
パケット長を取得
uint16_t CCP_get_max_param_len(void)
CMD パラメタ長の最大値を取得
CCP_DEST_TYPE CCP_get_dest_type(const CommonCmdPacket *packet)
DEST_TYPE を取得
void CCP_set_apid(CommonCmdPacket *packet, APID apid)
APID を設定
void CCP_set_ti(CommonCmdPacket *packet, cycle_t ti)
TI を設定
void CCP_set_common_hdr(CommonCmdPacket *packet)
共通部分の Header を構築
CCP_EXEC_STS
コマンド実行結果コード
@ CCP_EXEC_PACKET_FMT_ERR
packet handler, ccp util で用いる
@ CCP_EXEC_UNKNOWN
内部処理用.使わない.
@ CCP_EXEC_SUCCESS
@ CCP_EXEC_ILLEGAL_LENGTH
コマンド実行時のコマンド引数長エラー
@ CCP_EXEC_ILLEGAL_PARAMETER
コマンド実行時のパラメタエラー
@ CCP_EXEC_ROUTING_FAILED
PH_dispatch_command, PH_user_cmd_router で用いる
@ CCP_EXEC_CMD_NOT_DEFINED
CA_execute_cmd で用いる
@ CCP_EXEC_ILLEGAL_CONTEXT
コマンド実行時のその他のエラー
CMD_CODE CCP_get_id(const CommonCmdPacket *packet)
CMD ID を取得
CCP_EXEC_TYPE CCP_get_exec_type(const CommonCmdPacket *packet)
EXEC_TYPE を取得
void CCP_set_dest_type(CommonCmdPacket *packet, CCP_DEST_TYPE type)
DEST_TYPE を設定
uint16_t CCP_get_param_len(const CommonCmdPacket *packet)
CMD パラメタ長を取得
APID CCP_get_apid(const CommonCmdPacket *packet)
APID を取得
void CCP_set_exec_type(CommonCmdPacket *packet, CCP_EXEC_TYPE type)
EXEC_TYPE を設定
const uint8_t * CCP_get_param_head(const CommonCmdPacket *packet)
先頭のパラメタのポインタを取得
cycle_t CCP_get_ti(const CommonCmdPacket *packet)
TI を取得
void CCP_set_id(CommonCmdPacket *packet, CMD_CODE id)
CMD ID を設定
CCP_EXEC_TYPE
コマンド実行種別
@ CCP_EXEC_TYPE_UNKNOWN
@ CCP_EXEC_TYPE_TL_DEPLOY_BC
@ CCP_EXEC_TYPE_GS
GS : Ground Station Command
@ CCP_EXEC_TYPE_RT
RT : Realtime Command
@ CCP_EXEC_TYPE_BC
BC : Block Command
@ CCP_EXEC_TYPE_TL_DEPLOY_TLM
@ CCP_EXEC_TYPE_UTL
UTL: Unixtime Timeline Command
@ CCP_EXEC_TYPE_TL_FROM_GS
TL : Timeline Command
int CCP_is_valid_packet(const CommonCmdPacket *packet)
有効なパケットかチェックする
void CCP_copy_packet(CommonCmdPacket *dest, const CommonCmdPacket *src)
CommonCmdPacket をコピー
CCP_DEST_TYPE
コマンドの解釈の宛先を規定
uint32_t cycle_t
Definition: obc_time.h:10
コマンド返り値
uint32_t err_code
各 Cmd ユニークなエラーコード.各 App で定義する enum などを入れることを想定.
CCP_EXEC_STS exec_sts
CCP_EXEC_STS.Cmd の統一的なエラーコード
Space Packet (コマンド用)
timeline command dispatcher の各種定義