C2A_Core
cmd_space_packet.h ファイル

CCSDS で規定される Space Packet の コマンド版の実装 [詳解]

cmd_space_packet.h の依存先関係図:
被依存関係図:

[ソースコード]

マクロ定義

#define CSP_SND_HDR_LEN   (9)
 Secondary Header 長 [詳解]
 
#define CSP_2ND_HDR_VER_TO_USE   (CSP_2ND_HDR_VER_1)
 使う Sec. HDR Ver [詳解]
 

列挙型

enum  CSP_2ND_HDR_VER { CSP_2ND_HDR_VER_UNKNOWN = 0 , CSP_2ND_HDR_VER_1 = 1 }
 Secondary Header Version No [詳解]
 
enum  CSP_CMD_TYPE { CSP_CMD_TYPE_UNKNOWN }
 Command Type [詳解]
 

関数

SP_VER CSP_get_ver (const CmdSpacePacket *csp)
 Version No を取得 [詳解]
 
void CSP_set_ver (CmdSpacePacket *csp, SP_VER ver)
 Version No を設定 [詳解]
 
SP_TYPE CSP_get_type (const CmdSpacePacket *csp)
 Packet Type を取得 [詳解]
 
void CSP_set_type (CmdSpacePacket *csp, SP_TYPE type)
 Packet Type を設定 [詳解]
 
SP_2ND_HDR_FLAG CSP_get_2nd_hdr_flag (const CmdSpacePacket *csp)
 Secondary Header Flag を取得 [詳解]
 
void CSP_set_2nd_hdr_flag (CmdSpacePacket *csp, SP_2ND_HDR_FLAG flag)
 Secondary Header Flag を設定 [詳解]
 
APID CSP_get_apid (const CmdSpacePacket *csp)
 APID を取得 [詳解]
 
void CSP_set_apid (CmdSpacePacket *csp, APID apid)
 APID を設定 [詳解]
 
SP_SEQ_FLAG CSP_get_seq_flag (const CmdSpacePacket *csp)
 Sequence Flag を取得 [詳解]
 
void CSP_set_seq_flag (CmdSpacePacket *csp, SP_SEQ_FLAG flag)
 Sequence Flag を設定 [詳解]
 
uint16_t CSP_get_seq_count (const CmdSpacePacket *csp)
 Sequence Count を取得 [詳解]
 
void CSP_set_seq_count (CmdSpacePacket *csp, uint16_t count)
 Sequence Count を設定 [詳解]
 
uint16_t CSP_get_packet_data_len (const CmdSpacePacket *csp)
 Packet Data Length を取得 [詳解]
 
void CSP_set_packet_data_len (CmdSpacePacket *csp, uint16_t len)
 Packet Data Length を設定 [詳解]
 
CSP_2ND_HDR_VER CSP_get_2nd_hdr_ver (const CmdSpacePacket *csp)
 Secondary Header Version No を取得 [詳解]
 
void CSP_set_2nd_hdr_ver (CmdSpacePacket *csp, CSP_2ND_HDR_VER ver)
 Secondary Header Version No を設定 [詳解]
 
CSP_CMD_TYPE CSP_get_cmd_type (const CmdSpacePacket *csp)
 Command Type を取得 [詳解]
 
void CSP_set_cmd_type (CmdSpacePacket *csp, CSP_CMD_TYPE cmd_type)
 Command Type を設定 [詳解]
 
CMD_CODE CSP_get_cmd_id (const CmdSpacePacket *csp)
 Command ID を取得 [詳解]
 
void CSP_set_cmd_id (CmdSpacePacket *csp, CMD_CODE id)
 Command ID を設定 [詳解]
 
CCP_DEST_TYPE CSP_get_dest_type (const CmdSpacePacket *csp)
 Destination Type を取得 [詳解]
 
void CSP_set_dest_type (CmdSpacePacket *csp, CCP_DEST_TYPE dest_type)
 Destination Type を設定 [詳解]
 
CCP_EXEC_TYPE CSP_get_exec_type (const CmdSpacePacket *csp)
 Execution Type を取得 [詳解]
 
void CSP_set_exec_type (CmdSpacePacket *csp, CCP_EXEC_TYPE exec_type)
 Execution Type を設定 [詳解]
 
uint32_t CSP_get_ti (const CmdSpacePacket *csp)
 Time Indicator (TI) を取得 [詳解]
 
