C2A_Core
cmd_space_packet.h
[詳解]
1 
39 #ifndef CMD_SPACE_PACKET_H_
40 #define CMD_SPACE_PACKET_H_
41 
42 // はじめにバージョン型だけ定義
48 typedef enum
49 {
53 
54 
55 #define CSP_SND_HDR_LEN (9)
56 #define CSP_2ND_HDR_VER_TO_USE (CSP_2ND_HDR_VER_1)
57 
58 // CSP_MAX_LEN, CSP_2ND_HDR_VER_TO_USE を再定義
60 
61 // 相互参照問題があるので,この順番で include
62 #include <stdint.h>
63 #include "space_packet_typedef.h"
64 #include "space_packet.h"
65 #include "../common_cmd_packet.h"
66 
67 #if CSP_MAX_LEN <= SP_PRM_HDR_LEN
68 #error CSP_MAX_LEN is too small
69 #endif
70 
71 
78 typedef enum
79 {
82 
83 
84 // ******************************
85 // Primary Header getter/setter
86 // ******************************
87 
94 
101 void CSP_set_ver(CmdSpacePacket* csp, SP_VER ver);
102 
109 
116 void CSP_set_type(CmdSpacePacket* csp, SP_TYPE type);
117 
124 
132 
138 APID CSP_get_apid(const CmdSpacePacket* csp);
139 
146 void CSP_set_apid(CmdSpacePacket* csp, APID apid);
147 
154 
162 
168 uint16_t CSP_get_seq_count(const CmdSpacePacket* csp);
169 
176 void CSP_set_seq_count(CmdSpacePacket* csp, uint16_t count);
177 
183 uint16_t CSP_get_packet_data_len(const CmdSpacePacket* csp);
184 
193 void CSP_set_packet_data_len(CmdSpacePacket* csp, uint16_t len);
194 
195 
196 // **************************
197 // 2nd Header getter/setter
198 // **************************
199 
206 
214 
221 
228 void CSP_set_cmd_type(CmdSpacePacket* csp, CSP_CMD_TYPE cmd_type);
229 
236 
243 void CSP_set_cmd_id(CmdSpacePacket* csp, CMD_CODE id);
244 
251 
258 void CSP_set_dest_type(CmdSpacePacket* csp, CCP_DEST_TYPE dest_type);
259 
266 
273 void CSP_set_exec_type(CmdSpacePacket* csp, CCP_EXEC_TYPE exec_type);
274 
280 uint32_t CSP_get_ti(const CmdSpacePacket* csp);
281 
288 void CSP_set_ti(CmdSpacePacket* csp, uint32_t ti);
289 
290 
291 // ******************
292 // Utility Function
293 // ******************
294 
300 uint16_t CSP_get_packet_len(const CmdSpacePacket* csp);
301 
308 void CSP_set_packet_len(CmdSpacePacket* csp, uint16_t len);
309 
317 void CSP_copy_packet(CmdSpacePacket* dest, const CmdSpacePacket* src);
318 
324 const uint8_t* CSP_get_param_head(const CmdSpacePacket* csp);
325 
331 uint16_t CSP_get_param_len(const CmdSpacePacket* csp);
332 
340 void CSP_set_param(CmdSpacePacket* csp, const uint8_t* param, uint16_t len);
341 
348 
349 #endif
APID
Application Process ID
Definition: apid_define.h:17
void CSP_set_exec_type(CmdSpacePacket *csp, CCP_EXEC_TYPE exec_type)
Execution Type を設定
const uint8_t * CSP_get_param_head(const CmdSpacePacket *csp)
コマンドパラメタの先頭ポインタを取得
SP_VER CSP_get_ver(const CmdSpacePacket *csp)
Version No を取得
SP_SEQ_FLAG CSP_get_seq_flag(const CmdSpacePacket *csp)
Sequence Flag を取得
CSP_CMD_TYPE CSP_get_cmd_type(const CmdSpacePacket *csp)
Command Type を取得
void CSP_set_packet_len(CmdSpacePacket *csp, uint16_t len)
Packet Length を設定
void CSP_set_ver(CmdSpacePacket *csp, SP_VER ver)
Version No を設定
void CSP_copy_packet(CmdSpacePacket *dest, const CmdSpacePacket *src)
CmdSpacePacket をコピー
void CSP_set_2nd_hdr_flag(CmdSpacePacket *csp, SP_2ND_HDR_FLAG flag)
Secondary Header Flag を設定
void CSP_set_ti(CmdSpacePacket *csp, uint32_t ti)
Time Indicator (TI) を設定
void CSP_set_dest_type(CmdSpacePacket *csp, CCP_DEST_TYPE dest_type)
Destination Type を設定
CMD_CODE CSP_get_cmd_id(const CmdSpacePacket *csp)
Command ID を取得
CSP_CMD_TYPE
Command Type
@ CSP_CMD_TYPE_UNKNOWN
void CSP_set_type(CmdSpacePacket *csp, SP_TYPE type)
Packet Type を設定
void CSP_set_packet_data_len(CmdSpacePacket *csp, uint16_t len)
Packet Data Length を設定
APID CSP_get_apid(const CmdSpacePacket *csp)
APID を取得
void CSP_set_seq_flag(CmdSpacePacket *csp, SP_SEQ_FLAG flag)
Sequence Flag を設定
void CSP_set_cmd_id(CmdSpacePacket *csp, CMD_CODE id)
Command ID を設定
uint16_t CSP_get_packet_data_len(const CmdSpacePacket *csp)
Packet Data Length を取得
uint32_t CSP_get_ti(const CmdSpacePacket *csp)
Time Indicator (TI) を取得
uint16_t CSP_get_seq_count(const CmdSpacePacket *csp)
Sequence Count を取得
SP_TYPE CSP_get_type(const CmdSpacePacket *csp)
Packet Type を取得
void CSP_set_common_hdr(CmdSpacePacket *csp)
共通部分の Header を構築
CCP_DEST_TYPE CSP_get_dest_type(const CmdSpacePacket *csp)
Destination Type を取得
void CSP_set_2nd_hdr_ver(CmdSpacePacket *csp, CSP_2ND_HDR_VER ver)
Secondary Header Version No を設定
SP_2ND_HDR_FLAG CSP_get_2nd_hdr_flag(const CmdSpacePacket *csp)
Secondary Header Flag を取得
CSP_2ND_HDR_VER CSP_get_2nd_hdr_ver(const CmdSpacePacket *csp)
Secondary Header Version No を取得
uint16_t CSP_get_param_len(const CmdSpacePacket *csp)
Param Length を取得
void CSP_set_seq_count(CmdSpacePacket *csp, uint16_t count)
Sequence Count を設定
void CSP_set_apid(CmdSpacePacket *csp, APID apid)
APID を設定
void CSP_set_param(CmdSpacePacket *csp, const uint8_t *param, uint16_t len)
コマンドパラメタを設定
CSP_2ND_HDR_VER
Secondary Header Version No
@ CSP_2ND_HDR_VER_1
Version-1
@ CSP_2ND_HDR_VER_UNKNOWN
バージョン不定
uint16_t CSP_get_packet_len(const CmdSpacePacket *csp)
Packet Length を取得
CCP_EXEC_TYPE CSP_get_exec_type(const CmdSpacePacket *csp)
Execution Type を取得
void CSP_set_cmd_type(CmdSpacePacket *csp, CSP_CMD_TYPE cmd_type)
Command Type を設定
CmdSpacePacket のユーザー設定
CCP_EXEC_TYPE
コマンド実行種別
CCP_DEST_TYPE
コマンドの解釈の宛先を規定
CCSDS で規定される Space Packet の実装
SP_TYPE
Space Packet Type
Definition: space_packet.h:64
SP_2ND_HDR_FLAG
Space Packet Secandary Header Flag
Definition: space_packet.h:76
SP_SEQ_FLAG
Space Packet Sequence Flag
Definition: space_packet.h:87
SP_VER
Space Packet Version Number
Definition: space_packet.h:52
SpacePacket 類 と CommonTlmCmdPacket 類が相互参照するのを回避するためのヘッダ
C89 環境用 stdint.h
Space Packet (コマンド用)