C2A_Core
|
CCP の汎用 Utility [詳解]
#include "common_cmd_packet_util.h"
#include "command_analyze.h"
#include "../Library/endian.h"
#include <stddef.h>
#include <string.h>
データ構造 | |
struct | CCP_ParamGenerator |
param を構築するための一時領域 [詳解] | |
関数 | |
void | CCP_form_nop_rtc_ (CommonCmdPacket *packet) |
NOP cmd の RTC CCP を作る [詳解] | |
static void | CCP_form_rtc_ (CommonCmdPacket *packet, CMD_CODE cmd_id, const uint8_t *param, uint16_t len) |
RealTime Command を生成する. CCP_form_* の実体. [詳解] | |
static CCP_UTIL_ACK | CCP_calc_param_offset_ (CMD_CODE cmd_id, uint8_t n, uint16_t *offset) |
CCP パラメタ開始位置に対する n 番目の引数の offset を計算する [詳解] | |
static CCP_UTIL_ACK | CCP_raise_err_at_param_generator_ (void) |
Param Generator でエラーを発生した際に呼ぶエラー保存関数 [詳解] | |
static CCP_UTIL_ACK | CCP_prepare_param_for_packet_ (void *param, uint8_t byte) |
Param Generator で n byte のパラメタを登録 [詳解] | |
CCP_CmdRet | CCP_make_cmd_ret (CCP_EXEC_STS exec_sts, uint32_t err_code) |
コマンド返り値である CCP_CmdRet を作成 [詳解] | |
CCP_CmdRet | CCP_make_cmd_ret_without_err_code (CCP_EXEC_STS exec_sts) |
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版) [詳解] | |
void | CCP_form_app_cmd (CommonCmdPacket *packet, cycle_t ti, AR_APP_ID id) |
App 実行 TL コマンドを生成 [詳解] | |
CCP_UTIL_ACK | CCP_form_rtc (CommonCmdPacket *packet, CMD_CODE cmd_id, const uint8_t *param, uint16_t len) |
Realtime command を生成 [詳解] | |
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_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_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_UTIL_ACK | CCP_form_block_deploy_cmd (CommonCmdPacket *packet, TLCD_ID tl_no, bct_id_t block_no) |
BC展開 Realtime command を生成 [詳解] | |
void | CCP_convert_rtc_to_tlc (CommonCmdPacket *packet, cycle_t ti) |
Realtime Command から Timeline Command へ変換 [詳解] | |
PH_ACK | CCP_register_rtc (CMD_CODE cmd_id, const uint8_t *param, uint16_t len) |
Realtime command を登録 [詳解] | |
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 を登録 [詳解] | |
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 版) [詳解] | |
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_rtc_to_other_obc (APID apid, CMD_CODE cmd_id, const uint8_t *param, uint16_t len) |
他の OBC のコマンドを RT として生成し,即時実行する [詳解] | |
CCP_CmdRet | CCP_form_and_exec_block_deploy_cmd (TLCD_ID tl_no, bct_id_t block_no) |
BC展開 command を生成し,即時実行する [詳解] | |
CCP_EXEC_TYPE | CCP_get_exec_type_from_tlcd_id (TLCD_ID tlcd_id) |
TLCD ID から CCP_EXEC_TYPE を取得する [詳解] | |
uint8_t * | CCP_get_1byte_param_from_packet (const CommonCmdPacket *packet, uint8_t n) |
CCP packet から,サイズが 1 byte のコマンド引数を取得する [詳解] | |
uint16_t * | CCP_get_2byte_param_from_packet (const CommonCmdPacket *packet, uint8_t n) |
CCP packet から,サイズが 2 byte のコマンド引数を取得する [詳解] | |
uint32_t * | CCP_get_4byte_param_from_packet (const CommonCmdPacket *packet, uint8_t n) |
CCP packet から,サイズが 4 byte のコマンド引数を取得する [詳解] | |
uint64_t * | CCP_get_8byte_param_from_packet (const CommonCmdPacket *packet, uint8_t n) |
CCP packet から,サイズが 8 byte のコマンド引数を取得する [詳解] | |
uint16_t | CCP_get_raw_param_from_packet (const CommonCmdPacket *packet, void *dest, uint16_t max_copy_len) |
CCP packet から,RAW コマンド引数を取得する [詳解] | |
const uint8_t * | CCP_get_raw_param_head (const CommonCmdPacket *packet) |
CCP packet から,RAW コマンド引数の先頭ポインタを取得する [詳解] | |
uint16_t | CCP_get_raw_param_len (const CommonCmdPacket *packet) |
CCP packet から,RAW コマンド引数の長さを返す [詳解] | |
void | CCP_init_param_for_packet (CMD_CODE cmd_id) |
Param Generator を初期化 [詳解] | |
CCP_UTIL_ACK | CCP_get_prepared_param_for_packet (const uint8_t **param_head, uint16_t *len) |
Param Generator から完成した param を取得する [詳解] | |
CCP_UTIL_ACK | CCP_prepare_uint8_param_for_packet (uint8_t param) |
Param Generator で uint8_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_int8_param_for_packet (int8_t param) |
Param Generator で int8_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_uint16_param_for_packet (uint16_t param) |
Param Generator で uint16_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_int16_param_for_packet (int16_t param) |
Param Generator で int16_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_uint32_param_for_packet (uint32_t param) |
Param Generator で uint32_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_int32_param_for_packet (int32_t param) |
Param Generator で int32_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_uint64_param_for_packet (uint64_t param) |
Param Generator で uint64_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_int64_param_for_packet (int64_t param) |
Param Generator で int64_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_float_param_for_packet (float param) |
Param Generator で float のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_double_param_for_packet (double param) |
Param Generator で double のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_bct_id_param_for_packet (bct_id_t param) |
Param Generator で bct_id_t のパラメタを登録 [詳解] | |
CCP_UTIL_ACK | CCP_prepare_raw_param_for_packet (const uint8_t *param, uint16_t len) |
Param Generator で raw パラメタを登録 [詳解] | |
変数 | |
static CommonCmdPacket | CCP_util_packet_ |
static CCP_ParamGenerator | CCP_param_generator_ |
CCP の汎用 Utility
common_cmd_packet_util.c に定義があります。
|
static |
CCP パラメタ開始位置に対する n 番目の引数の offset を計算する
[in] | cmd_id | CMD_CODE |
[in] | n | N番目の引数 (0起算) |
[out] | offset | offset |
common_cmd_packet_util.c の 524 行目に定義があります。
void CCP_convert_rtc_to_tlc | ( | CommonCmdPacket * | packet, |
cycle_t | ti | ||
) |
Realtime Command から Timeline Command へ変換
[in,out] | packet | 変換する packet |
[in] | ti | TI |
common_cmd_packet_util.c の 246 行目に定義があります。
CCP_CmdRet CCP_form_and_exec_block_deploy_cmd | ( | TLCD_ID | tl_no, |
bct_id_t | block_no | ||
) |
BC展開 command を生成し,即時実行する
[in] | tl_no | Timeline no |
[in] | block_no | BC ID |
CCP_CmdRet{CCP_EXEC_PACKET_FMT_ERR,*} | 引数が不正なとき |
それ以外 | PH_dispatch_command の返り値 |
common_cmd_packet_util.c の 360 行目に定義があります。
CCP_CmdRet CCP_form_and_exec_rtc | ( | CMD_CODE | cmd_id, |
const uint8_t * | param, | ||
uint16_t | len | ||
) |
Realtime command を生成し,即時実行する
CCP_register_rtc
を使用 [in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
CCP_CmdRet{CCP_EXEC_PACKET_FMT_ERR,*} | 引数が不正なとき |
それ以外 | PH_dispatch_command の返り値 |
common_cmd_packet_util.c の 336 行目に定義があります。
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 として生成し,即時実行する
[in] | apid | 宛先 OBC のコマンドの APID |
[in] | cmd_id | 宛先 OBC の CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
CCP_CmdRet{CCP_EXEC_PACKET_FMT_ERR,*} | 引数が不正なとき |
それ以外 | PH_dispatch_command の返り値 |
common_cmd_packet_util.c の 348 行目に定義があります。
void CCP_form_app_cmd | ( | CommonCmdPacket * | packet, |
cycle_t | ti, | ||
AR_APP_ID | id | ||
) |
App 実行 TL コマンドを生成
[in,out] | packet | CCP |
[in] | ti | TI |
[in] | id | AR_APP_ID |
common_cmd_packet_util.c の 94 行目に定義があります。
CCP_UTIL_ACK CCP_form_block_deploy_cmd | ( | CommonCmdPacket * | packet, |
TLCD_ID | tl_no, | ||
bct_id_t | block_no | ||
) |
BC展開 Realtime command を生成
[in,out] | packet | CCP |
[in] | tl_no | Timeline no |
[in] | block_no | BC ID |
common_cmd_packet_util.c の 209 行目に定義があります。
void CCP_form_nop_rtc_ | ( | CommonCmdPacket * | packet | ) |
NOP cmd の RTC CCP を作る
[in,out] | packet | CCP |
common_cmd_packet_util.c の 88 行目に定義があります。
CCP_UTIL_ACK CCP_form_rtc | ( | CommonCmdPacket * | packet, |
CMD_CODE | cmd_id, | ||
const uint8_t * | param, | ||
uint16_t | len | ||
) |
Realtime command を生成
CCP_register_rtc
を使用 [in,out] | packet | CCP |
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 110 行目に定義があります。
|
static |
RealTime Command を生成する. CCP_form_* の実体.
[in,out] | packet | CCP |
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタの先頭アドレス |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 235 行目に定義があります。
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 として生成
[in] | apid | 宛先 OBC のコマンドの APID |
[in] | cmd_id | 宛先 OBC の CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 163 行目に定義があります。
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_register_tlc
を使用 [in,out] | packet | CCP |
[in] | ti | TI |
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 135 行目に定義があります。
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 として生成
[in] | ti | TI |
[in] | apid | 宛先 OBC のコマンドの APID |
[in] | cmd_id | 宛先 OBC の CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 185 行目に定義があります。
uint8_t* CCP_get_1byte_param_from_packet | ( | const CommonCmdPacket * | packet, |
uint8_t | n | ||
) |
CCP packet から,サイズが 1 byte のコマンド引数を取得する
[in] | packet | 取得する packet |
[in] | n | N番目の引数 (0起算) |
common_cmd_packet_util.c の 396 行目に定義があります。
uint16_t* CCP_get_2byte_param_from_packet | ( | const CommonCmdPacket * | packet, |
uint8_t | n | ||
) |
CCP packet から,サイズが 2 byte のコマンド引数を取得する
[in] | packet | 取得する packet |
[in] | n | N番目の引数 (0起算) |
common_cmd_packet_util.c の 416 行目に定義があります。
uint32_t* CCP_get_4byte_param_from_packet | ( | const CommonCmdPacket * | packet, |
uint8_t | n | ||
) |
CCP packet から,サイズが 4 byte のコマンド引数を取得する
[in] | packet | 取得する packet |
[in] | n | N番目の引数 (0起算) |
common_cmd_packet_util.c の 436 行目に定義があります。
uint64_t* CCP_get_8byte_param_from_packet | ( | const CommonCmdPacket * | packet, |
uint8_t | n | ||
) |
CCP packet から,サイズが 8 byte のコマンド引数を取得する
[in] | packet | 取得する packet |
[in] | n | N番目の引数 (0起算) |
common_cmd_packet_util.c の 456 行目に定義があります。
CCP_EXEC_TYPE CCP_get_exec_type_from_tlcd_id | ( | TLCD_ID | tlcd_id | ) |
TLCD ID から CCP_EXEC_TYPE を取得する
[in] | tlcd_id | tl id |
common_cmd_packet_util.c の 372 行目に定義があります。
CCP_UTIL_ACK CCP_get_prepared_param_for_packet | ( | const uint8_t ** | param_head, |
uint16_t * | len | ||
) |
Param Generator から完成した param を取得する
[out] | param_head | 完成した param の先頭ポインタ |
[out] | len | paran の長さ |
CCP_UTIL_ACK_OK | 正常終了 |
CCP_UTIL_ACK_PARAM_ERR | これまでの param 生成仮定で何かしらの不整合が発生 |
common_cmd_packet_util.c の 550 行目に定義があります。
uint16_t CCP_get_raw_param_from_packet | ( | const CommonCmdPacket * | packet, |
void * | dest, | ||
uint16_t | max_copy_len | ||
) |
CCP packet から,RAW コマンド引数を取得する
[in] | packet | 取得する packet |
[out] | dest | RAW パラメタコピー先 |
[in] | max_copy_len | : コピーする最大長. 0 の場合,無制限 |
common_cmd_packet_util.c の 476 行目に定義があります。
const uint8_t* CCP_get_raw_param_head | ( | const CommonCmdPacket * | packet | ) |
CCP packet から,RAW コマンド引数の先頭ポインタを取得する
[in] | packet | 取得する packet |
common_cmd_packet_util.c の 500 行目に定義があります。
uint16_t CCP_get_raw_param_len | ( | const CommonCmdPacket * | packet | ) |
CCP packet から,RAW コマンド引数の長さを返す
[in] | packet | 取得する packet |
common_cmd_packet_util.c の 512 行目に定義があります。
void CCP_init_param_for_packet | ( | CMD_CODE | cmd_id | ) |
Param Generator を初期化
[in] | cmd_id | これから作成する param の Cmd ID |
common_cmd_packet_util.c の 539 行目に定義があります。
CCP_CmdRet CCP_make_cmd_ret | ( | CCP_EXEC_STS | exec_sts, |
uint32_t | err_code | ||
) |
コマンド返り値である CCP_CmdRet を作成
[in] | exec_sts | コマンド実行結果 (CCP_EXEC_STS) |
[in] | err_code | ユーザー定義エラーコード |
common_cmd_packet_util.c の 73 行目に定義があります。
CCP_CmdRet CCP_make_cmd_ret_without_err_code | ( | CCP_EXEC_STS | exec_sts | ) |
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
[in] | exec_sts | コマンド実行結果 (CCP_EXEC_STS) |
common_cmd_packet_util.c の 82 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_bct_id_param_for_packet | ( | bct_id_t | param | ) |
Param Generator で bct_id_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 624 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_double_param_for_packet | ( | double | param | ) |
Param Generator で double のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 618 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_float_param_for_packet | ( | float | param | ) |
Param Generator で float のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 612 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_int16_param_for_packet | ( | int16_t | param | ) |
Param Generator で int16_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 582 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_int32_param_for_packet | ( | int32_t | param | ) |
Param Generator で int32_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 594 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_int64_param_for_packet | ( | int64_t | param | ) |
Param Generator で int64_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 606 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_int8_param_for_packet | ( | int8_t | param | ) |
Param Generator で int8_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 570 行目に定義があります。
|
static |
Param Generator で n byte のパラメタを登録
[in] | param | 登録するパラメタ |
[in] | byte | パラメタのサイズ |
common_cmd_packet_util.c の 658 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_raw_param_for_packet | ( | const uint8_t * | param, |
uint16_t | len | ||
) |
Param Generator で raw パラメタを登録
[in] | param | 登録するパラメタ配列 |
[in] | len | 登録するパラメタの長さ |
common_cmd_packet_util.c の 630 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_uint16_param_for_packet | ( | uint16_t | param | ) |
Param Generator で uint16_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 576 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_uint32_param_for_packet | ( | uint32_t | param | ) |
Param Generator で uint32_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 588 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_uint64_param_for_packet | ( | uint64_t | param | ) |
Param Generator で uint64_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 600 行目に定義があります。
CCP_UTIL_ACK CCP_prepare_uint8_param_for_packet | ( | uint8_t | param | ) |
Param Generator で uint8_t のパラメタを登録
[in] | param | 登録するパラメタ |
common_cmd_packet_util.c の 564 行目に定義があります。
|
static |
Param Generator でエラーを発生した際に呼ぶエラー保存関数
void |
CCP_UTIL_ACK_PARAM_ERR |
common_cmd_packet_util.c の 651 行目に定義があります。
Realtime command を登録
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 254 行目に定義があります。
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 を登録
[in] | ti | TI |
[in] | tlcd_id | 登録する tl id |
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 265 行目に定義があります。
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 版)
[in] | ti | TI |
[in] | tlcd_id | 登録する tl id |
[in] | cmd_id | CMD_CODE |
[in] | param | パラメタ |
[in] | len | パラメタ長 |
common_cmd_packet_util.c の 284 行目に定義があります。
|
static |
common_cmd_packet_util.c の 26 行目に定義があります。
|
static |
common_cmd_packet_util.c の 25 行目に定義があります。