C2A_Core
common_cmd_packet.c
[詳解]
1 #pragma section REPRO
9 #include <string.h>
10 
11 
13 {
14  if (packet == NULL) return 0;
15  if ( CCP_get_packet_len(packet) > CCP_MAX_LEN ) return 0;
16 
17  return 1;
18 }
19 
21 {
22  return (cycle_t)CSP_get_ti(packet);
23 }
24 
26 {
27  CSP_set_ti(packet, (uint32_t)ti);
28 }
29 
31 {
32  return CSP_get_apid(packet);
33 }
34 
35 void CCP_set_apid(CommonCmdPacket* packet, APID apid)
36 {
37  CSP_set_apid(packet, apid);
38 }
39 
41 {
42  return CSP_get_exec_type(packet);
43 }
44 
46 {
47  CSP_set_exec_type(packet, type);
48 }
49 
51 {
52  return CSP_get_dest_type(packet);
53 }
54 
56 {
57  CSP_set_dest_type(packet, type);
58 }
59 
61 {
62  return CSP_get_cmd_id(packet);
63 }
64 
66 {
67  CSP_set_cmd_id(packet, id);
68 }
69 
70 uint16_t CCP_get_packet_len(const CommonCmdPacket* packet)
71 {
72  return CSP_get_packet_len(packet);
73 }
74 
75 uint16_t CCP_get_param_len(const CommonCmdPacket* packet)
76 {
77  return CSP_get_param_len(packet);
78 }
79 
80 uint16_t CCP_get_max_param_len(void)
81 {
82  return (uint16_t)(CSP_MAX_LEN - SP_PRM_HDR_LEN - CSP_SND_HDR_LEN);
83 }
84 
85 const uint8_t* CCP_get_param_head(const CommonCmdPacket* packet)
86 {
87  return CSP_get_param_head(packet);
88 }
89 
90 void CCP_set_param(CommonCmdPacket* packet, const uint8_t* param, uint16_t len)
91 {
92  CSP_set_param(packet, param, len);
93 }
94 
96 {
97  CSP_set_common_hdr(packet);
98 }
99 
101 {
102  CSP_copy_packet(dest, src);
103 }
104 
105 #pragma section
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)
コマンドパラメタの先頭ポインタを取得
void CSP_copy_packet(CmdSpacePacket *dest, const CmdSpacePacket *src)
CmdSpacePacket をコピー
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 を取得
APID CSP_get_apid(const CmdSpacePacket *csp)
APID を取得
void CSP_set_cmd_id(CmdSpacePacket *csp, CMD_CODE id)
Command ID を設定
uint32_t CSP_get_ti(const CmdSpacePacket *csp)
Time Indicator (TI) を取得
void CSP_set_common_hdr(CmdSpacePacket *csp)
共通部分の Header を構築
CCP_DEST_TYPE CSP_get_dest_type(const CmdSpacePacket *csp)
Destination Type を取得
uint16_t CSP_get_param_len(const CmdSpacePacket *csp)
Param Length を取得
void CSP_set_apid(CmdSpacePacket *csp, APID apid)
APID を設定
void CSP_set_param(CmdSpacePacket *csp, const uint8_t *param, uint16_t len)
コマンドパラメタを設定
uint16_t CSP_get_packet_len(const CmdSpacePacket *csp)
Packet Length を取得
CCP_EXEC_TYPE CSP_get_exec_type(const CmdSpacePacket *csp)
Execution Type を取得
CCSDS で規定される Space Packet の コマンド版の実装
#define CSP_SND_HDR_LEN
Secondary Header 長
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 を構築
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 を設定
int CCP_is_valid_packet(const CommonCmdPacket *packet)
有効なパケットかチェックする
void CCP_copy_packet(CommonCmdPacket *dest, const CommonCmdPacket *src)
CommonCmdPacket をコピー
CCP 関連基本関数の宣言
CCP_EXEC_TYPE
コマンド実行種別
CCP_DEST_TYPE
コマンドの解釈の宛先を規定
#define CCP_MAX_LEN
uint32_t cycle_t
Definition: obc_time.h:10
#define SP_PRM_HDR_LEN
Packet Primary Header 長
Definition: space_packet.h:43
#define CSP_MAX_LEN
CmdSpacePacket の最大パケット長.値は適当においている
Space Packet (コマンド用)