C2A_Core
|
BCTの定義, BCT周りの関数 [詳解]
#include <stdint.h>
#include <src_user/Settings/TlmCmd/block_command_table_params.h>
#include "common_cmd_packet.h"
データ構造 | |
struct | BCT_Pos |
BCT内での作業中の位置情報 [詳解] | |
struct | BCT_CmdData |
Cmd の保存場所 [詳解] | |
struct | BCT_Table |
BCT の本体. 実際に BC の cmd が確保されている [詳解] | |
struct | BCT_Func |
各setter, getter が入る [詳解] | |
struct | BlockCommandTable |
BCT 全体の構造体 [詳解] | |
マクロ定義 | |
#define | BCT_CMD_MAX_LENGTH (64) |
#define | BCT_MAX_CMD_NUM (32) |
1つのBCに最大何個のコマンドを挿入できるか [詳解] | |
#define | BCT_MAX_BLOCKS (383) |
BCのIDの最大数 [詳解] | |
#define | SIZE_OF_BCT_ID_T (2) |
bct_id_t の型サイズ.メモリインパクトがそれなりにあるので,可変に [詳解] | |
型定義 | |
typedef uint16_t | bct_id_t |
列挙型 | |
enum | BCT_ACK { BCT_SUCCESS , BCT_INVALID_BLOCK_NO , BCT_INVALID_CMD_NO , BCT_ISORATED_CMD , BCT_DEFECTIVE_BLOCK , BCT_CMD_TOO_LONG , BCT_BC_FULL , BCT_ZERO_PERIOD , BCT_UNKNOWN } |
BCT 関係の関数のエラーステータス [詳解] | |
関数 | |
void | BCT_initialize (void) |
BCT の初期化関数 [詳解] | |
const BCT_CmdData * | BCT_get_bc_cmd_data (const BCT_Pos *pos) |
BCT_CmdData の const pointer getter [詳解] | |
uint8_t | BCT_get_bc_length (const bct_id_t block) |
BCT の length の getter [詳解] | |
BCT_ACK | BCT_clear_block (const bct_id_t block) |
指定された block の BCT を初期化する [詳解] | |
void | BCT_store_pos (void) |
pos を pos_stored に保存 [詳解] | |
void | BCT_restore_pos (void) |
pos を pos_stored から復旧 [詳解] | |
BCT_ACK | BCT_check_position (const BCT_Pos *pos) |
BCT_Pos* の validate [詳解] | |
BCT_ACK | BCT_make_pos (BCT_Pos *pos, const bct_id_t block, const uint8_t cmd) |
BCT_Pos* を引数から作る [詳解] | |
BCT_ACK | BCT_load_cmd (const BCT_Pos *pos, CommonCmdPacket *packet) |
保存データを CCP にコピーする. [詳解] | |
BCT_ACK | BCT_register_cmd (const CommonCmdPacket *packet) |
Cmd を block_command_table->pos に登録する [詳解] | |
BCT_ACK | BCT_overwrite_cmd (const BCT_Pos *pos, const CommonCmdPacket *packet) |
既に登録されている BC の Cmd の中身を外部から上書きする [詳解] | |
BCT_ACK | BCT_copy_bct (const bct_id_t dst_block, const bct_id_t src_block) |
BCT の中身を 他の BCT に COPY する [詳解] | |
CMD_CODE | BCT_get_id (const bct_id_t block, const uint8_t cmd) |
BCT 内の Cmd の CMD_CODE の getter [詳解] | |
cycle_t | BCT_get_ti (const bct_id_t block, const uint8_t cmd) |
BCT 内の Cmd の TI の getter [詳解] | |
const uint8_t * | BCT_get_param_head (const bct_id_t block, const uint8_t cmd) |
BCT 内の Cmd の param_head の getter [詳解] | |
BCT_ACK | BCT_swap_address (const bct_id_t block_a, const bct_id_t block_b) |
BCT の block の指すポインタ & func を入れ替える [詳解] | |
BCT_ACK | BCT_swap_contents (const bct_id_t block_a, const bct_id_t block_b) |
BCT の block の指す中身を入れ替える [詳解] | |
CCP_CmdRet | BCT_convert_bct_ack_to_ccp_cmd_ret (BCT_ACK ack) |
返り値用 enum 変換用関数 [詳解] | |
CCP_CmdRet | Cmd_BCT_CLEAR_BLOCK (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_BCT_SET_BLOCK_POSITION (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_BCT_COPY_BCT (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_BCT_OVERWRITE_CMD (const CommonCmdPacket *packet) |
CCP_CmdRet | Cmd_BCT_FILL_NOP (const CommonCmdPacket *packet) |
変数 | |
const BlockCommandTable *const | block_command_table |
BCTの定義, BCT周りの関数
block_command_table.h に定義があります。
#define BCT_CMD_MAX_LENGTH (64) |
BCTに保存するパケットのパケットサイズの上限 TCPの最大長はかなり大きいので,ここではそれより小さくしてメモリを節約するのが通例 この値より大きなコマンドはBCTに保存できなくなることに注意すること
block_command_table.h の 12 行目に定義があります。
#define BCT_MAX_BLOCKS (383) |
BCのIDの最大数
block_command_table.h の 15 行目に定義があります。
#define BCT_MAX_CMD_NUM (32) |
1つのBCに最大何個のコマンドを挿入できるか
block_command_table.h の 13 行目に定義があります。
#define SIZE_OF_BCT_ID_T (2) |
bct_id_t の型サイズ.メモリインパクトがそれなりにあるので,可変に
block_command_table.h の 24 行目に定義があります。
typedef uint16_t bct_id_t |
block_command_table.h の 31 行目に定義があります。
enum BCT_ACK |
BCT 関係の関数のエラーステータス
列挙値 | |
---|---|
BCT_SUCCESS | |
BCT_INVALID_BLOCK_NO | |
BCT_INVALID_CMD_NO | |
BCT_ISORATED_CMD | |
BCT_DEFECTIVE_BLOCK | |
BCT_CMD_TOO_LONG | |
BCT_BC_FULL | |
BCT_ZERO_PERIOD | |
BCT_UNKNOWN |
block_command_table.h の 130 行目に定義があります。
指定された block の BCT を初期化する
[in] | block | BC の idx |
block_command_table.c の 438 行目に定義があります。
CCP_CmdRet BCT_convert_bct_ack_to_ccp_cmd_ret | ( | BCT_ACK | ack | ) |
返り値用 enum 変換用関数
ack | BCT_ACK |
block_command_table.c の 386 行目に定義があります。
BCT の中身を 他の BCT に COPY する
[in] | dst_block | コピー先の bct_id |
[in] | src_block | コピー元の bct_id |
block_command_table.c の 251 行目に定義があります。
const BCT_CmdData* BCT_get_bc_cmd_data | ( | const BCT_Pos * | pos | ) |
BCT_CmdData の const pointer getter
[in] | pos | const BCT_Pos* |
block_command_table.c の 129 行目に定義があります。
uint8_t BCT_get_bc_length | ( | const bct_id_t | block | ) |
BCT の length の getter
[in] | block | BC の idx |
block_command_table.c の 134 行目に定義があります。
BCT 内の Cmd の CMD_CODE の getter
[in] | block | BC の idx |
[in] | cmd | Cmds_data 内での idx |
block_command_table.c の 272 行目に定義があります。
const uint8_t* BCT_get_param_head | ( | const bct_id_t | block, |
const uint8_t | cmd | ||
) |
BCT 内の Cmd の param_head の getter
[in] | block | BC の idx |
[in] | cmd | Cmds_data 内での idx |
block_command_table.c の 290 行目に定義があります。
BCT 内の Cmd の TI の getter
[in] | block | BC の idx |
[in] | cmd | Cmds_data 内での idx |
block_command_table.c の 281 行目に定義があります。
void BCT_initialize | ( | void | ) |
BCT の初期化関数
block_command_table.c の 58 行目に定義があります。
BCT_ACK BCT_load_cmd | ( | const BCT_Pos * | pos, |
CommonCmdPacket * | packet | ||
) |
保存データを CCP にコピーする.
[in] | pos | コピー元のpacketの位置 |
[out] | packet | コピーされる packet |
block_command_table.c の 239 行目に定義があります。
BCT_Pos* を引数から作る
[out] | pos | そこに作る pointer |
[in] | block | BC の idx |
[in] | cmd | Cmds_data 内での idx |
block_command_table.c の 321 行目に定義があります。
BCT_ACK BCT_overwrite_cmd | ( | const BCT_Pos * | pos, |
const CommonCmdPacket * | packet | ||
) |
既に登録されている BC の Cmd の中身を外部から上書きする
[in] | pos | 上書きする位置 |
[in] | packet | 上書きされる packet |
block_command_table.c の 210 行目に定義があります。
BCT_ACK BCT_register_cmd | ( | const CommonCmdPacket * | packet | ) |
Cmd を block_command_table->pos に登録する
[in] | packet | 登録する Cmd の内容 |
block_command_table.c の 173 行目に定義があります。
void BCT_restore_pos | ( | void | ) |
void BCT_store_pos | ( | void | ) |
pos を pos_stored に保存
void |
block_command_table.c の 307 行目に定義があります。
BCT の block の指すポインタ & func を入れ替える
[in] | block_a | 入れ替える BC |
[in] | block_b | 入れ替える BC |
BCT_swap_contents
と組み合わせることで番号 - 中身はそのままで RAM だけを切り替えることが出来る 必ず BCE_swap_address
と共に使用すること block_command_table.c の 329 行目に定義があります。
BCT の block の指す中身を入れ替える
[in] | block_a | 入れ替える BC |
[in] | block_b | 入れ替える BC |
BCT_swap_ram
と組み合わせることで番号 - 中身はそのままで RAM だけを切り替えることが出来る 必ず BCE_swap_contents
と共に使用すること block_command_table.c の 348 行目に定義があります。
CCP_CmdRet Cmd_BCT_CLEAR_BLOCK | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_BCT_COPY_BCT | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_BCT_FILL_NOP | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_BCT_OVERWRITE_CMD | ( | const CommonCmdPacket * | packet | ) |
CCP_CmdRet Cmd_BCT_SET_BLOCK_POSITION | ( | const CommonCmdPacket * | packet | ) |
|
extern |
block_command_table.c の 28 行目に定義があります。