void CSP_set_ti (CmdSpacePacket *csp, uint32_t ti)
 Time Indicator (TI) を設定 [詳解]
 
uint16_t CSP_get_packet_len (const CmdSpacePacket *csp)
 Packet Length を取得 [詳解]
 
void CSP_set_packet_len (CmdSpacePacket *csp, uint16_t len)
 Packet Length を設定 [詳解]
 
void CSP_copy_packet (CmdSpacePacket *dest, const CmdSpacePacket *src)
 CmdSpacePacket をコピー [詳解]
 
const uint8_t * CSP_get_param_head (const CmdSpacePacket *csp)
 コマンドパラメタの先頭ポインタを取得 [詳解]
 
uint16_t CSP_get_param_len (const CmdSpacePacket *csp)
 Param Length を取得 [詳解]
 
void CSP_set_param (CmdSpacePacket *csp, const uint8_t *param, uint16_t len)
 コマンドパラメタを設定 [詳解]
 
void CSP_set_common_hdr (CmdSpacePacket *csp)
 共通部分の Header を構築 [詳解]
 

詳解

CCSDS で規定される Space Packet の コマンド版の実装

C ではテンプレートが使えないため,別で定義する

覚え書き
詳細は space_packet.h を参照
現在は, Sec. HDR Ver.1 のみ.追加するときに拡張していく
packet 構造 |------—+----—+----—+---------------—| | Pos | Pos | size | name | | [octet] | [bit] | [bit] | | |------—+----—+----—+---------------—| | === Primary Header ======================= | |------—+----—+----—+---------------—| | 0 | 0 | 3 | Version No | | 0 | 3 | 1 | Packet Type | | 0 | 4 | 1 | Sec. HDR Flag | | 0 | 5 | 11 | APID | | 2 | 0 | 2 | Sequence Flags | | 2 | 2 | 14 | Sequence Count | | 4 | 0 | 16 | Packet Data Len | |------—+----—+----—+---------------—| | === Secondary Header ===================== | |------—+----—+----—+---------------—| | 6 | 0 | 8 | Sec. HDR Ver | | 7 | 0 | 8 | Command Type | | 8 | 0 | 16 | Command ID | | 10 | 0 | 4 | Dest Type | | 10 | 4 | 4 | Execution Type | | 11 | 0 | 32 | Time Indicator | |------—+----—+----—+---------------—| | === User Data Field ====================== | |------—+----—+----—+---------------—| | 15 | 0 | * | Cmd Param #0 | | * | 0 | * | Cmd Param #1 | | * | 0 | * | Cmd Param #2 | | * | 0 | * | ... | |------—+----—+----—+---------------—|

cmd_space_packet.h に定義があります。

マクロ定義詳解

◆ CSP_2ND_HDR_VER_TO_USE

#define CSP_2ND_HDR_VER_TO_USE   (CSP_2ND_HDR_VER_1)

使う Sec. HDR Ver

cmd_space_packet.h56 行目に定義があります。

◆ CSP_SND_HDR_LEN

#define CSP_SND_HDR_LEN   (9)

Secondary Header 長

cmd_space_packet.h55 行目に定義があります。

列挙型詳解

◆ CSP_2ND_HDR_VER

Secondary Header Version No

覚え書き
8bit
列挙値
CSP_2ND_HDR_VER_UNKNOWN 

バージョン不定

CSP_2ND_HDR_VER_1 

Version-1

cmd_space_packet.h48 行目に定義があります。

◆ CSP_CMD_TYPE

Command Type

覚え書き
8bit
過去では使われていたが,現在は(ひとまず)使ってない
列挙値
CSP_CMD_TYPE_UNKNOWN 

cmd_space_packet.h78 行目に定義があります。

関数詳解

◆ CSP_copy_packet()

void CSP_copy_packet ( CmdSpacePacket dest,
const CmdSpacePacket src 
)

CmdSpacePacket をコピー

覚え書き
高速化のためすすべてではなく必要最低限しかコピーしない
引数
[in,out]destコピー先 CmdSpacePacket
[in]srcコピー元 CmdSpacePacket
戻り値
void

cmd_space_packet.c253 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_2nd_hdr_flag()

SP_2ND_HDR_FLAG CSP_get_2nd_hdr_flag ( const CmdSpacePacket csp)

Secondary Header Flag を取得

引数
cspCmdSpacePacket
戻り値
SP_2ND_HDR_FLAG

