C2A_Core
common_cmd_packet.h ファイル

CCP 関連基本関数の宣言 [詳解]

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

[ソースコード]

データ構造

struct  CCP_CmdRet
 コマンド返り値 [詳解]
 

列挙型

enum  CCP_EXEC_STS {
  CCP_EXEC_SUCCESS = 0 , CCP_EXEC_ILLEGAL_LENGTH , CCP_EXEC_ILLEGAL_PARAMETER , CCP_EXEC_ILLEGAL_CONTEXT ,
  CCP_EXEC_CMD_NOT_DEFINED , CCP_EXEC_ROUTING_FAILED , CCP_EXEC_PACKET_FMT_ERR , CCP_EXEC_UNKNOWN
}
 コマンド実行結果コード [詳解]
 
enum  CCP_EXEC_TYPE {
  CCP_EXEC_TYPE_GS , CCP_EXEC_TYPE_TL_FROM_GS , CCP_EXEC_TYPE_BC , CCP_EXEC_TYPE_RT ,
  CCP_EXEC_TYPE_UTL , CCP_EXEC_TYPE_TL_DEPLOY_BC , CCP_EXEC_TYPE_TL_DEPLOY_TLM , CCP_EXEC_TYPE_UNKNOWN
}
 コマンド実行種別 [詳解]
 

関数

int CCP_is_valid_packet (const CommonCmdPacket *packet)
 有効なパケットかチェックする [詳解]
 
cycle_t CCP_get_ti (const CommonCmdPacket *packet)
 TI を取得 [詳解]
 
void CCP_set_ti (CommonCmdPacket *packet, cycle_t ti)
 TI を設定 [詳解]
 
APID CCP_get_apid (const CommonCmdPacket *packet)
 APID を取得 [詳解]
 
void CCP_set_apid (CommonCmdPacket *packet, APID apid)
 APID を設定 [詳解]
 
CCP_EXEC_TYPE CCP_get_exec_type (const CommonCmdPacket *packet)
 EXEC_TYPE を取得 [詳解]
 
void CCP_set_exec_type (CommonCmdPacket *packet, CCP_EXEC_TYPE type)
 EXEC_TYPE を設定 [詳解]
 
CCP_DEST_TYPE CCP_get_dest_type (const CommonCmdPacket *packet)
 DEST_TYPE を取得 [詳解]
 
void CCP_set_dest_type (CommonCmdPacket *packet, CCP_DEST_TYPE type)
 DEST_TYPE を設定 [詳解]
 
CMD_CODE CCP_get_id (const CommonCmdPacket *packet)
 CMD ID を取得 [詳解]
 
void CCP_set_id (CommonCmdPacket *packet, CMD_CODE id)
 CMD ID を設定 [詳解]
 
uint16_t CCP_get_packet_len (const CommonCmdPacket *packet)
 パケット長を取得 [詳解]
 
uint16_t CCP_get_param_len (const CommonCmdPacket *packet)
 CMD パラメタ長を取得 [詳解]
 
uint16_t CCP_get_max_param_len (void)
 CMD パラメタ長の最大値を取得 [詳解]
 
const uint8_t * CCP_get_param_head (const CommonCmdPacket *packet)
 先頭のパラメタのポインタを取得 [詳解]
 
void CCP_set_param (CommonCmdPacket *packet, const uint8_t *param, uint16_t len)
 パラメタを設定 [詳解]
 
void CCP_set_common_hdr (CommonCmdPacket *packet)
 共通部分の Header を構築 [詳解]
 
void CCP_copy_packet (CommonCmdPacket *dest, const CommonCmdPacket *src)
 CommonCmdPacket をコピー [詳解]
 

詳解

CCP 関連基本関数の宣言

覚え書き
CCP: CommonCmdPacket

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

列挙型詳解

◆ CCP_EXEC_STS

コマンド実行結果コード

覚え書き
uint8_t を想定
列挙値
CCP_EXEC_SUCCESS 

コマンド実行成功 なお,コマンドの実行の結果なので,その後の処理が失敗しても,コマンドが実行されていればこれを返す

CCP_EXEC_ILLEGAL_LENGTH 

コマンド実行時のコマンド引数長エラー

CCP_EXEC_ILLEGAL_PARAMETER 

コマンド実行時のパラメタエラー

CCP_EXEC_ILLEGAL_CONTEXT 

コマンド実行時のその他のエラー

CCP_EXEC_CMD_NOT_DEFINED 

CA_execute_cmd で用いる

CCP_EXEC_ROUTING_FAILED 

PH_dispatch_command, PH_user_cmd_router で用いる

CCP_EXEC_PACKET_FMT_ERR 

packet handler, ccp util で用いる

CCP_EXEC_UNKNOWN 

内部処理用.使わない.

common_cmd_packet.h43 行目に定義があります。

◆ CCP_EXEC_TYPE

コマンド実行種別

覚え書き
4bit を想定
GS (WINGS) からの OBC_TL や, C2A 内の CCP_form_tlc はすべて TL0 扱いとすること!
列挙値
CCP_EXEC_TYPE_GS 

GS : Ground Station Command

CCP_EXEC_TYPE_TL_FROM_GS 

TL : Timeline Command

CCP_EXEC_TYPE_BC 

BC : Block Command

CCP_EXEC_TYPE_RT 

RT : Realtime Command

CCP_EXEC_TYPE_UTL 

UTL: Unixtime Timeline Command

CCP_EXEC_TYPE_TL_DEPLOY_BC 
CCP_EXEC_TYPE_TL_DEPLOY_TLM 
CCP_EXEC_TYPE_UNKNOWN 

common_cmd_packet.h62 行目に定義があります。

関数詳解

◆ CCP_copy_packet()

void CCP_copy_packet ( CommonCmdPacket dest,
const CommonCmdPacket src 
)

CommonCmdPacket をコピー

覚え書き
user 実装次第だが,高速化のためすすべてではなく必要最低限しかコピーしない場合もある
引数
[in,out]destコピー先 CCP
[in]srcコピー元 CCP
戻り値
void

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

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

◆ CCP_get_apid()

APID CCP_get_apid ( const CommonCmdPacket packet)

APID を取得

引数
packetCCP
戻り値
APID

common_cmd_packet.c30 行目に定義があります。

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

◆ CCP_get_dest_type()

CCP_DEST_TYPE CCP_get_dest_type ( const CommonCmdPacket packet)

DEST_TYPE を取得

引数
packetCCP
戻り値
CCP_DEST_TYPE

common_cmd_packet.c50 行目に定義があります。

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

◆ CCP_get_exec_type()

CCP_EXEC_TYPE CCP_get_exec_type ( const CommonCmdPacket packet)

EXEC_TYPE を取得

引数
packetCCP
戻り値
CCP_EXEC_TYPE

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

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

◆ CCP_get_id()

CMD_CODE CCP_get_id ( const CommonCmdPacket packet)

CMD ID を取得

引数
packetCCP
戻り値
CMD_CODE

common_cmd_packet.c60 行目に定義があります。

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

◆ CCP_get_max_param_len()

uint16_t CCP_get_max_param_len ( void  )

CMD パラメタ長の最大値を取得

引数
void
戻り値
max param len

common_cmd_packet.c80 行目に定義があります。

被呼び出し関係図:

◆ CCP_get_packet_len()

uint16_t CCP_get_packet_len ( const CommonCmdPacket packet)

パケット長を取得

引数
packetCCP
戻り値
packet len

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

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

◆ CCP_get_param_head()

const uint8_t* CCP_get_param_head ( const CommonCmdPacket packet)

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

引数
packetCCP
戻り値
*param_head

common_cmd_packet.c85 行目に定義があります。

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

◆ CCP_get_param_len()

uint16_t CCP_get_param_len ( const CommonCmdPacket packet)

CMD パラメタ長を取得

引数
packetCCP
戻り値
param len

common_cmd_packet.c75 行目に定義があります。

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

◆ CCP_get_ti()

cycle_t CCP_get_ti ( const CommonCmdPacket packet)

TI を取得

引数
packetCCP
戻り値
ti

common_cmd_packet.c20 行目に定義があります。

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

◆ CCP_is_valid_packet()

int CCP_is_valid_packet ( const CommonCmdPacket packet)

有効なパケットかチェックする

覚え書き
NULL チェックも行う
OBC の外から来たパケットな可能性もあるので,このC2Aで扱えるサイズかもチェックする
引数
packetCCP
戻り値
1True
0False

common_cmd_packet.c12 行目に定義があります。

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

◆ CCP_set_apid()

void CCP_set_apid ( CommonCmdPacket packet,
APID  apid 
)

APID を設定

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

common_cmd_packet.c35 行目に定義があります。

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

◆ CCP_set_common_hdr()

void CCP_set_common_hdr ( CommonCmdPacket packet)

共通部分の Header を構築

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

common_cmd_packet.c95 行目に定義があります。

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

◆ CCP_set_dest_type()

void CCP_set_dest_type ( CommonCmdPacket packet,
CCP_DEST_TYPE  type 
)

DEST_TYPE を設定

引数
[in,out]packetCCP
[in]typeDEST_TYPE
戻り値
void

common_cmd_packet.c55 行目に定義があります。

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

◆ CCP_set_exec_type()

void CCP_set_exec_type ( CommonCmdPacket packet,
CCP_EXEC_TYPE  type 
)

EXEC_TYPE を設定

引数
[in,out]packetCCP
[in]typeEXEC_TYPE
戻り値
void

common_cmd_packet.c45 行目に定義があります。

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

◆ CCP_set_id()

void CCP_set_id ( CommonCmdPacket packet,
CMD_CODE  id 
)

CMD ID を設定

引数
[in,out]packetCCP
[in]idCMD_CODE
戻り値
void

common_cmd_packet.c65 行目に定義があります。

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

◆ CCP_set_param()

void CCP_set_param ( CommonCmdPacket packet,
const uint8_t *  param,
uint16_t  len 
)

パラメタを設定

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

common_cmd_packet.c90 行目に定義があります。

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

◆ CCP_set_ti()

void CCP_set_ti ( CommonCmdPacket packet,
cycle_t  ti 
)

TI を設定

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

common_cmd_packet.c25 行目に定義があります。

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