5 #ifndef COMMON_CMD_PACKET_UTIL_H_
6 #define COMMON_CMD_PACKET_UTIL_H_
10 #include "../Applications/timeline_command_dispatcher_id_define.h"
275 #define CCP_get_param_from_packet(packet, n, type) \
277 sizeof(type) == 1 ? \
278 (void*)CCP_get_1byte_param_from_packet(packet, n) : \
279 sizeof(type) == 2 ? \
280 (void*)CCP_get_2byte_param_from_packet(packet, n) : \
281 sizeof(type) == 4 ? \
282 (void*)CCP_get_4byte_param_from_packet(packet, n) : \
283 sizeof(type) == 8 ? \
284 (void*)CCP_get_8byte_param_from_packet(packet, n) : \
APID
Application Process ID
uint64_t * CCP_get_8byte_param_from_packet(const CommonCmdPacket *packet, uint8_t n)
CCP packet から,サイズが 8 byte のコマンド引数を取得する
CCP_UTIL_ACK CCP_form_tlc(CommonCmdPacket *packet, cycle_t ti, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Timeline command を生成
CCP_UTIL_ACK
CCP Utility の汎用返り値
@ CCP_UTIL_ACK_PARAM_ERR
パラメタエラー
CCP_UTIL_ACK CCP_prepare_int64_param_for_packet(int64_t param)
Param Generator で int64_t のパラメタを登録
CCP_UTIL_ACK CCP_prepare_uint32_param_for_packet(uint32_t param)
Param Generator で uint32_t のパラメタを登録
CCP_UTIL_ACK CCP_prepare_int8_param_for_packet(int8_t param)
Param Generator で int8_t のパラメタを登録
CCP_UTIL_ACK CCP_prepare_uint8_param_for_packet(uint8_t param)
Param Generator で uint8_t のパラメタを登録
CCP_UTIL_ACK CCP_prepare_int16_param_for_packet(int16_t param)
Param Generator で int16_t のパラメタを登録
CCP_UTIL_ACK CCP_prepare_uint64_param_for_packet(uint64_t param)
Param Generator で uint64_t のパラメタを登録
uint16_t * CCP_get_2byte_param_from_packet(const CommonCmdPacket *packet, uint8_t n)
CCP packet から,サイズが 2 byte のコマンド引数を取得する
CCP_UTIL_ACK CCP_prepare_int32_param_for_packet(int32_t param)
Param Generator で int32_t のパラメタを登録
CCP_UTIL_ACK CCP_form_tlc_to_other_obc(CommonCmdPacket *packet, cycle_t ti, APID apid, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
他の OBC のコマンドを TL として生成
CCP_CmdRet CCP_form_and_exec_rtc(CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Realtime command を生成し,即時実行する
CCP_CmdRet CCP_form_and_exec_block_deploy_cmd(TLCD_ID tl_no, bct_id_t block_no)
BC展開 command を生成し,即時実行する
void CCP_form_app_cmd(CommonCmdPacket *packet, cycle_t ti, AR_APP_ID id)
App 実行 TL コマンドを生成
CCP_UTIL_ACK CCP_prepare_uint16_param_for_packet(uint16_t param)
Param Generator で uint16_t のパラメタを登録
uint32_t * CCP_get_4byte_param_from_packet(const CommonCmdPacket *packet, uint8_t n)
CCP packet から,サイズが 4 byte のコマンド引数を取得する
PH_ACK CCP_register_tlc_asap(cycle_t ti, TLCD_ID tlcd_id, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Timeline command を登録 (ASAP 版)
PH_ACK CCP_register_tlc(cycle_t ti, TLCD_ID tlcd_id, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Timeline command を登録
CCP_CmdRet CCP_make_cmd_ret(CCP_EXEC_STS exec_sts, uint32_t err_code)
コマンド返り値である CCP_CmdRet を作成
CCP_UTIL_ACK CCP_prepare_bct_id_param_for_packet(bct_id_t param)
Param Generator で bct_id_t のパラメタを登録
CCP_EXEC_TYPE CCP_get_exec_type_from_tlcd_id(TLCD_ID tlcd_id)
TLCD ID から CCP_EXEC_TYPE を取得する
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
CCP_UTIL_ACK CCP_prepare_double_param_for_packet(double param)
Param Generator で double のパラメタを登録
void CCP_init_param_for_packet(CMD_CODE cmd_id)
Param Generator を初期化
uint8_t * CCP_get_1byte_param_from_packet(const CommonCmdPacket *packet, uint8_t n)
CCP packet から,サイズが 1 byte のコマンド引数を取得する
CCP_UTIL_ACK CCP_prepare_float_param_for_packet(float param)
Param Generator で float のパラメタを登録
CCP_CmdRet CCP_form_and_exec_rtc_to_other_obc(APID apid, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
他の OBC のコマンドを RT として生成し,即時実行する
uint16_t CCP_get_raw_param_from_packet(const CommonCmdPacket *packet, void *dest, uint16_t max_copy_len)
CCP packet から,RAW コマンド引数を取得する
CCP_UTIL_ACK CCP_form_block_deploy_cmd(CommonCmdPacket *packet, TLCD_ID tl_no, bct_id_t block_no)
BC展開 Realtime command を生成
const uint8_t * CCP_get_raw_param_head(const CommonCmdPacket *packet)
CCP packet から,RAW コマンド引数の先頭ポインタを取得する
CCP_UTIL_ACK CCP_get_prepared_param_for_packet(const uint8_t **param_head, uint16_t *len)
Param Generator から完成した param を取得する
void CCP_convert_rtc_to_tlc(CommonCmdPacket *packet, cycle_t ti)
Realtime Command から Timeline Command へ変換
CCP_UTIL_ACK CCP_form_rtc_to_other_obc(CommonCmdPacket *packet, APID apid, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
他の OBC のコマンドを RT として生成
CCP_UTIL_ACK CCP_prepare_raw_param_for_packet(const uint8_t *param, uint16_t len)
Param Generator で raw パラメタを登録
PH_ACK CCP_register_rtc(CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Realtime command を登録
CCP_UTIL_ACK CCP_form_rtc(CommonCmdPacket *packet, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Realtime command を生成
uint16_t CCP_get_raw_param_len(const CommonCmdPacket *packet)
CCP packet から,RAW コマンド引数の長さを返す
C2A 全体を流れる Common Packet の配送を制御する
TLCD_ID
TimeLineを選ぶときに統一的に使うコード