cmd_space_packet.c52 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_2nd_hdr_ver()

CSP_2ND_HDR_VER CSP_get_2nd_hdr_ver ( const CmdSpacePacket csp)

Secondary Header Version No を取得

引数
cspCmdSpacePacket
戻り値
CSP_2ND_HDR_VER

cmd_space_packet.c116 行目に定義があります。

呼び出し関係図:

◆ CSP_get_apid()

APID CSP_get_apid ( const CmdSpacePacket csp)

APID を取得

引数
cspCmdSpacePacket
戻り値
APID

cmd_space_packet.c64 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_cmd_id()

CMD_CODE CSP_get_cmd_id ( const CmdSpacePacket csp)

Command ID を取得

引数
cspCmdSpacePacket
戻り値
Command ID

cmd_space_packet.c156 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_cmd_type()

CSP_CMD_TYPE CSP_get_cmd_type ( const CmdSpacePacket csp)

Command Type を取得

引数
cspCmdSpacePacket
戻り値
CSP_CMD_TYPE

cmd_space_packet.c141 行目に定義があります。

◆ CSP_get_dest_type()

CCP_DEST_TYPE CSP_get_dest_type ( const CmdSpacePacket csp)

Destination Type を取得

引数
cspCmdSpacePacket
戻り値
CCP_DEST_TYPE

cmd_space_packet.c172 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_exec_type()

CCP_EXEC_TYPE CSP_get_exec_type ( const CmdSpacePacket csp)

Execution Type を取得

引数
cspCmdSpacePacket
戻り値
CCP_EXEC_TYPE

cmd_space_packet.c187 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_packet_data_len()

uint16_t CSP_get_packet_data_len ( const CmdSpacePacket csp)

Packet Data Length を取得

引数
cspCmdSpacePacket
戻り値
Packet Data Length

cmd_space_packet.c100 行目に定義があります。

呼び出し関係図:

◆ CSP_get_packet_len()

uint16_t CSP_get_packet_len ( const CmdSpacePacket csp)

Packet Length を取得

引数
cspCmdSpacePacket
戻り値
Packet Length

cmd_space_packet.c241 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_param_head()

const uint8_t* CSP_get_param_head ( const CmdSpacePacket csp)

コマンドパラメタの先頭ポインタを取得

引数
cspCmdSpacePacket
戻り値
*param_head

cmd_space_packet.c259 行目に定義があります。

被呼び出し関係図:

◆ CSP_get_param_len()

uint16_t CSP_get_param_len ( const CmdSpacePacket csp)

Param Length を取得

引数
cspCmdSpacePacket
戻り値
Param Length

cmd_space_packet.c265 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_seq_count()

uint16_t CSP_get_seq_count ( const CmdSpacePacket csp)

Sequence Count を取得

引数
cspCmdSpacePacket
戻り値
Sequence Count

cmd_space_packet.c88 行目に定義があります。

呼び出し関係図:

◆ CSP_get_seq_flag()

SP_SEQ_FLAG CSP_get_seq_flag ( const CmdSpacePacket csp)

Sequence Flag を取得

引数
cspCmdSpacePacket
戻り値
SP_SEQ_FLAG

cmd_space_packet.c76 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_ti()

uint32_t CSP_get_ti ( const CmdSpacePacket csp)

Time Indicator (TI) を取得

引数
cspCmdSpacePacket
戻り値
TI

cmd_space_packet.c222 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_type()

SP_TYPE CSP_get_type ( const CmdSpacePacket csp)

Packet Type を取得

引数
cspCmdSpacePacket
戻り値
SP_TYPE

cmd_space_packet.c40 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_get_ver()

SP_VER CSP_get_ver ( const CmdSpacePacket csp)

Version No を取得

引数
cspCmdSpacePacket
戻り値
SP_VER

cmd_space_packet.c28 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_2nd_hdr_flag()

void CSP_set_2nd_hdr_flag ( CmdSpacePacket csp,
SP_2ND_HDR_FLAG  flag 
)

Secondary Header Flag を設定

引数
[in,out]cspCmdSpacePacket
[in]flagSP_2ND_HDR_FLAG
戻り値
void

cmd_space_packet.c58 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_2nd_hdr_ver()

void CSP_set_2nd_hdr_ver ( CmdSpacePacket csp,
CSP_2ND_HDR_VER  ver 
)

Secondary Header Version No を設定

引数
[in,out]cspCmdSpacePacket
[in]idCSP_2ND_HDR_VER
戻り値
void

cmd_space_packet.c134 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_apid()

void CSP_set_apid ( CmdSpacePacket csp,
APID  apid 
)

APID を設定

引数
[in,out]cspCmdSpacePacket
[in]apidAPID
戻り値
void

cmd_space_packet.c70 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_cmd_id()

void CSP_set_cmd_id ( CmdSpacePacket csp,
CMD_CODE  id 
)

Command ID を設定

引数
[in,out]cspCmdSpacePacket
[in]idCommand ID
戻り値
void

cmd_space_packet.c165 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_cmd_type()

void CSP_set_cmd_type ( CmdSpacePacket csp,
CSP_CMD_TYPE  cmd_type 
)

Command Type を設定

引数
[in,out]cspCmdSpacePacket
[in]cmd_typeCSP_CMD_TYPE
戻り値
void

cmd_space_packet.c149 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_common_hdr()

void CSP_set_common_hdr ( CmdSpacePacket csp)

共通部分の Header を構築

引数
[in,out]cspCmdSpacePacket
戻り値
void

cmd_space_packet.c284 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_dest_type()

void CSP_set_dest_type ( CmdSpacePacket csp,
CCP_DEST_TYPE  dest_type 
)

Destination Type を設定

引数
[in,out]cspCmdSpacePacket
[in]dest_typeCCP_DEST_TYPE
戻り値
void

cmd_space_packet.c180 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_exec_type()

void CSP_set_exec_type ( CmdSpacePacket csp,
CCP_EXEC_TYPE  exec_type 
)

Execution Type を設定

引数
[in,out]cspCmdSpacePacket
[in]exec_typeCCP_EXEC_TYPE
戻り値
void

cmd_space_packet.c215 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_packet_data_len()

void CSP_set_packet_data_len ( CmdSpacePacket csp,
uint16_t  len 
)

Packet Data Length を設定

覚え書き
Packet Data Length とは PACKET DATA FIELD 長であり,PRIMARY HEADER を含まない, 0 起算の長さ ( https://public.ccsds.org/Pubs/133x0b2e1.pdf )
引数
[in,out]cspCmdSpacePacket
[in]lenPacket Data Length
戻り値
void

cmd_space_packet.c106 行目に定義があります。

呼び出し関係図:

◆ CSP_set_packet_len()

void CSP_set_packet_len ( CmdSpacePacket csp,
uint16_t  len 
)

Packet Length を設定

引数
[in,out]cspCmdSpacePacket
[in]lenPacket Length
戻り値
void

cmd_space_packet.c247 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_param()

void CSP_set_param ( CmdSpacePacket csp,
const uint8_t *  param,
uint16_t  len 
)

コマンドパラメタを設定

引数
[in,out]cspCmdSpacePacket
[in]paramパラメタ配列のポインタ
[in]lenパラメタ長
戻り値
void

cmd_space_packet.c271 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_seq_count()

void CSP_set_seq_count ( CmdSpacePacket csp,
uint16_t  count 
)

Sequence Count を設定

引数
[in,out]cspCmdSpacePacket
[in]countSequence Count
戻り値
void

cmd_space_packet.c94 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_seq_flag()

void CSP_set_seq_flag ( CmdSpacePacket csp,
SP_SEQ_FLAG  flag 
)

Sequence Flag を設定

引数
[in,out]cspCmdSpacePacket
[in]flagSP_SEQ_FLAG
戻り値
void

cmd_space_packet.c82 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_ti()

void CSP_set_ti ( CmdSpacePacket csp,
uint32_t  ti 
)

Time Indicator (TI) を設定

引数
[in,out]cspCmdSpacePacket
[in]tiTI
戻り値
void

cmd_space_packet.c231 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_type()

void CSP_set_type ( CmdSpacePacket csp,
SP_TYPE  type 
)

Packet Type を設定

引数
[in,out]cspCmdSpacePacket
[in]typeSP_TYPE
戻り値
void

cmd_space_packet.c46 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ CSP_set_ver()

void CSP_set_ver ( CmdSpacePacket csp,
SP_VER  ver 
)

Version No を設定

引数
[in,out]cspCmdSpacePacket
[in]verSP_VER
戻り値
void

cmd_space_packet.c34 行目に定義があります。

呼び出し関係図:
被呼び出し関係図: