diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e9cbc53c7..932968b94 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,13 +10,11 @@ on: jobs: minimum_user: name: minimum user - uses: arkedge/workflows-c2a/.github/workflows/c2a-build.yml@v1.0.0 + uses: arkedge/workflows-c2a/.github/workflows/build.yml@v2.1.0 with: c2a_dir: Examples/minimum_user c2a_custom_setup: | - cd $GITHUB_WORKSPACE - ls -l - cd ./repo + cd ../.. pwd ls -l if [ $RUNNER_OS = 'Windows' ]; then @@ -27,13 +25,11 @@ jobs: second_obc_user: name: 2nd obc user - uses: arkedge/workflows-c2a/.github/workflows/c2a-build.yml@v1.0.0 + uses: arkedge/workflows-c2a/.github/workflows/build.yml@v2.1.0 with: c2a_dir: Examples/2nd_obc_user c2a_custom_setup: | - cd $GITHUB_WORKSPACE - ls -l - cd ./repo + cd ../.. pwd ls -l if [ $RUNNER_OS = 'Windows' ]; then diff --git a/.github/workflows/build_with_s2e.yml b/.github/workflows/build_with_s2e.yml index 63bc702b5..f08c6403e 100644 --- a/.github/workflows/build_with_s2e.yml +++ b/.github/workflows/build_with_s2e.yml @@ -8,7 +8,7 @@ on: pull_request: env: - S2E_CORE_VERSION: v5.0.0 + S2E_CORE_VERSION: v6.0.0 jobs: build_s2e_win: diff --git a/.github/workflows/check_coding_rule.yml b/.github/workflows/check_coding_rule.yml index 48fce8cad..5f3e9372c 100644 --- a/.github/workflows/check_coding_rule.yml +++ b/.github/workflows/check_coding_rule.yml @@ -35,11 +35,11 @@ jobs: python ./src_core/Script/CI/check_coding_rule.py ./src_core/Script/CI/check_coding_rule.json | tee /tmp/coding-rule.log status="${PIPESTATUS[0]}" echo "status: ${status}" - echo "::set-output name=status::${status}" + echo "status=${status}" >> "$GITHUB_OUTPUT" exit "${status}" - name: install reviewdog - uses: reviewdog/action-setup@v1.0.3 + uses: reviewdog/action-setup@v1.0.4 - name: fix error log source file path run: | diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 000000000..74c4d02cf --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,36 @@ +name: Rust + +on: + push: + branches: + - main + tags: + - v* + pull_request: + +env: + CARGO_INCREMENTAL: 0 + +jobs: + rust: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: stable + components: clippy, rustfmt + + - name: cache dependencies + uses: Swatinem/rust-cache@v2.4.0 + + - name: reviewdog / clippy + uses: sksat/action-clippy@v0.2.1 + with: + reporter: ${{ github.event_name == 'pull_request' && 'github-pr-review' || 'github-check' }} + clippy_flags: --all-features + + - name: unit test + run: cargo test diff --git a/.gitignore b/.gitignore index 961b60df6..66da7facc 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,7 @@ Examples/minimum_user/build Examples/2nd_obc_user/src/src_core Examples/2nd_obc_user/build *.pyc + +# Added by cargo +/target +/Cargo.lock diff --git a/Applications/telemetry_manager.c b/Applications/telemetry_manager.c index 815835c95..a9a0aa995 100644 --- a/Applications/telemetry_manager.c +++ b/Applications/telemetry_manager.c @@ -2,7 +2,7 @@ /** * @file * @brief userがテレメトリ詰まりをやTL溢れを防ぎつつ,またCDHなどがテレメトリを管理しやすくするためのApp - * @note https://gitlab.com/ut_issl/c2a/c2a_core_oss/-/issues/81 や telemetry_manager.h の最下部を参照(FIXME: あとでdocumentに移す) + * @note 利用方法は telemetry_manager.h の最下部を参照(FIXME: あとでdocumentに移す) */ #include "telemetry_manager.h" @@ -14,10 +14,33 @@ #include "../TlmCmd/command_analyze.h" #include "../Library/print.h" #include "../Library/endian.h" -#include "../System/WatchdogTimer/watchdog_timer.h" +#include "../Library/result.h" +#include "../TlmCmd/common_cmd_packet_util.h" #include #include -#include "../TlmCmd/common_cmd_packet_util.h" +#include + +// default 設定 +// BC にどの TLM_MGR_BC_ROLE を割り当てるか +#define TLM_MGR_BC_ROLE_AT_BC_0 (TLM_MGR_BC_ROLE_HK_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_1 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_2 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_3 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_4 (TLM_MGR_BC_ROLE_LOW_FREQ_TLM) // TLM_MGR_BC_ROLE_HIGH_FREQ_TLM が固まらないようにここに入れている +#define TLM_MGR_BC_ROLE_AT_BC_5 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_6 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_7 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_8 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_9 (TLM_MGR_BC_ROLE_LOW_FREQ_TLM) // TLM_MGR_BC_ROLE_HIGH_FREQ_TLM が固まらないようにここに入れている + +// user 設定 +#include +#include + +// 現状, BC#9 は low ではないとだめ (deploy と combine するため) +#if !(TLM_MGR_BC_ROLE_AT_BC_9 == TLM_MGR_BC_ROLE_LOW_FREQ_TLM) +#error TLM_MGR_BC_ROLE_AT_BC_9 should be TLM_MGR_BC_ROLE_LOW_FREQ_TLM +#endif /** * @brief App初期化関数 @@ -25,84 +48,300 @@ * @return void */ static void TLM_MGR_init_by_am_(void); + /** - * @brief 初期化 - * @note 実行時間の問題からし分割している + * @brief 初期化(分割 1/2) + * @note 実行時間の問題から分割している * @param void - * @return 0:OK, 1:NG + * @return RESULT */ -static uint8_t TLM_MGR_init_1_(void); -static uint8_t TLM_MGR_init_2_(void); -static uint8_t TLM_MGR_init_3_(void); -static uint8_t TLM_MGR_init_4_(void); +static RESULT TLM_MGR_init_1_(void); + /** - * @brief AppInfo構造体のクリア + * @brief 初期化(分割 2/2) + * @note 実行時間の問題から分割している * @param void - * @return void + * @return RESULT */ -static void TLM_MGR_clear_info_(void); +static RESULT TLM_MGR_init_2_(void); + /** - * @brief すべてのTLM_MGR_RegisterInfoのクリア + * @brief AppInfo 構造体のクリア * @param void - * @return void + * @return RESULT */ -static void TLM_MGR_clear_register_info_all_(void); +static RESULT TLM_MGR_clear_info_(void); + /** - * @brief TLM_MGR_RegisterInfoのクリア - * @param register_info: クリアしたい TLM_MGR_RegisterInfo - * @return void + * @brief BC の設定を登録する + * @param cmd_table_idx: 登録する cmd table (bc) の index + * @param bc_id: 使う BC の ID + * @param bc_role: その BC の役割 + * @return RESULT */ -static void TLM_MGR_clear_register_info_(TLM_MGR_RegisterInfo* register_info); +static RESULT TLM_MGR_regigster_bc_settings(uint8_t cmd_table_idx, + bct_id_t bc_id, + TLM_MGR_BC_ROLE bc_role); + /** - * @brief すべてのBCを NOP x TLM_MGR_MAX_TLM_NUM_PER_BC で埋める - * @param void - * @return void + * @brief TLM_MGR_RegisterInfo に BC 情報を追加 + * @param cmd_table_idx: 登録する cmd table (bc) の index + * @param register_info: 登録先の TLM_MGR_RegisterInfo + * @return RESULT */ -static void TLM_MGR_clear_bc_to_nop_all_(void); +static RESULT TLM_MGR_add_bc_settings_to_register_info_(uint8_t cmd_table_idx, + TLM_MGR_RegisterInfo* register_info); + /** - * @brief 指定したBCを NOP x TLM_MGR_MAX_TLM_NUM_PER_BC で埋める - * @param bc_id: NOPでうめるBC ID - * @return void + * @brief TLM_MGR_BC_ROLE に応じて TLM_MGR_CmdTable から 1 BC の 1 block から全 cmd を消す (NPO 埋めする) + * @note DCU を使っている + * @note cmd_table も消す + * @param cmd_code: DCU を呼び出す元の cmd id + * @param bc_role: TLM_MGR_BC_ROLE + * @param register_info: 削除する role の TLM_MGR_RegisterInfo + * @return RESULT */ -static void TLM_MGR_clear_bc_to_nop_(bct_id_t bc_id); +static CCP_CmdRet TLM_MGR_clear_cmds_based_on_role_(CMD_CODE cmd_code, + TLM_MGR_BC_ROLE bc_role, + TLM_MGR_RegisterInfo* register_info); + /** - * @brief 設定された TLM_MGR_BcInfo から内部で使う情報 TLM_MGR_RegisterInfo の構築 - * @param void + * @brief テレメ生成などのコマンドを TLM MGR に登録する + * @param role: TLM_MGR_BC_ROLE + * @param cmd_type: TLM_MGR_CMD_TYPE + * @param apid: APID + * @param tlm_id: TLM_CODE + * @param dr_partition: dr partition (DR 関連の時だけ) * @return TLM_MGR_ERR_CODE */ -static TLM_MGR_ERR_CODE TLM_MGR_calc_register_info_from_bc_info_(void); +static TLM_MGR_ERR_CODE TLM_MGR_register_(TLM_MGR_BC_ROLE role, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + /** - * @brief TLM_MGR_RegisterInfo に使う BC 情報を登録 - * @param register_info: 登録先の TLM_MGR_RegisterInfo + * @brief TLM_MGR_CMD_TYPE に応じて, TLM MGR に登録する TLC を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] cmd_type: TLM_MGR_CMD_TYPE + * @param[in] apid: APID + * @param[in] tlm_id: TLM_CODE + * @param[in] dr_partition: dr partition (DR 関連の時だけ) + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_register_tlc_(CommonCmdPacket* packet, + cycle_t ti, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM MGR に登録する TLC (TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM) を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] tlm_id: TLM_CODE + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_generate_rt_tlm_(CommonCmdPacket* packet, + cycle_t ti, + TLM_CODE tlm_id); + +/** + * @brief TLM MGR に登録する TLC (TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM) を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] tlm_id: TLM_CODE + * @param[in] dr_partition: dr partition (DR 関連の時だけ) + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_generate_st_tlm_(CommonCmdPacket* packet, + cycle_t ti, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM MGR に登録する TLC (TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM) を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] apid: APID + * @param[in] tlm_id: TLM_CODE * @return TLM_MGR_ERR_CODE */ -static TLM_MGR_ERR_CODE TLM_MGR_add_bc_info_to_register_info_(TLM_MGR_RegisterInfo* register_info, uint8_t bc_info_idx); +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_forward_as_rt_tlm_(CommonCmdPacket* packet, + cycle_t ti, + APID apid, + TLM_CODE tlm_id); + /** - * @brief TLM_MGR_RegisterInfo 登録されている BC をクリアして NOP で埋める - * @param register_info: 消す BC が登録されている TLM_MGR_RegisterInfo + * @brief TLM MGR に登録する TLC (TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM) を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] apid: APID + * @param[in] tlm_id: TLM_CODE + * @param[in] dr_partition: dr partition (DR 関連の時だけ) + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_forward_as_st_tlm_(CommonCmdPacket* packet, + cycle_t ti, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM MGR に登録する TLC (TLM_MGR_CMD_TYPE_DR_REPLAY_TLM) を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @param[in] dr_partition: dr partition (DR 関連の時だけ) + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_dr_replay_tlm_(CommonCmdPacket* packet, cycle_t ti, uint8_t dr_partition); + +/** + * @brief テレメ生成などのコマンドを TLM MGR から削除する + * @param role: TLM_MGR_BC_ROLE + * @param cmd_type: TLM_MGR_CMD_TYPE + * @param apid: APID + * @param tlm_id: TLM_CODE + * @param dr_partition: dr partition (DR 関連の時だけ) + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_delete_(TLM_MGR_BC_ROLE role, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM MGR に上書きして削除するための NOP TLC を生成する + * @param[out] packet: TLC packet + * @param[in] ti: TI + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_form_nop_tlc_(CommonCmdPacket* packet, cycle_t ti); + +/** + * @brief TLM_MGR_BC_ROLE に応じた TLM_MGR_RegisterInfo を取得する + * @param bc_role: TLM_MGR_BC_ROLE + * @return TLM_MGR_RegisterInfo + */ +static TLM_MGR_RegisterInfo* TLM_MGR_get_regitster_info_from_bc_role_(TLM_MGR_BC_ROLE bc_role); + +/** + * @brief TLM_MGR_CmdElem を更新する + * @param[in,out] cmd_elem: 更新する TLM_MGR_CmdElem + * @param[in] cmd_type: TLM_MGR_CMD_TYPE + * @param[in] apid: APID + * @param[in] tlm_id: TLM_CODE + * @param[in] dr_partition: dr partition * @return void */ -static void TLM_MGR_clear_bc_of_register_info_(TLM_MGR_RegisterInfo* register_info); +static void TLM_MGR_update_cmd_elem_of_cmd_table_(TLM_MGR_CmdElem* cmd_elem, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM_MGR_CmdElem をクリアする + * @note 0x00 埋めでクリアする + * @param[in,out] cmd_elem: クリアする TLM_MGR_CmdElem + * @return void + */ +static void TLM_MGR_clear_cmd_elem_of_cmd_table_(TLM_MGR_CmdElem* cmd_elem); + /** - * @brief TLM_MGR_RegisterInfo に テレメ生成コマンドを登録する - * @param register_info: コマンド登録先 BC が登録されている TLM_MGR_RegisterInfo - * @param param: Cmd_GENERATE_TLM のコマンドパラメタ + * @brief 次に TLM MGR に登録するコマンドの BCT_Pos と TLM_MGR_CmdElem を取得する + * @param[out] next_cmd_pos: BCT_Pos + * @param[out] next_cmd_elem: TLM_MGR_CmdElem + * @param[in] register_info: 登録しようとしている TLM_MGR_RegisterInfo * @return TLM_MGR_ERR_CODE */ -static TLM_MGR_ERR_CODE TLM_MGR_register_generate_tlm_(TLM_MGR_RegisterInfo* register_info, const uint8_t* param); +static TLM_MGR_ERR_CODE TLM_MGR_get_next_register_cmd_pos_(BCT_Pos* next_cmd_pos, + TLM_MGR_CmdElem** next_cmd_elem, + const TLM_MGR_RegisterInfo* register_info); + +/** + * @brief すでに登録されているコマンドのうち,末尾にあるコマンドの BCT_Pos と TLM_MGR_CmdElem を取得する + * @param[out] next_cmd_pos: BCT_Pos + * @param[out] next_cmd_elem: TLM_MGR_CmdElem + * @param[in] register_info: 登録しようとしている TLM_MGR_RegisterInfo + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_get_last_registered_cmd_pos_(BCT_Pos* last_cmd_pos, + TLM_MGR_CmdElem** last_cmd_elem, + const TLM_MGR_RegisterInfo* register_info); + +/** + * @brief すでに登録されているコマンドのから,指定したコマンドを検索し,その BCT_Pos と TLM_MGR_CmdElem を取得する + * @param[out] next_cmd_pos: BCT_Pos + * @param[out] next_cmd_elem: TLM_MGR_CmdElem + * @param[in] register_info: 検索対象の TLM_MGR_RegisterInfo + * @param[in] cmd_type: 検索対象の TLM_MGR_CMD_TYPE + * @param[in] apid: 検索対象の APID + * @param[in] tlm_id: 検索対象の TLM_CODE + * @param[in] dr_partition: 検索対象の dr partition + * @return TLM_MGR_ERR_CODE + */ +static TLM_MGR_ERR_CODE TLM_MGR_find_registered_cmd_pos_(BCT_Pos* found_cmd_pos, + TLM_MGR_CmdElem** found_cmd_elem, + const TLM_MGR_RegisterInfo* register_info, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + +/** + * @brief TLM_MGR_CmdElem が指定したものと等しいかチェックする + * @param cmd_elem: 等しいかチェックされる TLM_MGR_CmdElem + * @param cmd_type: 等しいかチェックする TLM_MGR_CMD_TYPE + * @param apid: 等しいかチェックする APID + * @param tlm_id: 等しいかチェックする TLM_CODE + * @param dr_partition: 等しいかチェックする dr partition + * @return RESULT + */ +static RESULT TLM_MGR_check_same_cmd_(const TLM_MGR_CmdElem* cmd_elem, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition); + /** - * @brief BC全体を展開していくmaster BCの構築 + * @brief master BC を deploy する BC の構築 + * @param void + * @return void + */ +static void TLM_MGR_load_deploy_bc_(void); + +/** + * @brief BC 全体を展開していく master BC の構築 * @param void * @return void */ static void TLM_MGR_load_master_bc_(void); + /** - * @brief NOP で埋められた BCの構築 + * @brief NOP で埋められた BC の構築 * @param void * @return void */ static void TLM_MGR_load_nop_bc_(void); +/** + * @brief 指定した BC を NOP x TLM_MGR_MAX_CMD_NUM_PER_BC で埋める + * @param bc_id: NOP でうめる BC ID + * @return void + */ +static void TLM_MGR_clear_bc_to_nop_(bct_id_t bc_id); + +/** + * @brief TLM_MGR_ERR_CODE から CCP_CmdRet に変換する + * @param code: TLM_MGR_ERR_CODE + * @return CCP_CmdRet + */ +static CCP_CmdRet TLM_MGR_conv_err_code_to_ccp_cmd_ret_(TLM_MGR_ERR_CODE code); + static TelemetryManager telemetry_manager_; const TelemetryManager* const telemetry_manager = &telemetry_manager_; @@ -121,259 +360,627 @@ static void TLM_MGR_init_by_am_(void) } -// FIXME: 実行時間やばい. Cmd_TLM_MGR_INIT を直す時に直す -// BCTの初期化より前なので,AppInitにできない. -static uint8_t TLM_MGR_init_1_(void) +// BCT の初期化より前なので,AppInit にできない. +static RESULT TLM_MGR_init_1_(void) { - telemetry_manager_.is_inited = 0; + return TLM_MGR_clear_info_(); +} + - TLM_MGR_clear_info_(); - - // BCの設定 - telemetry_manager_.bc_info[0].bc_id = BC_TLM_MGR0; - telemetry_manager_.bc_info[1].bc_id = BC_TLM_MGR1; - telemetry_manager_.bc_info[2].bc_id = BC_TLM_MGR2; - telemetry_manager_.bc_info[3].bc_id = BC_TLM_MGR3; - telemetry_manager_.bc_info[4].bc_id = BC_TLM_MGR4; - telemetry_manager_.bc_info[5].bc_id = BC_TLM_MGR5; - telemetry_manager_.bc_info[6].bc_id = BC_TLM_MGR6; - telemetry_manager_.bc_info[7].bc_id = BC_TLM_MGR7; - telemetry_manager_.bc_info[8].bc_id = BC_TLM_MGR8; - telemetry_manager_.bc_info[9].bc_id = BC_TLM_MGR9; - telemetry_manager_.bc_info[0].bc_type = TLM_MGR_BC_TYPE_MASTER; - telemetry_manager_.bc_info[1].bc_type = TLM_MGR_BC_TYPE_HK_TLM; - telemetry_manager_.bc_info[2].bc_type = TLM_MGR_BC_TYPE_SYSTEM_TLM; - telemetry_manager_.bc_info[3].bc_type = TLM_MGR_BC_TYPE_SYSTEM_TLM; - telemetry_manager_.bc_info[4].bc_type = TLM_MGR_BC_TYPE_SYSTEM_TLM; - // telemetry_manager_.bc_info[4].bc_type = TLM_MGR_BC_TYPE_RESERVE; // reserve でうめても良い - telemetry_manager_.bc_info[5].bc_type = TLM_MGR_BC_TYPE_HIGH_FREQ_TLM; - telemetry_manager_.bc_info[6].bc_type = TLM_MGR_BC_TYPE_HIGH_FREQ_TLM; - telemetry_manager_.bc_info[7].bc_type = TLM_MGR_BC_TYPE_HIGH_FREQ_TLM; - telemetry_manager_.bc_info[8].bc_type = TLM_MGR_BC_TYPE_HIGH_FREQ_TLM; - telemetry_manager_.bc_info[9].bc_type = TLM_MGR_BC_TYPE_LOW_FREQ_TLM; - - return 0; -} - - -static uint8_t TLM_MGR_init_2_(void) +static RESULT TLM_MGR_init_2_(void) { - TLM_MGR_ERR_CODE ret; + CCP_CmdRet ret = CCP_form_and_exec_rtc(Cmd_CODE_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC, NULL, 0); + if (ret.exec_sts != CCP_EXEC_SUCCESS) return RESULT_ERR; + return RESULT_OK; +} + + +static RESULT TLM_MGR_clear_info_(void) +{ + RESULT ret; + memset(&telemetry_manager_, 0x00, sizeof(telemetry_manager_)); - // BC設定から内部で使う情報の構築 - ret = TLM_MGR_calc_register_info_from_bc_info_(); - if (ret != TLM_MGR_ERR_CODE_OK) + telemetry_manager_.is_inited = 0; + + // TOOD: TLM_MGR_USE_BC_NUM が 10 であることを想定したコードになってる + ret = TLM_MGR_regigster_bc_settings(0, BC_TLM_MGR_0, TLM_MGR_BC_ROLE_AT_BC_0); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(1, BC_TLM_MGR_1, TLM_MGR_BC_ROLE_AT_BC_1); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(2, BC_TLM_MGR_2, TLM_MGR_BC_ROLE_AT_BC_2); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(3, BC_TLM_MGR_3, TLM_MGR_BC_ROLE_AT_BC_3); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(4, BC_TLM_MGR_4, TLM_MGR_BC_ROLE_AT_BC_4); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(5, BC_TLM_MGR_5, TLM_MGR_BC_ROLE_AT_BC_5); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(6, BC_TLM_MGR_6, TLM_MGR_BC_ROLE_AT_BC_6); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(7, BC_TLM_MGR_7, TLM_MGR_BC_ROLE_AT_BC_7); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(8, BC_TLM_MGR_8, TLM_MGR_BC_ROLE_AT_BC_8); + if (ret != RESULT_OK) return RESULT_ERR; + ret = TLM_MGR_regigster_bc_settings(9, BC_TLM_MGR_9, TLM_MGR_BC_ROLE_AT_BC_9); + if (ret != RESULT_OK) return RESULT_ERR; + + // deploy とあわせる最後は LOW であることが必須 + // 今後 ROLE を動的に変更可能なようにすることを見据えて + if (TLM_MGR_BC_ROLE_AT_BC_9 != TLM_MGR_BC_ROLE_LOW_FREQ_TLM) { - // 初期化失敗 - // Printf("TLM MGR init Failed at calc_register_info !\n"); - return 1; + return RESULT_ERR; } - return 0; + telemetry_manager_.master_bc_id = BC_TLM_MGR_MASTER; + telemetry_manager_.deploy_bc_id = BC_TLM_MGR_DEPLOY; + return RESULT_OK; } -static uint8_t TLM_MGR_init_3_(void) +static RESULT TLM_MGR_regigster_bc_settings(uint8_t cmd_table_idx, + bct_id_t bc_id, + TLM_MGR_BC_ROLE bc_role) { - TLM_MGR_clear_bc_to_nop_all_(); - return 0; + TLM_MGR_CmdBlock* cmd_block; + TLM_MGR_RegisterInfo* register_info; + if (cmd_table_idx >= TLM_MGR_USE_BC_NUM) return RESULT_ERR; + + cmd_block = &telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx]; + cmd_block->bc_role = bc_role; + cmd_block->bc_id = bc_id; + + register_info = TLM_MGR_get_regitster_info_from_bc_role_(bc_role); + if (register_info == NULL) return RESULT_ERR; + return TLM_MGR_add_bc_settings_to_register_info_(cmd_table_idx, register_info); } -static uint8_t TLM_MGR_init_4_(void) +static RESULT TLM_MGR_add_bc_settings_to_register_info_(uint8_t cmd_table_idx, + TLM_MGR_RegisterInfo* register_info) { - BCL_load_bc(telemetry_manager_.master_bc_id, TLM_MGR_load_master_bc_); + if (cmd_table_idx >= TLM_MGR_USE_BC_NUM) return RESULT_ERR; + if (register_info->cmd_table_idxes_size >= TLM_MGR_USE_BC_NUM) return RESULT_ERR; + + register_info->cmd_table_idxes[register_info->cmd_table_idxes_size] = cmd_table_idx; + register_info->cmd_table_idxes_size++; - telemetry_manager_.is_inited = 1; - return 0; + return RESULT_OK; } -static void TLM_MGR_clear_info_(void) +static CCP_CmdRet TLM_MGR_clear_cmds_based_on_role_(CMD_CODE cmd_code, + TLM_MGR_BC_ROLE bc_role, + TLM_MGR_RegisterInfo* register_info) { - uint8_t bc_info_idx; + uint16_t exec_counter; + uint8_t cmd_table_idx; + uint8_t bc_num = register_info->cmd_table_idxes_size; - for (bc_info_idx = 0; bc_info_idx < TLM_MGR_USE_BC_NUM; ++bc_info_idx) + switch (DCU_check_in(cmd_code, &exec_counter)) { - telemetry_manager_.bc_info[bc_info_idx].bc_id = BCT_MAX_BLOCKS; - telemetry_manager_.bc_info[bc_info_idx].bc_type = TLM_MGR_BC_TYPE_RESERVE; + case DCU_STATUS_FINISHED: // FALLTHROUGH + case DCU_STATUS_PROGRESS: + break; + default: + // DCU_STATUS_ABORTED_BY_ERR + // DCU_STATUS_ABORTED_BY_CMD + // がここに + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); } - telemetry_manager_.master_bc_id = BCT_MAX_BLOCKS; - TLM_MGR_clear_register_info_all_(); + if (exec_counter == bc_num) + { + register_info->registered_cmd_num = 0; + DCU_report_finish(cmd_code, CCP_EXEC_SUCCESS); + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + } + + cmd_table_idx = register_info->cmd_table_idxes[exec_counter]; + TLM_MGR_clear_bc_to_nop_(telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].bc_id); + memset(telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].cmds, + 0x00, + sizeof(TLM_MGR_CmdElem) * TLM_MGR_MAX_CMD_NUM_PER_BC); + + // 再帰実行 + if (DCU_register_next(cmd_code, NULL, 0) != DCU_ACK_OK) + { + DCU_report_err(cmd_code, CCP_EXEC_ILLEGAL_CONTEXT); + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + } + + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } -static void TLM_MGR_clear_register_info_all_(void) +static TLM_MGR_ERR_CODE TLM_MGR_register_(TLM_MGR_BC_ROLE role, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) { - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.master); - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.hk_tlm); - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.system_tlm); - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.high_freq_tlm); - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.low_freq_tlm); - TLM_MGR_clear_register_info_(&telemetry_manager_.register_info.reserve); + TLM_MGR_ERR_CODE ret; + TLM_MGR_RegisterInfo* register_info = NULL; + BCT_Pos register_pos; + TLM_MGR_CmdElem* register_cmd_elem = NULL; + BCT_ACK bct_ack; + + register_info = TLM_MGR_get_regitster_info_from_bc_role_(role); + if (register_info == NULL) return TLM_MGR_ERR_CODE_INVALID_BC_ROLE; + + ret = TLM_MGR_get_next_register_cmd_pos_(®ister_pos, ®ister_cmd_elem, register_info); + if (ret != TLM_MGR_ERR_CODE_OK) return ret; + + ret = TLM_MGR_form_register_tlc_(&TLM_MGR_packet_, + (cycle_t)register_pos.cmd, + cmd_type, + apid, + tlm_id, + dr_partition); + if (ret != TLM_MGR_ERR_CODE_OK) return ret; + + // すでに NOP で埋められており,かつ activate 済なので,直接 BCT にコマンドを挿入できる. + bct_ack = BCT_overwrite_cmd(®ister_pos, &TLM_MGR_packet_); + if (bct_ack != BCT_SUCCESS) return TLM_MGR_ERR_CODE_OTHER_ERR; + + // cmd_table の更新 + TLM_MGR_update_cmd_elem_of_cmd_table_(register_cmd_elem, + cmd_type, + apid, + tlm_id, + dr_partition); + + register_info->registered_cmd_num++; + return TLM_MGR_ERR_CODE_OK; } -static void TLM_MGR_clear_register_info_(TLM_MGR_RegisterInfo* register_info) +static TLM_MGR_ERR_CODE TLM_MGR_form_register_tlc_(CommonCmdPacket* packet, + cycle_t ti, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) { - memset(register_info, 0x00, sizeof(*register_info)); + switch (cmd_type) + { + case TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM: + return TLM_MGR_form_tg_generate_rt_tlm_(packet, ti, tlm_id); + case TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM: + return TLM_MGR_form_tg_generate_st_tlm_(packet, ti, tlm_id, dr_partition); + case TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM: + return TLM_MGR_form_tg_forward_as_rt_tlm_(packet, ti, apid, tlm_id); + case TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM: + return TLM_MGR_form_tg_forward_as_st_tlm_(packet, ti, apid, tlm_id, dr_partition); + case TLM_MGR_CMD_TYPE_DR_REPLAY_TLM: + return TLM_MGR_form_dr_replay_tlm_(packet, ti, dr_partition); + case TLM_MGR_CMD_TYPE_UNREGISTERED: // FALLTHROUGH + default: + return TLM_MGR_ERR_CODE_INVALID_CMD_TYPE; + } } -static void TLM_MGR_clear_bc_to_nop_all_(void) +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_generate_rt_tlm_(CommonCmdPacket* packet, + cycle_t ti, + TLM_CODE tlm_id) { - uint8_t bc_info_idx; + CCP_UTIL_ACK ret; + uint8_t param[1]; - for (bc_info_idx = 0; bc_info_idx < TLM_MGR_USE_BC_NUM; ++bc_info_idx) - { - TLM_MGR_clear_bc_to_nop_(telemetry_manager_.bc_info[bc_info_idx].bc_id); - WDT_clear_wdt(); // TODO: 実行時間を確認して消す - } + param[0] = (uint8_t)tlm_id; + + ret = CCP_form_tlc(packet, + ti, + Cmd_CODE_TG_GENERATE_RT_TLM, + param, + 1); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; } -static void TLM_MGR_clear_bc_to_nop_(bct_id_t bc_id) + +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_generate_st_tlm_(CommonCmdPacket* packet, + cycle_t ti, + TLM_CODE tlm_id, + uint8_t dr_partition) { - BCL_load_bc(bc_id, TLM_MGR_load_nop_bc_); - // この中で BCT_activate_block() もされることに注意 + CCP_UTIL_ACK ret; + uint8_t param[2]; + + param[0] = (uint8_t)tlm_id; + param[1] = dr_partition; + + ret = CCP_form_tlc(packet, + ti, + Cmd_CODE_TG_GENERATE_ST_TLM, + param, + 2); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; +} + + +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_forward_as_rt_tlm_(CommonCmdPacket* packet, + cycle_t ti, + APID apid, + TLM_CODE tlm_id) +{ + CCP_UTIL_ACK ret; + uint16_t temp; + uint8_t param[3]; + + temp = (uint16_t)apid; + ENDIAN_memcpy(¶m[0], &temp, sizeof(temp)); + param[2] = (uint8_t)tlm_id; + + ret = CCP_form_tlc(packet, + ti, + Cmd_CODE_TG_FORWARD_AS_RT_TLM, + param, + 3); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; } -static TLM_MGR_ERR_CODE TLM_MGR_calc_register_info_from_bc_info_(void) +static TLM_MGR_ERR_CODE TLM_MGR_form_tg_forward_as_st_tlm_(CommonCmdPacket* packet, + cycle_t ti, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) { - uint8_t bc_info_idx; - TLM_MGR_RegisterInfo* register_info_master; + CCP_UTIL_ACK ret; + uint16_t temp; + uint8_t param[4]; + + temp = (uint16_t)apid; + ENDIAN_memcpy(¶m[0], &temp, sizeof(temp)); + param[2] = (uint8_t)tlm_id; + param[3] = dr_partition; + + ret = CCP_form_tlc(packet, + ti, + Cmd_CODE_TG_FORWARD_AS_ST_TLM, + param, + 4); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; +} - TLM_MGR_clear_register_info_all_(); // TODO: 高速化のために消してもいいかも? - for (bc_info_idx = 0; bc_info_idx < TLM_MGR_USE_BC_NUM; ++bc_info_idx) +static TLM_MGR_ERR_CODE TLM_MGR_form_dr_replay_tlm_(CommonCmdPacket* packet, cycle_t ti, uint8_t dr_partition) +{ +#ifdef TLM_MGR_ENABLE_DR_REPLAY_TLM + CCP_UTIL_ACK ret; + uint8_t param[2]; + + param[0] = dr_partition; + param[1] = 1; + + ret = CCP_form_tlc(packet, + ti, + Cmd_CODE_DR_REPLAY_TLM, + param, + 2); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; +#else + (void)packet; + (void)ti; + (void)dr_partition; + return TLM_MGR_ERR_CODE_OTHER_ERR; +#endif +} + + +static TLM_MGR_ERR_CODE TLM_MGR_delete_(TLM_MGR_BC_ROLE role, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) +{ + TLM_MGR_ERR_CODE ret; + TLM_MGR_RegisterInfo* register_info = NULL; + BCT_Pos delete_pos; + BCT_Pos last_pos; + TLM_MGR_CmdElem* delete_cmd_elem = NULL; + TLM_MGR_CmdElem* last_cmd_elem = NULL; + BCT_ACK bct_ack; + + register_info = TLM_MGR_get_regitster_info_from_bc_role_(role); + if (register_info == NULL) return TLM_MGR_ERR_CODE_INVALID_BC_ROLE; + + ret = TLM_MGR_find_registered_cmd_pos_(&delete_pos, + &delete_cmd_elem, + register_info, + cmd_type, + apid, + tlm_id, + dr_partition); + if (ret != TLM_MGR_ERR_CODE_OK) return ret; + ret = TLM_MGR_get_last_registered_cmd_pos_(&last_pos, + &last_cmd_elem, + register_info); + if (ret != TLM_MGR_ERR_CODE_OK) return ret; + + if (delete_cmd_elem == last_cmd_elem) { - TLM_MGR_ERR_CODE ret = TLM_MGR_ERR_CODE_OK; - switch (telemetry_manager_.bc_info[bc_info_idx].bc_type) - { - case TLM_MGR_BC_TYPE_MASTER: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.master, bc_info_idx); - break; - case TLM_MGR_BC_TYPE_HK_TLM: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.hk_tlm, bc_info_idx); - break; - case TLM_MGR_BC_TYPE_SYSTEM_TLM: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.system_tlm, bc_info_idx); - break; - case TLM_MGR_BC_TYPE_HIGH_FREQ_TLM: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.high_freq_tlm, bc_info_idx); - break; - case TLM_MGR_BC_TYPE_LOW_FREQ_TLM: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.low_freq_tlm, bc_info_idx); - break; - case TLM_MGR_BC_TYPE_RESERVE: - ret = TLM_MGR_add_bc_info_to_register_info_(&telemetry_manager_.register_info.reserve, bc_info_idx); - break; - default: - return TLM_MGR_ERR_CODE_OTHER_ERR; - break; - } - if (ret != TLM_MGR_ERR_CODE_OK) return ret; + // 消す対象が末端 + // なにもしない } + else + { + // 消す対象が末端ではない + // 末尾で消す対象を上書き + bct_ack = BCT_load_cmd(&last_pos, &TLM_MGR_packet_); + if (bct_ack != BCT_SUCCESS) return TLM_MGR_ERR_CODE_OTHER_ERR; + bct_ack = BCT_overwrite_cmd(&delete_pos, &TLM_MGR_packet_); + if (bct_ack != BCT_SUCCESS) return TLM_MGR_ERR_CODE_OTHER_ERR; + + TLM_MGR_update_cmd_elem_of_cmd_table_(delete_cmd_elem, + last_cmd_elem->cmd_type, + last_cmd_elem->apid, + last_cmd_elem->tlm_id, + last_cmd_elem->dr_partition); + } + + // 末尾の削除 + // TODO: TI が正しいかテストでチェック + ret = TLM_MGR_form_nop_tlc_(&TLM_MGR_packet_, (cycle_t)last_pos.cmd); + if (ret != TLM_MGR_ERR_CODE_OK) return ret; - register_info_master = &telemetry_manager_.register_info.master; + // すでに NOP で埋められており,かつ activate 済なので,直接 BCT にコマンドを挿入できる. + bct_ack = BCT_overwrite_cmd(&last_pos, &TLM_MGR_packet_); + if (bct_ack != BCT_SUCCESS) return TLM_MGR_ERR_CODE_OTHER_ERR; - if (register_info_master->bc_info_idx_used_num == 0) return TLM_MGR_ERR_CODE_MASTER_IS_ABSENT; - if (register_info_master->bc_info_idx_used_num > 1) return TLM_MGR_ERR_CODE_MASTER_DUPLICATED; + TLM_MGR_clear_cmd_elem_of_cmd_table_(last_cmd_elem); - bc_info_idx = register_info_master->bc_info_idx[0]; - telemetry_manager_.master_bc_id = telemetry_manager_.bc_info[bc_info_idx].bc_id; + register_info->registered_cmd_num--; return TLM_MGR_ERR_CODE_OK; } -static TLM_MGR_ERR_CODE TLM_MGR_add_bc_info_to_register_info_(TLM_MGR_RegisterInfo* register_info, uint8_t bc_info_idx) +static TLM_MGR_ERR_CODE TLM_MGR_form_nop_tlc_(CommonCmdPacket* packet, cycle_t ti) { - if (register_info->bc_info_idx_used_num >= TLM_MGR_USE_BC_NUM) return TLM_MGR_ERR_CODE_REGISTER_INFO_BC_FULL; + CCP_UTIL_ACK ret; + ret = CCP_form_tlc(packet, ti, Cmd_CODE_NOP, NULL, 0); + if (ret != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + return TLM_MGR_ERR_CODE_OK; +} - register_info->bc_info_idx[register_info->bc_info_idx_used_num] = bc_info_idx; - register_info->bc_info_idx_used_num++; - return TLM_MGR_ERR_CODE_OK; +static TLM_MGR_RegisterInfo* TLM_MGR_get_regitster_info_from_bc_role_(TLM_MGR_BC_ROLE bc_role) +{ + switch (bc_role) + { + case TLM_MGR_BC_ROLE_HK_TLM: + return &telemetry_manager_.register_info.hk; + case TLM_MGR_BC_ROLE_HIGH_FREQ_TLM: + return &telemetry_manager_.register_info.high_freq; + case TLM_MGR_BC_ROLE_LOW_FREQ_TLM: + return &telemetry_manager_.register_info.low_freq; + default: + return NULL; + } } -static void TLM_MGR_clear_bc_of_register_info_(TLM_MGR_RegisterInfo* register_info) +static void TLM_MGR_update_cmd_elem_of_cmd_table_(TLM_MGR_CmdElem* cmd_elem, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) { - uint8_t i; + if (cmd_elem == NULL) return; + cmd_elem->cmd_type = cmd_type; + cmd_elem->apid = apid; + cmd_elem->tlm_id = tlm_id; + cmd_elem->dr_partition = dr_partition; +} + - for (i = 0; i < register_info->bc_info_idx_used_num; ++i) +static void TLM_MGR_clear_cmd_elem_of_cmd_table_(TLM_MGR_CmdElem* cmd_elem) +{ + if (cmd_elem == NULL) return; + // クリアは 0 埋めでよい + memset(cmd_elem, 0x00, sizeof(*cmd_elem)); +} + + +static TLM_MGR_ERR_CODE TLM_MGR_get_next_register_cmd_pos_(BCT_Pos* next_cmd_pos, + TLM_MGR_CmdElem** next_cmd_elem, + const TLM_MGR_RegisterInfo* register_info) +{ + uint8_t idx_of_cmd_table_idxes; + uint8_t cmd_table_idx; + bct_id_t block; + uint8_t cmd_pos; + + if (register_info->cmd_table_idxes_size == 0) return TLM_MGR_ERR_CODE_CMD_FULL; + if (register_info->registered_cmd_num >= register_info->cmd_table_idxes_size * TLM_MGR_MAX_CMD_NUM_PER_BC) + { + return TLM_MGR_ERR_CODE_CMD_FULL; + } + + idx_of_cmd_table_idxes = register_info->registered_cmd_num % register_info->cmd_table_idxes_size; + cmd_pos = register_info->registered_cmd_num / register_info->cmd_table_idxes_size; + + cmd_table_idx = register_info->cmd_table_idxes[idx_of_cmd_table_idxes]; + + *next_cmd_elem = &telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].cmds[cmd_pos]; + + block = telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].bc_id; + if (BCT_make_pos(next_cmd_pos, block, cmd_pos) != BCT_SUCCESS) { - uint8_t bc_info_idx = register_info->bc_info_idx[i]; - TLM_MGR_clear_bc_to_nop_(telemetry_manager_.bc_info[bc_info_idx].bc_id); + return TLM_MGR_ERR_CODE_BCT_ERR; } - register_info->tlm_register_pointer_to_idx_of_bc_info_idx = 0; - register_info->tlm_register_pointer_to_bc_cmd_idx = 0; + return TLM_MGR_ERR_CODE_OK; } -static TLM_MGR_ERR_CODE TLM_MGR_register_generate_tlm_(TLM_MGR_RegisterInfo* register_info, const uint8_t* param) +static TLM_MGR_ERR_CODE TLM_MGR_get_last_registered_cmd_pos_(BCT_Pos* last_cmd_pos, + TLM_MGR_CmdElem** last_cmd_elem, + const TLM_MGR_RegisterInfo* register_info) { - uint8_t bc_info_idx = register_info->bc_info_idx[register_info->tlm_register_pointer_to_idx_of_bc_info_idx]; - bct_id_t bc_id = telemetry_manager_.bc_info[bc_info_idx].bc_id; - uint8_t bc_cmd_pos = register_info->tlm_register_pointer_to_bc_cmd_idx; - BCT_Pos bc_register_pos; - CCP_UTIL_ACK ccp_util_ack; - BCT_ACK bct_ack; + uint8_t idx_of_cmd_table_idxes; + uint8_t cmd_table_idx; + bct_id_t block; + uint8_t cmd_pos; - if (bc_cmd_pos >= TLM_MGR_MAX_TLM_NUM_PER_BC) return TLM_MGR_ERR_CODE_CMD_FULL; + if (register_info->registered_cmd_num == 0) + { + return TLM_MGR_ERR_CODE_CMD_NOT_FOUND; + } - BCT_make_pos(&bc_register_pos, bc_id, bc_cmd_pos); + idx_of_cmd_table_idxes = (register_info->registered_cmd_num - 1) % register_info->cmd_table_idxes_size; + cmd_pos = (register_info->registered_cmd_num - 1) / register_info->cmd_table_idxes_size; - ccp_util_ack = CCP_form_tlc(&TLM_MGR_packet_, - (cycle_t)bc_cmd_pos, - Cmd_CODE_GENERATE_TLM, - param, - CA_get_cmd_param_min_len(Cmd_CODE_GENERATE_TLM)); - if (ccp_util_ack != CCP_UTIL_ACK_OK) return TLM_MGR_ERR_CODE_OTHER_ERR; + cmd_table_idx = register_info->cmd_table_idxes[idx_of_cmd_table_idxes]; - // すでに NOP で埋められており,かつ activate 済なので,直接 BCT にコマンドを挿入できる. - bct_ack = BCT_overwrite_cmd(&bc_register_pos, &TLM_MGR_packet_); - if (bct_ack != BCT_SUCCESS) return TLM_MGR_ERR_CODE_OTHER_ERR; + *last_cmd_elem = &telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].cmds[cmd_pos]; - register_info->tlm_register_pointer_to_idx_of_bc_info_idx++; - if (register_info->tlm_register_pointer_to_idx_of_bc_info_idx >= register_info->bc_info_idx_used_num) + block = telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].bc_id; + if (BCT_make_pos(last_cmd_pos, block, cmd_pos) != BCT_SUCCESS) { - register_info->tlm_register_pointer_to_idx_of_bc_info_idx %= register_info->bc_info_idx_used_num; - register_info->tlm_register_pointer_to_bc_cmd_idx++; + return TLM_MGR_ERR_CODE_BCT_ERR; } + return TLM_MGR_ERR_CODE_OK; +} + +static TLM_MGR_ERR_CODE TLM_MGR_find_registered_cmd_pos_(BCT_Pos* found_cmd_pos, + TLM_MGR_CmdElem** found_cmd_elem, + const TLM_MGR_RegisterInfo* register_info, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) +{ + uint8_t idx_of_cmd_table_idxes; + bct_id_t block; + uint8_t cmd_pos; + uint8_t cmd_table_idx; + TLM_MGR_CmdElem* cmd_elem; + uint8_t count = 0; + + if (register_info->registered_cmd_num == 0) + { + return TLM_MGR_ERR_CODE_CMD_NOT_FOUND; + } + + for (cmd_pos = 0; cmd_pos < TLM_MGR_MAX_CMD_NUM_PER_BC; ++cmd_pos) + { + RESULT ret = RESULT_ERR; + for (idx_of_cmd_table_idxes = 0; idx_of_cmd_table_idxes < register_info->cmd_table_idxes_size; ++idx_of_cmd_table_idxes) + { + cmd_table_idx = register_info->cmd_table_idxes[idx_of_cmd_table_idxes]; + cmd_elem = &telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].cmds[cmd_pos]; + + ret = TLM_MGR_check_same_cmd_(cmd_elem, cmd_type, apid, tlm_id, dr_partition); + // 見つかった! + if (ret == RESULT_OK) break; + + count++; + if (count == register_info->registered_cmd_num) return TLM_MGR_ERR_CODE_CMD_NOT_FOUND; + } + if (ret == RESULT_OK) break; + } + + *found_cmd_elem = cmd_elem; + + block = telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx].bc_id; + if (BCT_make_pos(found_cmd_pos, block, cmd_pos) != BCT_SUCCESS) + { + return TLM_MGR_ERR_CODE_BCT_ERR; + } return TLM_MGR_ERR_CODE_OK; } +static RESULT TLM_MGR_check_same_cmd_(const TLM_MGR_CmdElem* cmd_elem, + TLM_MGR_CMD_TYPE cmd_type, + APID apid, + TLM_CODE tlm_id, + uint8_t dr_partition) +{ + switch (cmd_type) + { + case TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM: + if (cmd_elem->cmd_type == TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM && + cmd_elem->tlm_id == tlm_id) + { + return RESULT_OK; + } + break; + case TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM: + if (cmd_elem->cmd_type == TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM && + cmd_elem->tlm_id == tlm_id && + cmd_elem->dr_partition == dr_partition) + { + return RESULT_OK; + } + break; + case TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM: + if (cmd_elem->cmd_type == TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM && + cmd_elem->apid == apid && + cmd_elem->tlm_id == tlm_id) + { + return RESULT_OK; + } + case TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM: + if (cmd_elem->cmd_type == TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM && + cmd_elem->apid == apid && + cmd_elem->tlm_id == tlm_id && + cmd_elem->dr_partition == dr_partition) + { + return RESULT_OK; + } + case TLM_MGR_CMD_TYPE_DR_REPLAY_TLM: + if (cmd_elem->cmd_type == TLM_MGR_CMD_TYPE_DR_REPLAY_TLM && + cmd_elem->dr_partition == dr_partition) + { + return RESULT_OK; + } + case TLM_MGR_CMD_TYPE_UNREGISTERED: // FALLTHROUGH + default: + return RESULT_ERR; + } + return RESULT_ERR; +} + + +static void TLM_MGR_load_deploy_bc_(void) +{ + BCL_tool_register_deploy(0, telemetry_manager_.master_bc_id, TLCD_ID_DEPLOY_TLM); + // BC#9 は TLM_MGR_BC_ROLE_LOW_FREQ_TLM なはず + BCL_tool_register_rotate(1, telemetry_manager_.cmd_table.cmd_blocks[TLM_MGR_USE_BC_NUM - 1].bc_id); +} + + static void TLM_MGR_load_master_bc_(void) { - cycle_t ti = 1; // 1 - 9 までの 9 個登録する. 10 はdeploy - uint8_t bc_info_idx; + // 1 - TLM_MGR_USE_BC_NUM までの TLM_MGR_USE_BC_NUM 個登録する. TLM_MGR_USE_BC_NUM は deploy も一緒に + uint8_t cmd_table_idx; - for (bc_info_idx = 0; bc_info_idx < TLM_MGR_USE_BC_NUM; ++bc_info_idx) + for (cmd_table_idx = 0; cmd_table_idx < (TLM_MGR_USE_BC_NUM - 1); ++cmd_table_idx) { - switch (telemetry_manager_.bc_info[bc_info_idx].bc_type) + TLM_MGR_CmdBlock* cmd_block = &telemetry_manager_.cmd_table.cmd_blocks[cmd_table_idx]; + switch (cmd_block->bc_role) { - case TLM_MGR_BC_TYPE_HK_TLM: // FALLTHROUGH - case TLM_MGR_BC_TYPE_SYSTEM_TLM: // FALLTHROUGH - case TLM_MGR_BC_TYPE_HIGH_FREQ_TLM: // FALLTHROUGH - case TLM_MGR_BC_TYPE_RESERVE: - BCL_tool_register_combine(ti, telemetry_manager_.bc_info[bc_info_idx].bc_id); - ti++; + case TLM_MGR_BC_ROLE_HK_TLM: // FALLTHROUGH + case TLM_MGR_BC_ROLE_HIGH_FREQ_TLM: + BCL_tool_register_combine(cmd_table_idx + 1, cmd_block->bc_id); break; - case TLM_MGR_BC_TYPE_LOW_FREQ_TLM: - BCL_tool_register_rotate(ti, telemetry_manager_.bc_info[bc_info_idx].bc_id); - ti++; + case TLM_MGR_BC_ROLE_LOW_FREQ_TLM: + BCL_tool_register_rotate(cmd_table_idx + 1, cmd_block->bc_id); break; default: - // TLM_MGR_BC_TYPE_MASTER がここに break; } } - BCL_tool_register_deploy(TLM_MGR_USE_BC_NUM, telemetry_manager_.master_bc_id, TLCD_ID_DEPLOY_TLM); + // TLM_MGR_USE_BC_NUM 番目は deploy も一緒に + BCL_tool_register_combine(TLM_MGR_USE_BC_NUM, telemetry_manager_.deploy_bc_id); } @@ -381,19 +988,43 @@ static void TLM_MGR_load_nop_bc_(void) { cycle_t ti; - for (ti = 0; ti < TLM_MGR_MAX_TLM_NUM_PER_BC; ++ti) + for (ti = 0; ti < TLM_MGR_MAX_CMD_NUM_PER_BC; ++ti) { BCL_tool_register_cmd(ti, Cmd_CODE_NOP); } } -// FIXME: 実行時間やばい: 21ms -// 適当に分割しないと +static void TLM_MGR_clear_bc_to_nop_(bct_id_t bc_id) +{ + BCL_load_bc(bc_id, TLM_MGR_load_nop_bc_); + // この中で BCT_activate_block() もされることに注意 +} + + +static CCP_CmdRet TLM_MGR_conv_err_code_to_ccp_cmd_ret_(TLM_MGR_ERR_CODE code) +{ + switch (code) + { + case TLM_MGR_ERR_CODE_OK: + return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, 0); + case TLM_MGR_ERR_CODE_INVALID_BC_ROLE: // FALLTHROUGH + case TLM_MGR_ERR_CODE_INVALID_CMD_TYPE: + return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_PARAMETER, (uint32_t)code); + case TLM_MGR_ERR_CODE_CMD_FULL: // FALLTHROUGH + case TLM_MGR_ERR_CODE_BCT_ERR: // FALLTHROUGH + case TLM_MGR_ERR_CODE_OTHER_ERR: + default: + return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)code); + } +} + + CCP_CmdRet Cmd_TLM_MGR_INIT(const CommonCmdPacket* packet) { - uint8_t ret; + RESULT ret; uint16_t exec_counter; + const uint16_t exec_counter_offset = 2; (void)packet; switch (DCU_check_in(Cmd_CODE_TLM_MGR_INIT, &exec_counter)) @@ -408,33 +1039,34 @@ CCP_CmdRet Cmd_TLM_MGR_INIT(const CommonCmdPacket* packet) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); } - switch (exec_counter) + if (exec_counter == 0) { - case 0: ret = TLM_MGR_init_1_(); - break; - case 1: + } + else if (exec_counter == 1) + { ret = TLM_MGR_init_2_(); - break; - case 2: - ret = TLM_MGR_init_3_(); // これが21ms.NOP BCを作るのが重い - break; - case 3: - ret = TLM_MGR_init_4_(); - break; - default: - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + } + else if (exec_counter >= exec_counter_offset + TLM_MGR_USE_BC_NUM) + { + ret = RESULT_ERR; + } + else + { + TLM_MGR_clear_bc_to_nop_(telemetry_manager_.cmd_table.cmd_blocks[exec_counter - exec_counter_offset].bc_id); + ret = RESULT_OK; } - if (ret != 0) + if (ret != RESULT_OK) { DCU_report_err(Cmd_CODE_TLM_MGR_INIT, CCP_EXEC_ILLEGAL_CONTEXT); return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); } - if (exec_counter == 3) + if (exec_counter == exec_counter_offset + TLM_MGR_USE_BC_NUM - 1) { DCU_report_finish(Cmd_CODE_TLM_MGR_INIT, CCP_EXEC_SUCCESS); + telemetry_manager_.is_inited = 1; return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } @@ -449,16 +1081,12 @@ CCP_CmdRet Cmd_TLM_MGR_INIT(const CommonCmdPacket* packet) } -CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_BC(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC(const CommonCmdPacket* packet) { (void)packet; - if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - - // TODO: TLM_MGR_calc_register_info_from_bc_info_ は入れなくていいか検討する - // とりあえずはなくていい気がする - BCL_load_bc(telemetry_manager_.master_bc_id, TLM_MGR_load_master_bc_); + BCL_load_bc(telemetry_manager_.deploy_bc_id, TLM_MGR_load_deploy_bc_); return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } @@ -468,232 +1096,216 @@ CCP_CmdRet Cmd_TLM_MGR_CLEAR_HK_TLM(const CommonCmdPacket* packet) { (void)packet; - if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + // DCU を使う + return TLM_MGR_clear_cmds_based_on_role_(Cmd_CODE_TLM_MGR_CLEAR_HK_TLM, + TLM_MGR_BC_ROLE_HK_TLM, + &telemetry_manager_.register_info.hk); +} - TLM_MGR_clear_bc_of_register_info_(&telemetry_manager_.register_info.hk_tlm); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); +CCP_CmdRet Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM(const CommonCmdPacket* packet) +{ + (void)packet; + + // DCU を使う + return TLM_MGR_clear_cmds_based_on_role_(Cmd_CODE_TLM_MGR_CLEAR_HIGH_FREQ_TLM, + TLM_MGR_BC_ROLE_HIGH_FREQ_TLM, + &telemetry_manager_.register_info.high_freq); } -CCP_CmdRet Cmd_TLM_MGR_CLEAR_SYSTEM_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM(const CommonCmdPacket* packet) { (void)packet; - if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + // DCU を使う + return TLM_MGR_clear_cmds_based_on_role_(Cmd_CODE_TLM_MGR_CLEAR_LOW_FREQ_TLM, + TLM_MGR_BC_ROLE_LOW_FREQ_TLM, + &telemetry_manager_.register_info.low_freq); +} + + +CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM(const CommonCmdPacket* packet) +{ + (void)packet; - TLM_MGR_clear_bc_of_register_info_(&telemetry_manager_.register_info.system_tlm); + // NOTE: DCU を多重で使っている! (つまり, DCU_LOG_MAX が 2 以上でないとだめ) + CCP_form_and_exec_rtc(Cmd_CODE_TLM_MGR_CLEAR_HIGH_FREQ_TLM, NULL, 0); + CCP_form_and_exec_rtc(Cmd_CODE_TLM_MGR_CLEAR_LOW_FREQ_TLM, NULL, 0); return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } -// FIXME: 実行時間チェック :9ms -// 結局,NOP BC作るのが重い -CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_START_TLM(const CommonCmdPacket* packet) { - uint16_t exec_counter; + CCP_CmdRet cmd_ret; (void)packet; if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - switch (DCU_check_in(Cmd_CODE_TLM_MGR_CLEAR_USER_TLM, &exec_counter)) + cmd_ret = CCP_form_and_exec_rtc(Cmd_CODE_TLM_MGR_STOP_TLM, NULL, 0); + if (cmd_ret.exec_sts != CCP_EXEC_SUCCESS) { - case DCU_STATUS_FINISHED: // FALLTHROUGH - case DCU_STATUS_PROGRESS: - break; - default: - // DCU_STATUS_ABORTED_BY_ERR - // DCU_STATUS_ABORTED_BY_CMD - // がここに - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, 0); } - switch (exec_counter) + cmd_ret = CCP_form_and_exec_block_deploy_cmd(TLCD_ID_DEPLOY_TLM, telemetry_manager_.master_bc_id); + if (cmd_ret.exec_sts != CCP_EXEC_SUCCESS) { - case 0: - TLM_MGR_clear_bc_of_register_info_(&telemetry_manager_.register_info.high_freq_tlm); - break; - case 1: - TLM_MGR_clear_bc_of_register_info_(&telemetry_manager_.register_info.low_freq_tlm); - break; - default: - TLM_MGR_clear_bc_of_register_info_(&telemetry_manager_.register_info.reserve); // 便宜上ここで - DCU_report_finish(Cmd_CODE_TLM_MGR_CLEAR_USER_TLM, CCP_EXEC_SUCCESS); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); - } - - // 再帰実行 - if (DCU_register_next(Cmd_CODE_TLM_MGR_CLEAR_USER_TLM, NULL, 0) != DCU_ACK_OK) - { - DCU_report_err(Cmd_CODE_TLM_MGR_CLEAR_USER_TLM, CCP_EXEC_ILLEGAL_CONTEXT); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, 1); } return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } -CCP_CmdRet Cmd_TLM_MGR_START_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_STOP_TLM(const CommonCmdPacket* packet) { - BCT_Pos bc_register_pos; - bct_id_t master_bc_id; - uint8_t bc_cmd_pos; - uint8_t param[1 + SIZE_OF_BCT_ID_T]; - + uint8_t param[1]; (void)packet; - if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - // master BC が 1つでないのは何かがおかしい - if (telemetry_manager_.register_info.master.bc_info_idx_used_num != 1) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - } - - // master bc の末尾の nop を deploy に差し替える - master_bc_id = telemetry_manager_.master_bc_id; - bc_cmd_pos = TLM_MGR_USE_BC_NUM - 1; - - BCT_make_pos(&bc_register_pos, master_bc_id, bc_cmd_pos); param[0] = TLCD_ID_DEPLOY_TLM; - ENDIAN_memcpy(¶m[1], &master_bc_id, SIZE_OF_BCT_ID_T); + return CCP_form_and_exec_rtc(Cmd_CODE_TLCD_CLEAR_ALL_TIMELINE, param, 1); +} - CCP_form_tlc(&TLM_MGR_packet_, - TLM_MGR_USE_BC_NUM, - Cmd_CODE_TLCD_DEPLOY_BLOCK, - param, - 1 + SIZE_OF_BCT_ID_T); - BCT_overwrite_cmd(&bc_register_pos, &TLM_MGR_packet_); - // master bc 展開 - CCP_form_block_deploy_cmd(&TLM_MGR_packet_, TLCD_ID_DEPLOY_TLM, master_bc_id); - PH_analyze_cmd_packet(&TLM_MGR_packet_); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM(const CommonCmdPacket* packet) +{ + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + + err_code = TLM_MGR_register_(bc_role, TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM, APID_UNKNOWN, tlm_id, 0); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_STOP_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM(const CommonCmdPacket* packet) { - BCT_Pos bc_register_pos; - bct_id_t master_bc_id; - uint8_t bc_cmd_pos; - - (void)packet; + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 2, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - // master BC が 1つでないのは何かがおかしい - if (telemetry_manager_.register_info.master.bc_info_idx_used_num != 1) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - } + err_code = TLM_MGR_register_(bc_role, TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM, APID_UNKNOWN, tlm_id, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); +} - // master bc の末尾の deploy を nop に差し替えることで止める - master_bc_id = telemetry_manager_.master_bc_id; - bc_cmd_pos = TLM_MGR_USE_BC_NUM - 1; - BCT_make_pos(&bc_register_pos, master_bc_id, bc_cmd_pos); - CCP_form_tlc(&TLM_MGR_packet_, - TLM_MGR_USE_BC_NUM, - Cmd_CODE_NOP, - NULL, - 0); - BCT_overwrite_cmd(&bc_register_pos, &TLM_MGR_packet_); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet) +{ + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + APID apid = (APID)CCP_get_param_from_packet(packet, 1, uint16_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 2, uint8_t); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + + err_code = TLM_MGR_register_(bc_role, TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM, apid, tlm_id, 0); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_CLEAR_TLM_TL(const CommonCmdPacket* packet) -{ - uint8_t param[1]; - (void)packet; +CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet) +{ + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + APID apid = (APID)CCP_get_param_from_packet(packet, 1, uint16_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 2, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 3, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - param[0] = TLCD_ID_DEPLOY_TLM; - CCP_form_rtc(&TLM_MGR_packet_, Cmd_CODE_TLCD_CLEAR_ALL_TIMELINE, param, 1); - PH_analyze_cmd_packet(&TLM_MGR_packet_); - - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + err_code = TLM_MGR_register_(bc_role, TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM, apid, tlm_id, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_REGISTER_HK_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_REGISTER_REPLAY_TLM(const CommonCmdPacket* packet) { - const uint8_t* param = CCP_get_param_head(packet); - TLM_MGR_ERR_CODE ret; + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 1, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - if (CA_ckeck_cmd_param_len(Cmd_CODE_GENERATE_TLM, CCP_get_param_len(packet)) != CA_ACK_OK) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_LENGTH); - } - - ret = TLM_MGR_register_generate_tlm_(&telemetry_manager_.register_info.hk_tlm, param); - if (ret != TLM_MGR_ERR_CODE_OK) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + err_code = TLM_MGR_register_(bc_role, TLM_MGR_CMD_TYPE_DR_REPLAY_TLM, APID_UNKNOWN, TLM_CODE_MAX, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_REGISTER_SYSTEM_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM(const CommonCmdPacket* packet) { - const uint8_t* param = CCP_get_param_head(packet); - TLM_MGR_ERR_CODE ret; + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - if (CA_ckeck_cmd_param_len(Cmd_CODE_GENERATE_TLM, CCP_get_param_len(packet)) != CA_ACK_OK) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_LENGTH); - } - - ret = TLM_MGR_register_generate_tlm_(&telemetry_manager_.register_info.system_tlm, param); - if (ret != TLM_MGR_ERR_CODE_OK) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + err_code = TLM_MGR_delete_(bc_role, TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM, APID_UNKNOWN, tlm_id, 0); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_REGISTER_HIGH_FREQ_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM(const CommonCmdPacket* packet) { - const uint8_t* param = CCP_get_param_head(packet); - TLM_MGR_ERR_CODE ret; + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 2, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - if (CA_ckeck_cmd_param_len(Cmd_CODE_GENERATE_TLM, CCP_get_param_len(packet)) != CA_ACK_OK) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_LENGTH); - } + err_code = TLM_MGR_delete_(bc_role, TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM, APID_UNKNOWN, tlm_id, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); +} - ret = TLM_MGR_register_generate_tlm_(&telemetry_manager_.register_info.high_freq_tlm, param); - if (ret != TLM_MGR_ERR_CODE_OK) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); +CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet) +{ + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + APID apid = (APID)CCP_get_param_from_packet(packet, 1, uint16_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 2, uint8_t); + + if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + + err_code = TLM_MGR_delete_(bc_role, TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM, apid, tlm_id, 0); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } -CCP_CmdRet Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet) { - const uint8_t* param = CCP_get_param_head(packet); - TLM_MGR_ERR_CODE ret; + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + APID apid = (APID)CCP_get_param_from_packet(packet, 1, uint16_t); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 2, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 3, uint8_t); if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - if (CA_ckeck_cmd_param_len(Cmd_CODE_GENERATE_TLM, CCP_get_param_len(packet)) != CA_ACK_OK) - { - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_LENGTH); - } + err_code = TLM_MGR_delete_(bc_role, TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM, apid, tlm_id, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); +} - ret = TLM_MGR_register_generate_tlm_(&telemetry_manager_.register_info.low_freq_tlm, param); - if (ret != TLM_MGR_ERR_CODE_OK) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); +CCP_CmdRet Cmd_TLM_MGR_DELETE_REPLAY_TLM(const CommonCmdPacket* packet) +{ + TLM_MGR_ERR_CODE err_code; + TLM_MGR_BC_ROLE bc_role = (TLM_MGR_BC_ROLE)CCP_get_param_from_packet(packet, 0, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 1, uint8_t); + + if (telemetry_manager_.is_inited == 0) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); + + err_code = TLM_MGR_delete_(bc_role, TLM_MGR_CMD_TYPE_DR_REPLAY_TLM, APID_UNKNOWN, TLM_CODE_MAX, dr_partition); + return TLM_MGR_conv_err_code_to_ccp_cmd_ret_(err_code); } #pragma section diff --git a/Applications/telemetry_manager.h b/Applications/telemetry_manager.h index a266534f8..75bf56bd9 100644 --- a/Applications/telemetry_manager.h +++ b/Applications/telemetry_manager.h @@ -1,7 +1,7 @@ /** * @file * @brief userがテレメトリ詰まりをやTL溢れを防ぎつつ,またCDHなどがテレメトリを管理しやすくするためのApp - * @note https://gitlab.com/ut_issl/c2a/c2a_core_oss/-/issues/81 や telemetry_manager.h の最下部を参照(FIXME: あとでdocumentに移す) + * @note 利用方法は telemetry_manager.h の最下部を参照(FIXME: あとでdocumentに移す) */ #ifndef TELEMETRY_MANAGER_H_ #define TELEMETRY_MANAGER_H_ @@ -10,13 +10,15 @@ #include "../TlmCmd/common_cmd_packet.h" #include "../TlmCmd/common_cmd_packet_util.h" #include "../TlmCmd/block_command_table.h" +#include +#include -#define TLM_MGR_USE_BC_NUM (10) //!< 用いるBCの数.基本的に10固定を想定 -#define TLM_MGR_MAX_TLM_NUM_PER_BC (10) //!< 1BCに何個のテレメ生成コマンドを登録できるか.基本的に10固定を想定 +// 以下がともに 10 であることで, 10 x 10 x cycle で 10 秒周期に最大 100 個の tlm を登録できる. +#define TLM_MGR_USE_BC_NUM (10) //!< 用いる BC の数.基本的に 10 固定を想定 +#define TLM_MGR_MAX_CMD_NUM_PER_BC (10) //!< 1 BC に何個のテレメ生成などのコマンドを登録できるか.基本的に 10 固定を想定 - -#if BCT_MAX_CMD_NUM < TLM_MGR_MAX_TLM_NUM_PER_BC // FIXME: BCT側が直ったらなおす +#if BCT_MAX_CMD_NUM < TLM_MGR_MAX_CMD_NUM_PER_BC // FIXME: BCT 側が直ったらなおす #error BCT_MAX_CMD_NUM is not enough for TelemetryManager #endif @@ -29,75 +31,111 @@ typedef enum { TLM_MGR_ERR_CODE_OK, - TLM_MGR_ERR_CODE_MASTER_DUPLICATED, //!< BC 実行の masterとなる BC が重複している - TLM_MGR_ERR_CODE_MASTER_IS_ABSENT, //!< BC 実行の masterとなる BC が存在しない - TLM_MGR_ERR_CODE_REGISTER_INFO_BC_FULL, //!< RegisterInfo にこれ以上 BC を登録できない - TLM_MGR_ERR_CODE_CMD_FULL, //!< これ以上テレメ生成コマンドを登録できない - TLM_MGR_ERR_CODE_OTHER_ERR //!< その他のエラー + TLM_MGR_ERR_CODE_CMD_FULL, //!< これ以上テレメ生成コマンドを登録できない + TLM_MGR_ERR_CODE_CMD_NOT_FOUND, //!< 登録コマンド消去時に,コマンドが見つからない + TLM_MGR_ERR_CODE_INVALID_BC_ROLE, //!< 不正な TLM_MGR_BC_ROLE + TLM_MGR_ERR_CODE_INVALID_CMD_TYPE, //!< 不正な TLM_MGR_CMD_TYPE + TLM_MGR_ERR_CODE_BCT_ERR, //!< BCT 関連のエラー + TLM_MGR_ERR_CODE_OTHER_ERR //!< その他のエラー } TLM_MGR_ERR_CODE; /** - * @enum TLM_MGR_BC_TYPE + * @enum TLM_MGR_BC_ROLE * @note uint8_t を想定 - * @brief BCのタイプ.これにて実行種別が変わる + * @brief BC の役割.これにて実行種別が変わる */ typedef enum { - TLM_MGR_BC_TYPE_MASTER, - TLM_MGR_BC_TYPE_HK_TLM, - TLM_MGR_BC_TYPE_SYSTEM_TLM, - TLM_MGR_BC_TYPE_HIGH_FREQ_TLM, - TLM_MGR_BC_TYPE_LOW_FREQ_TLM, - TLM_MGR_BC_TYPE_RESERVE -} TLM_MGR_BC_TYPE; + TLM_MGR_BC_ROLE_HK_TLM, //!< HK テレメ (or 全系や system で入れておきたい tlm (1 Hz)) + TLM_MGR_BC_ROLE_HIGH_FREQ_TLM, //!< User (HIGH_FREQ) テレメ (1 Hz) + TLM_MGR_BC_ROLE_LOW_FREQ_TLM //!< User (LOW_FREQ) テレメ (1/10 Hz) +} TLM_MGR_BC_ROLE; /** - * @struct TLM_MGR_BcInfo - * @brief BCの情報 + * @enum TLM_MGR_CMD_TYPE + * @note uint8_t を想定 + * @brief BC に登録された(テレメ生成などの)コマンドのタイプ */ -typedef struct +typedef enum { - bct_id_t bc_id; - TLM_MGR_BC_TYPE bc_type; -} TLM_MGR_BcInfo; + TLM_MGR_CMD_TYPE_UNREGISTERED = 0, //!< まだ使われていない (これは 0 であることが必要) + TLM_MGR_CMD_TYPE_TG_GENERATE_RT_TLM, + TLM_MGR_CMD_TYPE_TG_GENERATE_ST_TLM, + TLM_MGR_CMD_TYPE_TG_FORWARD_AS_RT_TLM, + TLM_MGR_CMD_TYPE_TG_FORWARD_AS_ST_TLM, + TLM_MGR_CMD_TYPE_DR_REPLAY_TLM +} TLM_MGR_CMD_TYPE; /** * @struct TLM_MGR_RegisterInfo - * @brief どうBCを管理し,テレメ生成コマンドを登録し,動かしていくかの情報 - * @note TLM_MGR_BcInfo の情報から生成される + * @brief どう BC を管理し,テレメ生成コマンドを登録し,動かしていくかの情報.途中計算などに使う */ typedef struct { - uint8_t bc_info_idx[TLM_MGR_USE_BC_NUM]; //!< bc_info のどの idx の BC を使うか.static確保のため,最大数 TLM_MGR_USE_BC_NUM の配列を確保 - uint8_t bc_info_idx_used_num; //!< 使用している BC 数 - uint8_t tlm_register_pointer_to_idx_of_bc_info_idx; //!< 次にテレメ生成コマンドを登録した場合に使用される bc_info_idx の配列 idx - uint8_t tlm_register_pointer_to_bc_cmd_idx; //!< 次にテレメ生成コマンドを登録した場合に登録するBC pos.cmd + uint8_t cmd_table_idxes[TLM_MGR_USE_BC_NUM]; //!< TLM_MGR_CmdTable.cmd_blocks のどの idx を使うか.static 確保のため,最大数 TLM_MGR_USE_BC_NUM の配列を確保 + uint8_t cmd_table_idxes_size; //!< cmd_table_idxes の配列数 + uint8_t registered_cmd_num; /*!< すでに登録されているテレメ数.この値から一意に次にコマンドを登録する BCT_Pos.cmd が決まる + コマンドは隙間なく前から詰め込まれている,という想定 */ } TLM_MGR_RegisterInfo; +/** + * @struct TLM_MGR_CmdElem + * @brief TLM_MGR_CmdBlock の 1 cmd の情報 + */ +typedef struct +{ + TLM_MGR_CMD_TYPE cmd_type; //!< BC に登録された(テレメ生成などの)コマンドのタイプ (未登録は TLM_MGR_CMD_TYPE_UNREGISTERED (0)) + APID apid; //!< 登録された tlm 生成コマンドの APID (未登録は 0) + TLM_CODE tlm_id; //!< 登録された tlm 生成コマンドの生成 tlm id (未登録は 0) + uint8_t dr_partition; //!< 登録された tlm 生成コマンドの dr_partition (未登録は 0) +} TLM_MGR_CmdElem; + + +/** + * @struct TLM_MGR_CmdBlock + * @brief BC に登録された(テレメ生成などの)コマンドの情報(BC の block ごと) + * @note コマンドは隙間なく前から詰め込まれている,という想定 + */ +typedef struct +{ + TLM_MGR_CmdElem cmds[TLM_MGR_MAX_CMD_NUM_PER_BC]; + bct_id_t bc_id; //!< 使う BC ID + TLM_MGR_BC_ROLE bc_role; //!< その BC の役割 +} TLM_MGR_CmdBlock; + + +/** + * @struct TLM_MGR_CmdTable + * @brief BC に登録された(テレメ生成などの)コマンドの情報 + */ +typedef struct +{ + TLM_MGR_CmdBlock cmd_blocks[TLM_MGR_USE_BC_NUM]; //!< BC の各 Block ごとの情報 +} TLM_MGR_CmdTable; + + /** * @struct TelemetryManager * @brief TelemetryManager の AppInfo構造体 */ typedef struct { - TLM_MGR_BcInfo bc_info[TLM_MGR_USE_BC_NUM]; struct { - TLM_MGR_RegisterInfo master; //!< BC全体を展開していく master BC - TLM_MGR_RegisterInfo hk_tlm; //!< HK テレメ(1 Hz) - TLM_MGR_RegisterInfo system_tlm; /*!< 全系やsystemで入れておきたいtlm(1 Hz) - userのtlm消去.追加の影響を受けない - これによって,tlmの全体管理が容易になる */ - TLM_MGR_RegisterInfo high_freq_tlm; //!< user テレメ(1 Hz) - TLM_MGR_RegisterInfo low_freq_tlm; //!< user テレメ(1/10 Hz) - TLM_MGR_RegisterInfo reserve; //!< 現状使ってないBC.浮くのが嫌なので,メンバは作るがテレメ生成コマンドは登録されない + TLM_MGR_RegisterInfo hk; /*!< TLM_MGR_BC_ROLE_HK_TLM; HK テレメ (or 全系や system で入れておきたい tlm (1 Hz)) + userのtlm消去.追加の影響を受けない + これによって,tlmの全体管理が容易になる */ + TLM_MGR_RegisterInfo high_freq; //!< TLM_MGR_BC_ROLE_HIGH_FREQ_TLM; User テレメ (1 Hz) + TLM_MGR_RegisterInfo low_freq; //!< TLM_MGR_BC_ROLE_LOW_FREQ_TLM; User テレメ (1/10 Hz) } register_info; - bct_id_t master_bc_id; - uint8_t is_inited; //!< 初期化されているか? + TLM_MGR_CmdTable cmd_table; //!< 現在 BC に登録された(テレメ生成などの)コマンド + bct_id_t master_bc_id; //!< TLM_MGR_USE_BC_NUM 個の tlm bc を順次実行していく master BC の ID + bct_id_t deploy_bc_id; //!< master BC を deploy する BC の ID + uint8_t is_inited; //!< 初期化されているか? } TelemetryManager; @@ -108,71 +146,64 @@ AppInfo TLM_MGR_create_app(void); /** * @brief 初期化 + * @note DCU を使っているので,完了に 1 秒ほどかかる */ CCP_CmdRet Cmd_TLM_MGR_INIT(const CommonCmdPacket* packet); /** * @brief master bc の初期化 */ -CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_BC(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC(const CommonCmdPacket* packet); /** - * @brief HKテレメを初期化 + * @brief HK テレメを初期化 + * @note DCU を使っているので,完了に最大 1 秒ほどかかる */ CCP_CmdRet Cmd_TLM_MGR_CLEAR_HK_TLM(const CommonCmdPacket* packet); /** - * @brief systemテレメを初期化 + * @brief HIGH_FREQ テレメを初期化 + * @note DCU を使っているので,完了に最大 1 秒ほどかかる */ -CCP_CmdRet Cmd_TLM_MGR_CLEAR_SYSTEM_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM(const CommonCmdPacket* packet); /** - * @brief high_freq_tlm, low_freq_tlm を初期化 - * @note 便宜上 TLM_MGR_BC_TYPE_RESERVE の BC も初期化してしまう + * @brief LOW_FREQ テレメを初期化 + * @note DCU を使っているので,完了に最大 1 秒ほどかかる */ -CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM(const CommonCmdPacket* packet); /** - * @brief TLM送出開始 - * @note master bc の末尾を Cmd_TLCD_DEPLOY_BLOCK にして deploy block しているだけ + * @brief User テレメ (HIGH_FREQ, LOW_FREQ) を初期化 + * @note DCU を使っているので,完了に最大 1 秒ほどかかる */ -CCP_CmdRet Cmd_TLM_MGR_START_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_CLEAR_USER_TLM(const CommonCmdPacket* packet); /** - * @brief TLM送出一時停止 - * @note master bc の末尾の Cmd_TLCD_DEPLOY_BLOCK を NOP に差し替えているだけ - * @note Cmd_TLCD_CLEAR_ALL_TIMELINE / Cmd_TLM_MGR_CLEAR_TLM_TL だと他のものも消えてしまう - * @note Cmd_TLCD_CLEAR_ALL_TIMELINE / Cmd_TLM_MGR_CLEAR_TLM_TL のほうが適切な場合もあるのでよく考えること + * @brief TLM 送出開始 + * @note master bc の末尾を Cmd_TLCD_DEPLOY_BLOCK にして deploy block しているだけ */ -CCP_CmdRet Cmd_TLM_MGR_STOP_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_START_TLM(const CommonCmdPacket* packet); /** - * @brief TLM送出用TLをクリア + * @brief TLM 送出一時停止 * @note Cmd_TLCD_CLEAR_ALL_TIMELINE しているだけ * @note Cmd_TLCD_CLEAR_ALL_TIMELINE をGSから送ってもいいが, TL No がマジックナンバーになるので. */ -CCP_CmdRet Cmd_TLM_MGR_CLEAR_TLM_TL(const CommonCmdPacket* packet); - -/** - * @brief HKテレメを登録 - */ -CCP_CmdRet Cmd_TLM_MGR_REGISTER_HK_TLM(const CommonCmdPacket* packet); - -/** - * @brief systemテレメを登録 - */ -CCP_CmdRet Cmd_TLM_MGR_REGISTER_SYSTEM_TLM(const CommonCmdPacket* packet); - -/** - * @brief high_freq_tlm を登録 - */ -CCP_CmdRet Cmd_TLM_MGR_REGISTER_HIGH_FREQ_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_STOP_TLM(const CommonCmdPacket* packet); -/** - * @brief low_freq_tlm を登録 - */ -CCP_CmdRet Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM(const CommonCmdPacket* packet); +// 以下,コマンド登録コマンド +CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_REGISTER_REPLAY_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_TLM_MGR_DELETE_REPLAY_TLM(const CommonCmdPacket* packet); // TODO: いきなり設定が変わるのではなく,設定変更 → 反映,にしたい. // CCP_CmdRet Cmd_TLM_MGR_APPLY(const CommonCmdPacket* packet); @@ -182,17 +213,16 @@ CCP_CmdRet Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM(const CommonCmdPacket* packet); /* 1. 初期化:Cmd_TLM_MGR_INIT - BCをいじるため,Appの初期化では現時点でできないので,明示的に初期化する必要あり - - initial SLにいれてもいいかも + - initial SLにいれてもいいかも. DCU を使ってるので, 1 秒ほどかかる 2. 非ユーザーテレメの登録 - - HK, SYSTEM TLMを登録しておく ( Cmd_TLM_MGR_REGISTER_HOGE で ) + - HK TLMを登録しておく ( Cmd_TLM_MGR_REGISTER_HOGE で ) 3. テレメ送出開始 - - 初回は念の為 Cmd_TLM_MGR_CLEAR_TLM_TL をして,既存のTL2を消す - Cmd_TLM_MGR_START_TLM にてテレメ送出開始 - 止めるのは Cmd_TLM_MGR_STOP_TLM -4. Cmd_TLM_MGR_REGISTER_HIGH_FREQ_TLM / Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM にて,1 Hz, 1/10 Hz のユーザーテレメを各人が好きに登録できる -5. 試験が終わったら Cmd_TLM_MGR_CLEAR_USER_TLM をして,ユーザーテレメを消す +4. Cmd_TLM_MGR_REGISTER_HOGE にて,1 Hz, 1/10 Hz のユーザーテレメを各人が好きに登録できる +5. 試験などが終わったら Cmd_TLM_MGR_CLEAR_USER_TLM をして,ユーザーテレメを消す 6. 次に使う人がいたら,4.から繰り返す - +7. Cmd_TLM_MGR_DELETE_HOGE で登録したコマンドを指定して削除可能 */ #endif diff --git a/Applications/timeline_command_dispatcher.c b/Applications/timeline_command_dispatcher.c index 7229cd896..5f982fae6 100644 --- a/Applications/timeline_command_dispatcher.c +++ b/Applications/timeline_command_dispatcher.c @@ -276,10 +276,17 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) (uint32_t)ack, EL_ERROR_LEVEL_LOW, (uint32_t)( ((0x000000ff & id) << 24) | (0x00ffffff & block_no) )); - return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); + if (ack == PL_BC_TIME_ADJUSTED) + { + return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); + } + else + { + return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); + } } - return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); + return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } CCP_CmdRet Cmd_TLCD_CLEAR_ERR_LOG(const CommonCmdPacket* packet) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c47a0c5d..87c312ce4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ option(C2A_USE_SIMPLE_LIBC "use C2A-core hosted simple libc implementat option(C2A_USE_C99_STDINT "use C99 standard stdint.h" ON) option(BUILD_C2A_AS_SILS_FW "build C2A as SILS firmware" ON) +option(BUILD_C2A_AS_C99 "build C2A as C99" OFF) option(BUILD_C2A_AS_CXX "build C2A as C++" OFF) option(BUILD_C2A_AS_UTF8 "build C2A as UTF-8" ON) @@ -55,6 +56,21 @@ if(NOT C2A_USE_C99_STDINT) include_directories(Library/stdint_wrapper) endif() +execute_process( + COMMAND git log -1 --format=%H + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_CORE + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_CORE_SHORT + OUTPUT_STRIP_TRAILING_WHITESPACE +) +add_definitions("-DGIT_REVISION_C2A_CORE=\"${GIT_REVISION_C2A_CORE}\"") +add_definitions("-DGIT_REVISION_C2A_CORE_SHORT=0x${GIT_REVISION_C2A_CORE_SHORT}") + if(BUILD_C2A_AS_CXX) set_source_files_properties(${C2A_SRCS} PROPERTIES LANGUAGE CXX) # C++ endif() diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 000000000..38b25bfc3 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "c2a-core" +version = "3.9.0" +edition = "2021" + +links = "c2a-core" + +description = "Core of Command Centric Architecture" +readme = "README.md" +license = "MIT" + +repository = "https://github.com/ut-issl/c2a-core" +documentation = "https://ut-issl.github.io/c2a-reference/c2a-core" + +[features] +default = ["clang-runtime"] +std = [] +export-src = ["std"] +clang-runtime = ["clang/runtime"] + +[build-dependencies] +semver = "1.0.17" +clang = "2.0.0" diff --git a/Docs/Core/communication.md b/Docs/Core/communication.md index ed3733c0d..6c5db222c 100644 --- a/Docs/Core/communication.md +++ b/Docs/Core/communication.md @@ -91,10 +91,11 @@ https://github.com/ut-issl/c2a-core/blob/e84ac663187adb7b9d51939f2228b9ecfa7ae29 - Destination Flags - テレメトリ配送種別 - 同時に複数配送ができるように, flag で管理 + - ただし,地上局でのパケット保存処理をシンプルにするためなどの理由で,配送の過程でそれぞれのフラグごとにバケットをバラす.つまり,オンボードサブネットワークから地上に送信されるパケットでは, 1 つの flag のみ立っている状態を基本とする. - 今後拡張予定あり - 現時点では以下 - - `0b00000001`: Housekeeping Telemetry - - `0b00000010`: Mission Telemetry + - `0b00000001`: High Priority Realtime Telemetry (現在の C2A Core では使われてない (Realtime Telemetry として処理されている)) + - `0b00000010`: Realtime Telemetry - `0b00000100`: Stored Telemetry - `0b00001000`: Replay Telemetry - `0b00010000`: 将来拡張用の確保領域 @@ -123,12 +124,12 @@ https://github.com/ut-issl/c2a-core/blob/b84c3d051a1e15ab62c8f1a9744957daa4a62a3 - コマンドID - APID 内でユニークであればいい - Destination Type - - `0x0` 以外はユーザー定義 + - `0x0`, `0xe`, `0xf` 以外はユーザー定義 - 例えば次のように定義する - - `0x0`: 自分宛 - - `0x1`: MOBC 宛 - - `0x2`: AOBC 宛 - - `0x3`: 不明 + - `0x0`: 自分宛 (`CCP_DEST_TYPE_TO_ME`) + - `0x1` - `0xd` : `CCP_DEST_TYPE_TO_ME`, `CCP_DEST_TYPE_TO_APID` では表現できない宛先 + - `0xe`: 不明 (`CCP_DEST_TYPE_TO_UNKOWN`) + - `0xf`: APID で示す宛先宛 (`CCP_DEST_TYPE_TO_APID`) - ここで言う,宛先はコマンド実行場所ではなく,キューイングされる先のことである(詳細は後述) - Execution Type - 現時点では以下(将来拡張予定あり) @@ -150,7 +151,7 @@ https://github.com/ut-issl/c2a-core/blob/b84c3d051a1e15ab62c8f1a9744957daa4a62a3 - 一方で, BC や TLC などでのキューイングは, Destination Type によって決定される - https://github.com/ut-issl/c2a-core/blob/6d71249dcdb3aefa1d67ffe8ce946e8d8d8b2a33/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h#L20-L27 - 具体例(GS と接続される OBC は MOBC とし,AOBC は MOBC にぶら下がってるものとする) - - APID: MOBC, Destination Type: TO_ME or MOBC + - APID: MOBC, Destination Type: TO_ME or TO_APID or MOBC - GSC: GS から MOBC に届き, MOBC で GSC としてエンキューされる.デキューした後, MOBC 内で GSC として実行される. - TLC: GS から MOBC に届き, MOBC で TLC としてエンキューされる.デキューした後, MOBC 内で RTC として実行される. - BC: GS から MOBC に届き, MOBC で BC 登録される.BC 展開した後, TL にエンキューされ,デキューした後, MOBC 内で RTC として実行される. @@ -158,7 +159,7 @@ https://github.com/ut-issl/c2a-core/blob/b84c3d051a1e15ab62c8f1a9744957daa4a62a3 - GSC: GS から MOBC に届き, MOBC で GSC としてエンキューされる.デキューした後, APID を元に, AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で RTC としてキューイング & 実行される. - TLC: GS から MOBC に届き, MOBC で TLC としてエンキューされる.デキューした後, APID を元に, AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で RTC としてキューイング & 実行される. - BC: GS から MOBC に届き, MOBC で BC 登録される.BC 展開した後, TL にエンキューされ,デキューした後, APID を元に, AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で RTC としてキューイング & 実行される. - - APID: AOBC, Destination Type: AOBC + - APID: AOBC, Destination Type: TO_APID or AOBC - GSC: GS から MOBC に届き, MOBC でエンキューされずに,そのまま AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で GSC としてキューイング & 実行される. - TLC: GS から MOBC に届き, MOBC でエンキューされずに,そのまま AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で TLC としてキューイング & 実行される. - BC: GS から MOBC に届き, MOBC で BC 登録されずに,そのまま AOBC へ配送される.配送時, Destination Type は自分宛 (TO_ME) に上書きされ, AOBC で BC として登録 & 実行される. diff --git a/Docs/General/coding_acronyms.md b/Docs/General/coding_acronyms.md new file mode 100644 index 000000000..e47614486 --- /dev/null +++ b/Docs/General/coding_acronyms.md @@ -0,0 +1,31 @@ +# Coding Acronyms + +## 概要 +コーディングでの略語は基本的には禁止する. +略語が一般的であり,略語を用いるメリットが大きいときは,宣言時にコメントを必ずいれることとする. + +ここでは,特に断りなく使っても良い略語をホワイトリスト方式で管理する. + +なお,使っても良い略語は,コンテキストに依存するため,コンテキストごとにリスト化する. + +## 全般 +| 略語 | 意味 | 備考 | +| -- | -- | -- | +| 名前空間となるもの | | | +| コンポーネント名 | | MOBC や XTX など | +| tlm | telemetry | | +| cmd | command | | +| min | minimum | | +| max | maximum | | +| num | number | | +| ok | all correct | | +| err | error | | +| ack | acknowledge | 受信確認などの意 | +| id | identifier | | +| idx | index | | + + +## C2A Core + + +## AOCS diff --git a/Docs/General/coding_rule.md b/Docs/General/coding_rule.md index fd7eb6301..3b3d83cb6 100644 --- a/Docs/General/coding_rule.md +++ b/Docs/General/coding_rule.md @@ -539,17 +539,9 @@ C++ システムヘッダ ### 略語 基本的には略語を禁止する. 変数名が長くなっても良いことにする. +略語が一般的であり,略語を用いるメリットが大きいときは,宣言時にコメントを必ずいれること. -使っていい略語はホワイトリストで管理し,現状以下とする.(適宜追加) -``` -tlm, cmd -min, max -num, id, idx -ok, err -コンポ名(mobcやxtxなど) -名前空間になるもの -``` - +使っていい略語はホワイトリストで管理し, [Coding Acronyms](./coding_acronyms.md) で管理する. ## 安全のために [M] diff --git a/Docs/General/release.md b/Docs/General/release.md index e79a05942..829a01b6e 100644 --- a/Docs/General/release.md +++ b/Docs/General/release.md @@ -17,7 +17,9 @@ ### 本 Release -1. [c2a_core_main.h](https://github.com/ut-issl/c2a-core/blob/develop/c2a_core_main.h) 内の `C2A_CORE_VER_*` をインクリメントする PR (Pull Request) を発行し, `develop` ブランチへマージする. +1. バージョン番号をインクリメントする PR (Pull Request) を発行し,`develop` ブランチへマージする. + - [c2a_core_main.h](https://github.com/ut-issl/c2a-core/blob/develop/c2a_core_main.h) 内の `C2A_CORE_VER_*` をインクリメントする. + - [Cargo.toml](https://github.com/ut-issl/c2a-core/blob/develop/Cargo.toml) 内の `package.version` をインクリメントする. - この後リリースを控えるので,念の為すべてのテストを再度回す. - `#define C2A_CORE_VER_PRE` は `("")` とする. - PR 名は `Update version (v3.4.0)` のようにする. @@ -34,7 +36,7 @@ - release には以下を含める. - Release Note として簡潔な更新差分の箇条書き - `main` にマージしたときの PR のリンク - +1. `cargo publish` する. これを,だいたい以下のような粒度で行う. @@ -49,6 +51,7 @@ - 対応する Tools の PR のリンクを貼る. - `#define C2A_CORE_VER_PRE` に `("beta.0")` などをセットする. - 本 Release 後最初の Pre-release の場合, `C2A_CORE_VER_*` をインクリメントする. + - [Cargo.toml](https://github.com/ut-issl/c2a-core/blob/develop/Cargo.toml) 内の `package.version` を同様にインクリメントする. - PR 名は以下のようにする. - `Pre Release (v3.5.0-beta.0): 通常のPRのタイトル` - 例: https://github.com/ut-issl/c2a-core/pulls?q=is%3Apr+Pre+Release @@ -58,7 +61,9 @@ - release には以下を含める. - 非互換となった Tools の新しい バージョン (Release) へのリンク - `develop` にマージしたときの PR のリンク -1. Bug fix や 大きな機能更新などで,本 Release 前に User サイドで最新の Core が必要になった際にも, Pre-release を行うことができる. +1. `cargo publish` する. + +なお,Bug fix や 大きな機能更新などで,本 Release 前に User サイドで最新の Core が必要になった際にも, Pre-release を行うことができる. ## バージョニング diff --git a/Docs/README.md b/Docs/README.md index c48b96758..ee7aef43c 100644 --- a/Docs/README.md +++ b/Docs/README.md @@ -30,6 +30,7 @@ C2A に関する説明の棲み分けは,次のようになっています. 1. [Overview](./General/overview.md) 1. [Release](./General/release.md) 1. [Coding Rule](./General/coding_rule.md) + 1. [Coding Acronyms](./General/coding_acronyms.md) 1. Application Layer 1. [Overview](./Application/overview.md) 1. How to add a application diff --git a/Drivers/Protocol/common_tlm_cmd_packet_for_driver_super.c b/Drivers/Protocol/common_tlm_cmd_packet_for_driver_super.c index 7fdbeba53..9f5049e44 100644 --- a/Drivers/Protocol/common_tlm_cmd_packet_for_driver_super.c +++ b/Drivers/Protocol/common_tlm_cmd_packet_for_driver_super.c @@ -36,6 +36,15 @@ DS_ERR_CODE CTP_get_ctp_from_dssc(const DS_StreamConfig* p_stream_config, Common memcpy(&received_packet->packet, EB90_FRAME_get_packet_head_from_dssc(p_stream_config), (size_t)packet_len); if (CTP_get_packet_len(received_packet) != packet_len) return DS_ERR_CODE_ERR; if (!CTP_is_valid_packet(received_packet)) return DS_ERR_CODE_ERR; + + // On-Board Subnetwork Time を設定 + if (CTP_get_on_board_subnet_time(received_packet) == 0xffffffff) + { + // FIXME: TG_forward_tlm_ ではなくてここでいいか検討 + // 可能な限り正確な時間をいれるには,受信直後のここでいれるべき(←→網羅性) + // MOBC - 2nd OBC - 3rd OBC というとき, 2nd OBC でも 0xffffffff ができるようにしている + CTP_set_on_board_subnet_time(received_packet); + } return DS_ERR_CODE_OK; } diff --git a/Examples/2nd_obc_user/CMakeLists.txt b/Examples/2nd_obc_user/CMakeLists.txt index 4db3a125d..6afeebbb5 100644 --- a/Examples/2nd_obc_user/CMakeLists.txt +++ b/Examples/2nd_obc_user/CMakeLists.txt @@ -39,6 +39,21 @@ if(SHOW_DEBUG_PRINT_ON_SILS) message("Show debug print") endif() +execute_process( + COMMAND git log -1 --format=%H + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_USER + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_USER_SHORT + OUTPUT_STRIP_TRAILING_WHITESPACE +) +add_definitions("-DGIT_REVISION_C2A_USER=\"${GIT_REVISION_C2A_USER}\"") +add_definitions("-DGIT_REVISION_C2A_USER_SHORT=0x${GIT_REVISION_C2A_USER_SHORT}") + add_subdirectory(${C2A_CORE_DIR}) add_subdirectory(${C2A_USER_DIR}/Applications) @@ -89,16 +104,4 @@ else() ) endif() -if(WIN32) - add_custom_command(TARGET ${PROJECT_NAME} - PRE_BUILD - COMMAND git_revision.bat - WORKING_DIRECTORY ${C2A_USER_DIR}/Script) -else() - add_custom_command(TARGET ${PROJECT_NAME} - PRE_BUILD - COMMAND ./git_revision.sh - WORKING_DIRECTORY ${C2A_USER_DIR}/Script) -endif() - include(${C2A_USER_DIR}/common.cmake) diff --git a/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.c b/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.c index a1cb17a16..a1237b615 100644 --- a/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.c +++ b/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.c @@ -12,8 +12,8 @@ static void DI_MOBC_init_(void); static void DI_MOBC_update_(void); -static void DI_MOBC_ms_tlm_packet_handler_init_(void); -static void DI_MOBC_ms_tlm_packet_handler_(void); +static void DI_MOBC_rt_tlm_packet_handler_init_(void); +static void DI_MOBC_rt_tlm_packet_handler_(void); static MOBC_Driver mobc_driver_; const MOBC_Driver* const mobc_driver = &mobc_driver_; @@ -22,7 +22,7 @@ const MOBC_Driver* const mobc_driver = &mobc_driver_; static DS_StreamRecBuffer DI_MOBC_rx_buffer_; static uint8_t DI_MOBC_rx_buffer_allocation_[DS_STREAM_REC_BUFFER_SIZE_DEFAULT]; -static const uint8_t DI_MOBC_kMsTlmPhMaxNumOfProc_ = 4; //!< 一度に送出する最大テレメ数 +static const uint8_t DI_MOBC_kRtTlmPhMaxNumOfProc_ = 4; //!< 一度に送出する最大テレメ数 AppInfo DI_MOBC_update(void) @@ -60,19 +60,19 @@ static void DI_MOBC_update_(void) } -AppInfo DI_MOBC_ms_tlm_packet_handler(void) +AppInfo DI_MOBC_rt_tlm_packet_handler(void) { - return AI_create_app_info("MOBC_ms_tlm_ph", - DI_MOBC_ms_tlm_packet_handler_init_, - DI_MOBC_ms_tlm_packet_handler_); + return AI_create_app_info("MOBC_rt_tlm_ph", + DI_MOBC_rt_tlm_packet_handler_init_, + DI_MOBC_rt_tlm_packet_handler_); } -static void DI_MOBC_ms_tlm_packet_handler_init_(void) +static void DI_MOBC_rt_tlm_packet_handler_init_(void) { // なにもしない } -static void DI_MOBC_ms_tlm_packet_handler_(void) +static void DI_MOBC_rt_tlm_packet_handler_(void) { uint8_t i; CommonTlmPacket packet; // FIXME: これは static にする? @@ -80,28 +80,28 @@ static void DI_MOBC_ms_tlm_packet_handler_(void) // 一方でメモリ使用量は増える. mobc_driver_.info.c2a.send_tlm_err_code = DS_CMD_OK; - for (i = 0; i < DI_MOBC_kMsTlmPhMaxNumOfProc_; i++) + for (i = 0; i < DI_MOBC_kRtTlmPhMaxNumOfProc_; i++) { DS_CMD_ERR_CODE ret; // TODO: ここは一部 MW に入れるべきなのかなぁ...? // 最近 C2A の MW の扱いが難しい.いっそなくすか? - // TODO: PH_ms_tlm_list を DI から隠蔽する?それか何かしらの共用構造体でのインスタンスの一部にするか? - // そうすると, ms_tlm の他の tlm ができたときに共通化が容易 + // TODO: PH_rt_tlm_list を DI から隠蔽する?それか何かしらの共用構造体でのインスタンスの一部にするか? + // そうすると, rt_tlm の他の tlm ができたときに共通化が容易 - if (PL_is_empty(&PH_ms_tlm_list)) + if (PL_is_empty(&PH_rt_tlm_list)) { // キューが空なら終了 return; } // 送信するパケットを取得 - packet = *(const CommonTlmPacket*)PL_get_head(&PH_ms_tlm_list)->packet; + packet = *(const CommonTlmPacket*)PL_get_head(&PH_rt_tlm_list)->packet; // 送信したパケットを消去 // 以後エラーが出ても,そのパケットは再送しないので,取り出したここで消してしまう. - PL_drop_executed(&PH_ms_tlm_list); + PL_drop_executed(&PH_rt_tlm_list); // FIXME: 現状,WINGS の問題から DUMP TLMは考えない. // APID_AOBC_TLM 以外を弾いている. diff --git a/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.h b/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.h index 778a10a9e..c85854add 100644 --- a/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.h +++ b/Examples/2nd_obc_user/src/src_user/Applications/DriverInstances/di_mobc.h @@ -19,11 +19,11 @@ extern const MOBC_Driver* const mobc_driver; //!< MOBC driver AppInfo DI_MOBC_update(void); /** - * @brief MOBC MS TLM (mission telemetry) PH (packet handler) アプリ生成関数 + * @brief MOBC RT_TLM (Realtime Telemetry) PH (packet handler) アプリ生成関数 * @param void * @return AppInfo - * @note ひとまずテレメは MST のみ実装する + * @note ひとまずテレメは RT_TLM のみ実装する */ -AppInfo DI_MOBC_ms_tlm_packet_handler(void); +AppInfo DI_MOBC_rt_tlm_packet_handler(void); #endif diff --git a/Examples/2nd_obc_user/src/src_user/Applications/UserDefined/debug_apps.c b/Examples/2nd_obc_user/src/src_user/Applications/UserDefined/debug_apps.c index 4a8a61f21..9692e4f77 100644 --- a/Examples/2nd_obc_user/src/src_user/Applications/UserDefined/debug_apps.c +++ b/Examples/2nd_obc_user/src/src_user/Applications/UserDefined/debug_apps.c @@ -4,6 +4,7 @@ #include // for NULL #include +#include #include #include #include @@ -19,7 +20,6 @@ #include #include "../../Applications/DriverInstances/di_mobc.h" // #include -#include "../../Library/git_revision.h" #include "../../Library/vt100.h" void APP_DBG_flush_screen_(void); diff --git a/Examples/2nd_obc_user/src/src_user/Applications/app_registry.c b/Examples/2nd_obc_user/src/src_user/Applications/app_registry.c index 07605f7bf..b8de5eaba 100644 --- a/Examples/2nd_obc_user/src/src_user/Applications/app_registry.c +++ b/Examples/2nd_obc_user/src/src_user/Applications/app_registry.c @@ -12,7 +12,7 @@ void AR_load_initial_settings(void) { add_application_(AR_NOP, NOP_create_app); add_application_(AR_DI_MOBC_CMD_PH, DI_MOBC_update); - add_application_(AR_DI_MOBC_MST_PH, DI_MOBC_ms_tlm_packet_handler); + add_application_(AR_DI_MOBC_RT_TLM_PH, DI_MOBC_rt_tlm_packet_handler); add_application_(AR_GSC_DISPATCHER, GSCD_create_app); add_application_(AR_RTC_DISPATCHER, RTCD_create_app); add_application_(AR_TLC_DISPATCHER_GS, TLCD_gs_create_app); diff --git a/Examples/2nd_obc_user/src/src_user/Applications/app_registry.h b/Examples/2nd_obc_user/src/src_user/Applications/app_registry.h index 09dc6aa4a..c9975612e 100644 --- a/Examples/2nd_obc_user/src/src_user/Applications/app_registry.h +++ b/Examples/2nd_obc_user/src/src_user/Applications/app_registry.h @@ -7,7 +7,7 @@ typedef enum { AR_NOP, AR_DI_MOBC_CMD_PH, - AR_DI_MOBC_MST_PH, + AR_DI_MOBC_RT_TLM_PH, AR_GSC_DISPATCHER, AR_RTC_DISPATCHER, AR_TLC_DISPATCHER_GS, diff --git a/Examples/2nd_obc_user/src/src_user/Drivers/Etc/mobc.c b/Examples/2nd_obc_user/src/src_user/Drivers/Etc/mobc.c index 7fb236972..d1370e022 100644 --- a/Examples/2nd_obc_user/src/src_user/Drivers/Etc/mobc.c +++ b/Examples/2nd_obc_user/src/src_user/Drivers/Etc/mobc.c @@ -113,7 +113,7 @@ static DS_ERR_CODE MOBC_analyze_rec_data_(DS_StreamConfig* p_stream_config, void // CCP_EXEC_TYPE_MC <- GS から MOBC のキューに入らず直接転送されたもの // CCP_EXEC_TYPE_RT <- これが GS → MOBC との違いで, MOBC の TLC/BC キューに溜まって実行されたもの // CCP_DEST_TYPE: - // CCP_DEST_TYPE_TO_ME (CCP_DEST_TYPE_TO_AOBC の可能性はなくはないが, ME に上書きされているはず) + // CCP_DEST_TYPE_TO_ME (CCP_DEST_TYPE_TO_APID, CCP_DEST_TYPE_TO_AOBC の可能性はなくはないが, ME に上書きされているはず) // FIXME: ここで返り値が NG だった場合,なにを return するかは議論の余地あり // 通信的には OK なので, OK を返すのでいいという認識 diff --git a/Examples/2nd_obc_user/src/src_user/IfWrapper/CMakeLists.txt b/Examples/2nd_obc_user/src/src_user/IfWrapper/CMakeLists.txt index ae8bb4c18..ecd8d79a6 100644 --- a/Examples/2nd_obc_user/src/src_user/IfWrapper/CMakeLists.txt +++ b/Examples/2nd_obc_user/src/src_user/IfWrapper/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.13) project(C2A_USER_IF_WRAPPER) -set(C2A_SRCS +set(C2A_COMMON_SRCS if_list.c ) @@ -11,29 +11,39 @@ if(USE_SILS_MOCKUP) message("USE SILS_MOCKUP") #target_sources(${PROJECT_NAME} PRIVATE - list(APPEND C2A_SRCS + set(C2A_IF_IMPL_SRCS SilsMockup/i2c_sils.c SilsMockup/uart_sils.c SilsMockup/wdt_sils.c ) else() #target_sources(${PROJECT_NAME} PUBLIC - list(APPEND C2A_SRCS + set(C2A_IF_IMPL_COMMON_SRCS Sils/i2c_sils.cpp Sils/uart_sils.cpp Sils/wdt_sils.cpp ) -endif() -if(USE_SCI_COM_WINGS AND NOT USE_SILS_MOCKUP) - add_definitions(-DUSE_SCI_COM_WINGS) - #target_sources(${PROJECT_NAME} PUBLIC - list(APPEND C2A_SRCS - Sils/uart_sils_sci_if.cpp + if(USE_SCI_COM_WINGS) # TODO: これ USE_SCI_COM_UART では? + add_definitions(-DUSE_SCI_COM_WINGS) + #target_sources(${PROJECT_NAME} PUBLIC + set(C2A_IF_COM_UART_SRCS + Sils/uart_sils_sci_if.cpp + ) + message("USE SCI_COM_UART") + endif() + + set(C2A_IF_IMPL_SRCS + ${C2A_IF_IMPL_COMMON_SRCS} + ${C2A_IF_COM_UART_SRCS} ) - message("USE SCI_COM_UART") endif() +set(C2A_SRCS + ${C2A_COMMON_SRCS} + ${C2A_IF_IMPL_SRCS} +) + if(BUILD_C2A_AS_CXX) set_source_files_properties(${C2A_SRCS} PROPERTIES LANGUAGE CXX) # C++ endif() diff --git a/Examples/2nd_obc_user/src/src_user/Library/CMakeLists.txt b/Examples/2nd_obc_user/src/src_user/Library/CMakeLists.txt index 82e7c6f03..7b98581d7 100644 --- a/Examples/2nd_obc_user/src/src_user/Library/CMakeLists.txt +++ b/Examples/2nd_obc_user/src/src_user/Library/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.13) project(C2A_USER_LIB) set(C2A_SRCS - git_revision.c print.c vt100.c ) diff --git a/Examples/2nd_obc_user/src/src_user/Library/git_revision.c b/Examples/2nd_obc_user/src/src_user/Library/git_revision.c deleted file mode 100644 index 6ef1c0e56..000000000 --- a/Examples/2nd_obc_user/src/src_user/Library/git_revision.c +++ /dev/null @@ -1,14 +0,0 @@ -#pragma section REPRO -/** - * @file - * @brief git revisionをコードに埋め込む - */ - -#include "git_revision.h" - -const char GIT_REV_CORE[41] = "0000000000000000000000000000000000000000"; -const uint32_t GIT_REV_CORE_SHORT = 0x0000000; -const char GIT_REV_USER[41] = "0000000000000000000000000000000000000000"; -const uint32_t GIT_REV_USER_SHORT = 0x0000000; - -#pragma section diff --git a/Examples/2nd_obc_user/src/src_user/Library/git_revision.h b/Examples/2nd_obc_user/src/src_user/Library/git_revision.h deleted file mode 100644 index 9da4eabed..000000000 --- a/Examples/2nd_obc_user/src/src_user/Library/git_revision.h +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @file - * @brief git revisionをコードに埋め込む - */ -#ifndef GIT_REVISION_H_ -#define GIT_REVISION_H_ - -#include - -extern const char GIT_REV_CORE[41]; -extern const uint32_t GIT_REV_CORE_SHORT; -extern const char GIT_REV_USER[41]; -extern const uint32_t GIT_REV_USER_SHORT; - -#endif // GIT_REVISION_H_ diff --git a/Examples/2nd_obc_user/src/src_user/Script/Git/revision.bat b/Examples/2nd_obc_user/src/src_user/Script/Git/revision.bat new file mode 100644 index 000000000..507ccd499 --- /dev/null +++ b/Examples/2nd_obc_user/src/src_user/Script/Git/revision.bat @@ -0,0 +1,32 @@ +@ECHO OFF +REM generate C header for Git revision + +REM current directoryɈړ(src_user/Script/Git) +cd /d %~dp0 + +REM src_userɈړ +cd ..\.. + +for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_user=%%a +for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_user_short=%%a + +REM cd ..\..\src_core + +REM generate header +REM MEMO: ̃qAhLgǂ̏winecmd.exe(Windows 6.1.7601)ƓȂH +( +echo.#ifndef GIT_REVISION_CONFIG_H_ +echo.#define GIT_REVISION_CONFIG_H_ +echo. +echo./* This file is generated by src_user/Script/Git/revision.bat */ +echo.#define C2A_GIT_REVISION_GENERATED +echo. +call ..\src_core\Script\Git\revision.bat +echo.#define GIT_REVISION_C2A_USER "%git_rev_user%" +echo.#define GIT_REVISION_C2A_USER_SHORT 0x%git_rev_user_short% +echo. +echo.#endif // GIT_REVISION_CONFIG_H_ +) > Settings\git_revision_config.h + +REM current directoryɈړ(src_user/Script/Git) +cd /d %~dp0 diff --git a/Examples/2nd_obc_user/src/src_user/Script/Git/revision.sh b/Examples/2nd_obc_user/src/src_user/Script/Git/revision.sh new file mode 100644 index 000000000..2b1d63ae8 --- /dev/null +++ b/Examples/2nd_obc_user/src/src_user/Script/Git/revision.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# generate C header for Git revision + +cd $(dirname $0) # src/src_user/Script/Git +cd ../../ # src/src_user + +# get core revision +git_revs_core=$(../src_core/Script/Git/revision.sh) + +git_rev_user=$(git log --pretty=format:%H -1) +git_rev_user_short=$(git log --pretty=format:%h -1) + +tee Settings/git_revision_config.h << EOS +#ifndef GIT_REVISION_CONFIG_H_ +#define GIT_REVISION_CONFIG_H_ + +/* This file is generated by src_user/Script/Git/revision.sh */ +#define C2A_GIT_REVISION_GENERATED + +${git_revs_core} +#define GIT_REVISION_C2A_USER "${git_rev_user}" +#define GIT_REVISION_C2A_USER_SHORT 0x${git_rev_user_short} + +#endif // GIT_REVISION_CONFIG_H_ +EOS diff --git a/Examples/2nd_obc_user/src/src_user/Script/git_revision.bat b/Examples/2nd_obc_user/src/src_user/Script/git_revision.bat deleted file mode 100644 index 99aab22ee..000000000 --- a/Examples/2nd_obc_user/src/src_user/Script/git_revision.bat +++ /dev/null @@ -1,29 +0,0 @@ -@ECHO OFF - -REM @brief git revision ߍ - -REM current directoryɈړ -cd /d %~dp0 - -for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_user=%%a -for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_user_short=%%a - -cd ..\..\src_core - -for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_core=%%a -for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_core_short=%%a - -cd ..\src_user\Script - -if exist ..\Library\git_revision.c del ..\Library\git_revision.c - -setlocal EnableDelayedExpansion -for /f "delims=" %%a in (git_revision.tmp) do ( - set line=%%a - set line=!line:git_rev_core_hash=%git_rev_core%! - set line=!line:git_rev_core_short_hash=%git_rev_core_short%! - set line=!line:git_rev_user_hash=%git_rev_user%! - set line=!line:git_rev_user_short_hash=%git_rev_user_short%! - echo !line! >> ..\Library\git_revision.c -) -endlocal diff --git a/Examples/2nd_obc_user/src/src_user/Script/git_revision.sh b/Examples/2nd_obc_user/src/src_user/Script/git_revision.sh deleted file mode 100755 index 756a5f338..000000000 --- a/Examples/2nd_obc_user/src/src_user/Script/git_revision.sh +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh - -# @brief git revision 埋め込み - -# current directoryに移動 -cd `dirname $0` - -git_rev_user=$(git log --pretty=format:%H -1) -git_rev_user_short=$(git log --pretty=format:%h -1) - -cd ../../src_core - -git_rev_core=$(git log --pretty=format:%H -1) -git_rev_core_short=$(git log --pretty=format:%h -1) - -cd ../src_user/Script - -sed -e s/git_rev_core_hash/${git_rev_core}/ -e s/git_rev_core_short_hash/${git_rev_core_short}/ -e s/git_rev_core_short_hash/${git_rev_core_short}/ -e s/git_rev_user_hash/${git_rev_user}/ -e s/git_rev_user_short_hash/${git_rev_user_short}/ git_revision.tmp > ../Library/git_revision.c diff --git a/Examples/2nd_obc_user/src/src_user/Script/git_revision.tmp b/Examples/2nd_obc_user/src/src_user/Script/git_revision.tmp deleted file mode 100644 index a5a66bbe5..000000000 --- a/Examples/2nd_obc_user/src/src_user/Script/git_revision.tmp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma section REPRO -/** - * @file - * @brief git revisionをコードに埋め込む - */ - -#include "git_revision.h" - -const char GIT_REV_CORE[41] = "git_rev_core_hash"; -const uint32_t GIT_REV_CORE_SHORT = 0xgit_rev_core_short_hash; -const char GIT_REV_USER[41] = "git_rev_user_hash"; -const uint32_t GIT_REV_USER_SHORT = 0xgit_rev_user_short_hash; - -#pragma section diff --git a/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c b/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c index 0d956f17f..62b215ba2 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c +++ b/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c @@ -12,7 +12,7 @@ void BCL_load_tl_elem_tlm_cmd_hirate(void) BCL_tool_register_app (0, AR_RTC_DISPATCHER); BCL_tool_register_app (1, AR_TLC_DISPATCHER_BC); BCL_tool_register_app (2, AR_TLC_DISPATCHER_TLM); - BCL_tool_register_app (3, AR_DI_MOBC_MST_PH); + BCL_tool_register_app (3, AR_DI_MOBC_RT_TLM_PH); #ifdef TLCD_ENABLE_MISSION_TL BCL_tool_register_app (5, AR_TLC_DISPATCHER_MIS); #endif diff --git a/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/tl_initial.c b/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/tl_initial.c index deb50c7da..ba7038fef 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/tl_initial.c +++ b/Examples/2nd_obc_user/src/src_user/Settings/Modes/TaskLists/tl_initial.c @@ -8,9 +8,9 @@ void BCL_load_tl_initial(void) { - BCL_tool_register_rotate ( 0, BC_AR_GS_RELATED_PROCESS); - BCL_tool_register_app ( 4, AR_TLC_DISPATCHER_GS); - BCL_tool_register_combine( 6, BC_AC_TLM_CMD_HIRATE); + BCL_tool_register_combine( 0, BC_AR_GS_RELATED_PROCESS); + BCL_tool_register_app ( 8, AR_TLC_DISPATCHER_GS); + BCL_tool_register_combine(10, BC_AC_TLM_CMD_HIRATE); BCL_tool_register_app (40, AR_EVENT_UTILITY); BCL_tool_register_rotate (95, BC_AR_DEBUG_DISPLAY_INI); } diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c index 06db3e0fe..57afc6e33 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c @@ -27,18 +27,4 @@ APID APID_get_apid_from_uint16(uint16_t apid) } } -int APID_is_other_obc_tlm_apid(APID apid) -{ - switch (apid) - { - // FIXME: 2nd obc の場合は変更しなければいけないが, https://github.com/ut-issl/c2a-core/issues/489 で消えるので一旦このまま - case APID_AOBC_TLM: // FALLTHROUGH - case APID_TOBC_TLM: - return 1; - - default: - return 0; - } -} - #pragma section diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h index f715fe5e3..c2a6d24b0 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h @@ -36,13 +36,4 @@ typedef enum */ APID APID_get_apid_from_uint16(uint16_t apid); -/** - * @brief 入力した APID が他の OBC で生成された TLM の APID かどうか - * @param apid: APID - * @note 不正な APID は 0 を返す - * @retval 1: 他 OBC で生成された TLM の APID - * @retval 0: それ以外の APID - */ -int APID_is_other_obc_tlm_apid(APID apid); - #endif diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops index 2b077fd96..b74ffdc8f 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops @@ -6,37 +6,37 @@ .# ======================================= # NOP # ======================================= -.MOBC_RT.Cmd_NOP -.AOBC_RT.Cmd_NOP +.MOBC_RT.NOP +.AOBC_RT.NOP .# .# ======================================= # HK の生成 # AOBC > MOBC に AOBC HK が定期送信されている前提 # ======================================= -.MOBC_RT.Cmd_BCT_CLEAR_BLOCK 77 # BCT 77 を使用 +.MOBC_RT.BCT_CLEAR_BLOCK 77 # BCT 77 を使用 wait_sec 1 - MOBC_BL.Cmd_GENERATE_TLM 1 0x40 0xf0 1 # HK + MOBC_BL.TG_GENERATE_RT_TLM 1 0xf0 # HK wait_sec 1 - MOBC_BL.Cmd_GENERATE_TLM 3 0x40 0x91 1 # AOBC HK + MOBC_BL.TG_FORWARD_AS_RT_TLM 3 0x511 0x91 # AOBC HK wait_sec 1 - MOBC_BL.Cmd_TLCD_DEPLOY_BLOCK 10 2 77 + MOBC_BL.TLCD_DEPLOY_BLOCK 10 2 77 wait_sec 1 - MOBC_RT.Cmd_BCE_ACTIVATE_BLOCK + MOBC_RT.BCE_ACTIVATE_BLOCK wait_sec 1 - MOBC_RT.Cmd_TLCD_CLEAR_ALL_TIMELINE 2 + MOBC_RT.TLCD_CLEAR_ALL_TIMELINE 2 wait_sec 1 # BCを展開し,TLM出力開始 - MOBC_RT.Cmd_TLCD_DEPLOY_BLOCK 2 77 + MOBC_RT.TLCD_DEPLOY_BLOCK 2 77 .# .# ======================================= # AOBC Tlm # ======================================= -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC → CNT ERR が出るはず -.AOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC +.MOBC_RT.TG_FORWARD_AS_RT_TLM 0x511 0x90 # AOBC AOBC → CNT ERR が出るはず +.AOBC_RT.TG_GENERATE_RT_TLM 0x90 # AOBC AOBC +.MOBC_RT.TG_FORWARD_AS_RT_TLM 0x511 0x90 # AOBC AOBC .# .# AOBCリセット -.MOBC_RT.Cmd_AM_INITIALIZE_APP 4 # AR_DI_AOBC -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC → CNT ERR が出るはず -.AOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x90 1 # AOBC AOBC +.MOBC_RT.AM_INITIALIZE_APP 4 # AR_DI_AOBC +.MOBC_RT.TG_FORWARD_AS_RT_TLM 0x511 0x90 # AOBC AOBC → CNT ERR が出るはず +.AOBC_RT.TG_GENERATE_RT_TLM 0x90 # AOBC AOBC +.MOBC_RT.TG_FORWARD_AS_RT_TLM 0x511 0x90 # AOBC AOBC diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv index d7e22b179..4b41ea011 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_AOBC_CMD_DB_CMD_DB.csv @@ -1,126 +1,135 @@ Component,Name,Target,Code,Params,,,,,,,,,,,,,Danger Flag,Is Restricted,Description,Note AOBC,,,,Num Params,Param1,,Param2,,Param3,,Param4,,Param5,,Param6,,,,, Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,,,, -*,Cmd_EXAMPLE,OBC,,2,uint32_t,address,int32_t,time [ms],,,,,,,,,,,例,引数の説明と単位を書くこと!(例:time [ms]) +*,EXAMPLE,OBC,,2,uint32_t,address,int32_t,time [ms],,,,,,,,,,,例,引数の説明と単位を書くこと!(例:time [ms]) * C2A_CORE,基幹機能コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_NOP,OBC,0x0000,0,,,,,,,,,,,,,,,ダミーコマンド, -,Cmd_TMGR_SET_TIME,OBC,0x0001,1,uint32_t,TI,,,,,,,,,,,,,MOBC時刻設定コマンド, -,Cmd_TMGR_UPDATE_UNIXTIME,OBC,0x0002,3,double,unixtime,uint32_t,total_cycle,uint32_t,step,,,,,,,,,MOBC UNIXTIME修正コマンド, -,Cmd_TMGR_SET_UTL_UNIXTIME_EPOCH,OBC,0x0003,1,double,ult_unixtime_epoch,,,,,,,,,,,,,UTL_cmdで用いるunixtimeの紀元を変更する,utl_unixtime_epoch [s] -,Cmd_TMGR_SET_CYCLE_CORRECTION,OBC,0x0004,1,double,cycle_correction,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を変更する@@ 初期値は1.0, -,Cmd_TMGR_RESET_CYCLE_CORRECTION,OBC,0x0005,0,,,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を1.0に初期化する, -,Cmd_TMGR_CLEAR_UNIXTIME_INFO,OBC,0x0006,0,,,,,,,,,,,,,,,unixtime_info_ を初期化する, -,Cmd_AM_REGISTER_APP,OBC,0x0007,3,uint32_t,app_id,uint32_t,init_ptr,uint32_t,entry_ptr,,,,,,,,,アプリ登録コマンド, -,Cmd_AM_INITIALIZE_APP,OBC,0x0008,1,uint32_t,app_id,,,,,,,,,,,,,アプリ初期化コマンド, -,Cmd_AM_EXECUTE_APP,OBC,0x0009,1,uint32_t,app_id,,,,,,,,,,,,,アプリ実行コマンド, -,Cmd_AM_SET_PAGE_FOR_TLM,OBC,0x000A,1,uint8_t,,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, -,Cmd_AM_CLEAR_APP_INFO,OBC,0x000B,0,,,,,,,,,,,,,danger,,アプリ実行時間計測の初期化, -,Cmd_MM_SET_MODE_LIST,OBC,0x000C,2,uint8_t,mode,uint16_t,bc_index,,,,,,,,,,,モード定義リスト設定コマンド, -,Cmd_MM_SET_TRANSITION_TABLE,OBC,0x000D,3,uint8_t,from_mode,uint8_t,to_mode,uint16_t,bc_index,,,,,,,,,モード遷移定義テーブル書き換えコマンド, -,Cmd_MM_START_TRANSITION,OBC,0x000E,1,uint8_t,to_mode,,,,,,,,,,,,,モード遷移開始コマンド, -,Cmd_MM_FINISH_TRANSITION,OBC,0x000F,0,,,,,,,,,,,,,,,モード遷移終了通知コマンド, -,Cmd_MM_UPDATE_TRANSITION_TABLE_FOR_TLM,OBC,0x0010,0,,,,,,,,,,,,,,,モードのTLMテーブル情報更新, -,Cmd_TDSP_SET_TASK_LIST,OBC,0x0011,1,uint8_t,bc_index,,,,,,,,,,,,,タスクリスト設定コマンド, -,Cmd_TLCD_CLEAR_ALL_TIMELINE,OBC,0x0012,1,uint8_t,TLCD_ID,,,,,,,,,,,danger,,全TLC登録解除, -,Cmd_TLCD_CLEAR_TIMELINE_AT,OBC,0x0013,2,uint8_t,TLCD_ID,uint32_t,TI,,,,,,,,,,,TI指定TLC登録解除, -,Cmd_TLCD_DEPLOY_BLOCK,OBC,0x0014,2,uint8_t,TLCD_ID,uint16_t,bc_index,,,,,,,,,,,BLC展開 , -,Cmd_TLCD_CLEAR_ERR_LOG,OBC,0x0015,1,uint8_t,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, -,Cmd_TLCD_SET_SOE_FLAG,OBC,0x0016,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,異常時実行停止機能設定(ライン番号@@ フラグ), -,Cmd_TLCD_SET_LOUT_FLAG,OBC,0x0017,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,実行停止機能設定(ライン番号@@ フラグ), -,Cmd_TLCD_SET_ID_FOR_TLM,OBC,0x0018,1,uint8_t,TLCD_ID,,,,,,,,,,,,,テレメで降ろすTL_IDの設定とTLテレメの更新, -,Cmd_TLCD_SET_PAGE_FOR_TLM,OBC,0x0019,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, -,Cmd_GENERATE_TLM,OBC,0x001A,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,TLMパケット生成, +,NOP,OBC,0x0000,0,,,,,,,,,,,,,,,ダミーコマンド, +,TMGR_SET_TIME,OBC,0x0001,1,uint32_t,TI,,,,,,,,,,,,,MOBC時刻設定コマンド, +,TMGR_UPDATE_UNIXTIME,OBC,0x0002,3,double,unixtime,uint32_t,total_cycle,uint32_t,step,,,,,,,,,MOBC UNIXTIME修正コマンド, +,TMGR_SET_UTL_UNIXTIME_EPOCH,OBC,0x0003,1,double,ult_unixtime_epoch,,,,,,,,,,,,,UTL_cmdで用いるunixtimeの紀元を変更する,utl_unixtime_epoch [s] +,TMGR_SET_CYCLE_CORRECTION,OBC,0x0004,1,double,cycle_correction,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を変更する@@ 初期値は1.0, +,TMGR_RESET_CYCLE_CORRECTION,OBC,0x0005,0,,,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を1.0に初期化する, +,TMGR_CLEAR_UNIXTIME_INFO,OBC,0x0006,0,,,,,,,,,,,,,,,unixtime_info_ を初期化する, +,AM_REGISTER_APP,OBC,0x0007,3,uint32_t,app_id,uint32_t,init_ptr,uint32_t,entry_ptr,,,,,,,,,アプリ登録コマンド, +,AM_INITIALIZE_APP,OBC,0x0008,1,uint32_t,app_id,,,,,,,,,,,,,アプリ初期化コマンド, +,AM_EXECUTE_APP,OBC,0x0009,1,uint32_t,app_id,,,,,,,,,,,,,アプリ実行コマンド, +,AM_SET_PAGE_FOR_TLM,OBC,0x000A,1,uint8_t,,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, +,AM_CLEAR_APP_INFO,OBC,0x000B,0,,,,,,,,,,,,,danger,,アプリ実行時間計測の初期化, +,MM_SET_MODE_LIST,OBC,0x000C,2,uint8_t,mode,uint16_t,bc_index,,,,,,,,,,,モード定義リスト設定コマンド, +,MM_SET_TRANSITION_TABLE,OBC,0x000D,3,uint8_t,from_mode,uint8_t,to_mode,uint16_t,bc_index,,,,,,,,,モード遷移定義テーブル書き換えコマンド, +,MM_START_TRANSITION,OBC,0x000E,1,uint8_t,to_mode,,,,,,,,,,,,,モード遷移開始コマンド, +,MM_FINISH_TRANSITION,OBC,0x000F,0,,,,,,,,,,,,,,,モード遷移終了通知コマンド, +,MM_UPDATE_TRANSITION_TABLE_FOR_TLM,OBC,0x0010,0,,,,,,,,,,,,,,,モードのTLMテーブル情報更新, +,TDSP_SET_TASK_LIST,OBC,0x0011,1,uint8_t,bc_index,,,,,,,,,,,,,タスクリスト設定コマンド, +,TLCD_CLEAR_ALL_TIMELINE,OBC,0x0012,1,uint8_t,TLCD_ID,,,,,,,,,,,danger,,全TLC登録解除, +,TLCD_CLEAR_TIMELINE_AT,OBC,0x0013,2,uint8_t,TLCD_ID,uint32_t,TI,,,,,,,,,,,TI指定TLC登録解除, +,TLCD_DEPLOY_BLOCK,OBC,0x0014,2,uint8_t,TLCD_ID,uint16_t,bc_index,,,,,,,,,,,BLC展開 , +,TLCD_CLEAR_ERR_LOG,OBC,0x0015,1,uint8_t,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,TLCD_SET_SOE_FLAG,OBC,0x0016,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,異常時実行停止機能設定(ライン番号@@ フラグ), +,TLCD_SET_LOUT_FLAG,OBC,0x0017,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,実行停止機能設定(ライン番号@@ フラグ), +,TLCD_SET_ID_FOR_TLM,OBC,0x0018,1,uint8_t,TLCD_ID,,,,,,,,,,,,,テレメで降ろすTL_IDの設定とTLテレメの更新, +,TLCD_SET_PAGE_FOR_TLM,OBC,0x0019,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, +**,Telemetry Generator,,,,,,,,,,,,,,,,,,, +,GENERATE_TLM,OBC,0x001A,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,TLMパケット生成 (deprecated), +,TG_GENERATE_TLM,OBC,0x001B,4,uint8_t,tlm id,uint8_t,dest flags,uint8_t,dest info,uint8_t,送出回数,,,,,,,自身の OBC のテレメを生成, +,TG_GENERATE_HP_TLM,OBC,0x001C,1,uint8_t,tlm id,,,,,,,,,,,,,HP テレメを生成 (事実上,現在使われていない), +,TG_GENERATE_RT_TLM,OBC,0x001D,1,uint8_t,tlm id,,,,,,,,,,,,,RT テレメを生成, +,TG_GENERATE_ST_TLM,OBC,0x001E,2,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,,,ST テレメを生成, +,TG_FORWARD_TLM,OBC,0x001F,5,uint16_t,apid,uint8_t,tlm id,uint8_t,dest flags,uint8_t,dest info,uint8_t,送出回数,,,,,2nd OBC のテレメを転送, +,TG_FORWARD_AS_HP_TLM,OBC,0x0020,2,uint16_t,apid,uint8_t,tlm id,,,,,,,,,,,HP テレメとして 2nd OBC のテレメを転送 (事実上,現在使われていない), +,TG_FORWARD_AS_RT_TLM,OBC,0x0021,2,uint16_t,apid,uint8_t,tlm id,,,,,,,,,,,RT テレメとして 2nd OBC のテレメを転送, +,TG_FORWARD_AS_ST_TLM,OBC,0x0022,3,uint16_t,apid,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,ST テレメとして 2nd OBC のテレメを転送, **,BCTコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_BCT_CLEAR_BLOCK,OBC,0x001B,1,uint16_t,bc_index,,,,,,,,,,,,,BLC登録解除コマンド, -,Cmd_BCT_SET_BLOCK_POSITION,OBC,0x001C,2,uint16_t,bc_index,uint8_t,cmd_index,,,,,,,,,,,BLC操作ポインタ設定コマンド, -,Cmd_BCT_COPY_BCT,OBC,0x001D,2,uint16_t,dst_bc_index,uint16_t,src_bc_index,,,,,,,,,,,BCT の内容を別の場所にコピー, -,Cmd_BCT_OVERWRITE_CMD,OBC,0x001E,5,uint16_t,CMD_CODE,uint32_t,TI,uint16_t,pos.block,uint8_t,pos.cmd,raw,cmd_param (big endian),,,danger,,BCTの内容を上書き, -,Cmd_BCT_FILL_NOP,OBC,0x001F,1,uint8_t,,,,,,,,,,,,,,テレメ運用時の10個BCをNOP埋めする.(NOP個数), +,BCT_CLEAR_BLOCK,OBC,0x0023,1,uint16_t,bc_index,,,,,,,,,,,,,BLC登録解除コマンド, +,BCT_SET_BLOCK_POSITION,OBC,0x0024,2,uint16_t,bc_index,uint8_t,cmd_index,,,,,,,,,,,BLC操作ポインタ設定コマンド, +,BCT_COPY_BCT,OBC,0x0025,2,uint16_t,dst_bc_index,uint16_t,src_bc_index,,,,,,,,,,,BCT の内容を別の場所にコピー, +,BCT_OVERWRITE_CMD,OBC,0x0026,5,uint16_t,CMD_CODE,uint32_t,TI,uint16_t,pos.block,uint8_t,pos.cmd,raw,cmd_param (big endian),,,danger,,BCTの内容を上書き, +,BCT_FILL_NOP,OBC,0x0027,1,uint8_t,,,,,,,,,,,,,,テレメ運用時の10個BCをNOP埋めする.(NOP個数), **,BCEコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_BCE_ACTIVATE_BLOCK,OBC,0x0020,0,,,,,,,,,,,,,,,BLC有効化コマンド, -,Cmd_BCE_ACTIVATE_BLOCK_BY_ID,OBC,0x0021,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)有効化, -,Cmd_BCE_INACTIVATE_BLOCK_BY_ID,OBC,0x0022,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)無効化, -,Cmd_BCE_ROTATE_BLOCK,OBC,0x0023,1,uint16_t,bc_index,,,,,,,,,,,,,BLC回転コマンド, -,Cmd_BCE_COMBINE_BLOCK,OBC,0x0024,1,uint16_t,bc_index,,,,,,,,,,,,,BLC融合コマンド, -,Cmd_BCE_TIMELIMIT_COMBINE_BLOCK,OBC,0x0025,2,uint16_t,bc_index,uint8_t,limit_step,,,,,,,,,,,時間制限付きBLC融合コマンド, -,Cmd_BCE_RESET_ROTATOR_INFO,OBC,0x0026,0,,,,,,,,,,,,,danger,,カウンタ類リセット, -,Cmd_BCE_RESET_COMBINER_INFO,OBC,0x0027,0,,,,,,,,,,,,,danger,,カウンタ類リセット, -,Cmd_BCE_SET_ROTATE_INTERVAL,OBC,0x0028,2,uint16_t,,uint16_t,,,,,,,,,,,,BC回転時の回転間隔周期を設定する, +,BCE_ACTIVATE_BLOCK,OBC,0x0028,0,,,,,,,,,,,,,,,BLC有効化コマンド, +,BCE_ACTIVATE_BLOCK_BY_ID,OBC,0x0029,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)有効化, +,BCE_INACTIVATE_BLOCK_BY_ID,OBC,0x002A,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)無効化, +,BCE_ROTATE_BLOCK,OBC,0x002B,1,uint16_t,bc_index,,,,,,,,,,,,,BLC回転コマンド, +,BCE_COMBINE_BLOCK,OBC,0x002C,1,uint16_t,bc_index,,,,,,,,,,,,,BLC融合コマンド, +,BCE_TIMELIMIT_COMBINE_BLOCK,OBC,0x002D,2,uint16_t,bc_index,uint8_t,limit_step,,,,,,,,,,,時間制限付きBLC融合コマンド, +,BCE_RESET_ROTATOR_INFO,OBC,0x002E,0,,,,,,,,,,,,,danger,,カウンタ類リセット, +,BCE_RESET_COMBINER_INFO,OBC,0x002F,0,,,,,,,,,,,,,danger,,カウンタ類リセット, +,BCE_SET_ROTATE_INTERVAL,OBC,0x0030,2,uint16_t,,uint16_t,,,,,,,,,,,,BC回転時の回転間隔周期を設定する, **,GSCDコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_GSCD_CLEAR_ERR_LOG,OBC,0x0029,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,GSCD_CLEAR_ERR_LOG,OBC,0x0031,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, **,RTCDコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_RTCD_CLEAR_ALL_REALTIME,OBC,0x002A,0,,,,,,,,,,,,,danger,,全RTC登録解除, -,Cmd_RTCD_CLEAR_ERR_LOG,OBC,0x002B,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,RTCD_CLEAR_ALL_REALTIME,OBC,0x0032,0,,,,,,,,,,,,,danger,,全RTC登録解除, +,RTCD_CLEAR_ERR_LOG,OBC,0x0033,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, **,EventLogger,,,,,,,,,,,,,,,,,,, -,Cmd_EL_INIT,OBC,0x002C,0,,,,,,,,,,,,,,,EL初期化, -,Cmd_EL_CLEAR_LOG_ALL,OBC,0x002D,0,,,,,,,,,,,,,,,全ログ削除, -,Cmd_EL_CLEAR_LOG_BY_ERR_LEVEL,OBC,0x002E,1,uint8_t,err_level,,,,,,,,,,,,,エラーレベル指定ログ削除, -,Cmd_EL_CLEAR_STATISTICS,OBC,0x002F,0,,,,,,,,,,,,,,,統計情報削除, -,Cmd_EL_CLEAR_TLOG,OBC,0x0030,1,uint8_t,err_level,,,,,,,,,,,,,TLog削除, -,Cmd_EL_CLEAR_CLOG,OBC,0x0031,1,uint8_t,err_level,,,,,,,,,,,,,CLog削除, -,Cmd_EL_RECORD_EVENT,OBC,0x0032,4,uint32_t,group,uint32_t,local,uint8_t,err_level,uint32_t,note,,,,,,,イベント記録, -,Cmd_EL_TLOG_SET_PAGE_FOR_TLM,OBC,0x0033,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,TLogのダウンリンクテレメ設定, -,Cmd_EL_CLOG_SET_PAGE_FOR_TLM,OBC,0x0034,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,CLogのダウンリンクテレメ設定, -,Cmd_EL_INIT_LOGGING_SETTINGS,OBC,0x0035,0,,,,,,,,,,,,,,,ログ設定を初期化, -,Cmd_EL_ENABLE_LOGGING,OBC,0x0036,1,uint32_t,group,,,,,,,,,,,,,ロギングを有効化, -,Cmd_EL_DISABLE_LOGGING,OBC,0x0037,1,uint32_t,group,,,,,,,,,,,,,ロギングを無効化, -,Cmd_EL_ENABLE_LOGGING_ALL,OBC,0x0038,0,,,,,,,,,,,,,,,すべてのロギングを有効化, -,Cmd_EL_DISABLE_LOGGING_ALL,OBC,0x0039,0,,,,,,,,,,,,,,,すべてのロギングを無効化, -,Cmd_EL_ENABLE_TLOG_OVERWRITE,OBC,0x003A,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを有効化, -,Cmd_EL_DISABLE_TLOG_OVERWRITE,OBC,0x003B,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを無効化, -,Cmd_EL_ENABLE_TLOG_OVERWRITE_ALL,OBC,0x003C,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを有効化, -,Cmd_EL_DISABLE_TLOG_OVERWRITE_ALL,OBC,0x003D,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを無効化, +,EL_INIT,OBC,0x0034,0,,,,,,,,,,,,,,,EL初期化, +,EL_CLEAR_LOG_ALL,OBC,0x0035,0,,,,,,,,,,,,,,,全ログ削除, +,EL_CLEAR_LOG_BY_ERR_LEVEL,OBC,0x0036,1,uint8_t,err_level,,,,,,,,,,,,,エラーレベル指定ログ削除, +,EL_CLEAR_STATISTICS,OBC,0x0037,0,,,,,,,,,,,,,,,統計情報削除, +,EL_CLEAR_TLOG,OBC,0x0038,1,uint8_t,err_level,,,,,,,,,,,,,TLog削除, +,EL_CLEAR_CLOG,OBC,0x0039,1,uint8_t,err_level,,,,,,,,,,,,,CLog削除, +,EL_RECORD_EVENT,OBC,0x003A,4,uint32_t,group,uint32_t,local,uint8_t,err_level,uint32_t,note,,,,,,,イベント記録, +,EL_TLOG_SET_PAGE_FOR_TLM,OBC,0x003B,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,TLogのダウンリンクテレメ設定, +,EL_CLOG_SET_PAGE_FOR_TLM,OBC,0x003C,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,CLogのダウンリンクテレメ設定, +,EL_INIT_LOGGING_SETTINGS,OBC,0x003D,0,,,,,,,,,,,,,,,ログ設定を初期化, +,EL_ENABLE_LOGGING,OBC,0x003E,1,uint32_t,group,,,,,,,,,,,,,ロギングを有効化, +,EL_DISABLE_LOGGING,OBC,0x003F,1,uint32_t,group,,,,,,,,,,,,,ロギングを無効化, +,EL_ENABLE_LOGGING_ALL,OBC,0x0040,0,,,,,,,,,,,,,,,すべてのロギングを有効化, +,EL_DISABLE_LOGGING_ALL,OBC,0x0041,0,,,,,,,,,,,,,,,すべてのロギングを無効化, +,EL_ENABLE_TLOG_OVERWRITE,OBC,0x0042,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを有効化, +,EL_DISABLE_TLOG_OVERWRITE,OBC,0x0043,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを無効化, +,EL_ENABLE_TLOG_OVERWRITE_ALL,OBC,0x0044,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを有効化, +,EL_DISABLE_TLOG_OVERWRITE_ALL,OBC,0x0045,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを無効化, **,EventHandler,,,,,,,,,,,,,,,,,,, -,Cmd_EH_INIT,OBC,0x003E,0,,,,,,,,,,,,,,,EHの初期化, -,Cmd_EH_CLEAR_ALL_RULE,OBC,0x003F,0,,,,,,,,,,,,,,,EHのすべてのルールをクリア, -,Cmd_EH_LOAD_DEFAULT_RULE,OBC,0x0040,0,,,,,,,,,,,,,,,EHのデフォルトルールを読み込み, -,Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM,OBC,0x0041,6,uint16_t,rule id,uint32_t,event group,uint32_t,event local,uint8_t,event err level,uint8_t,should_match_err_level,uint16_t,deploy bc index,,,登録するEHルールのイベントパラメータを設定, -,Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM,OBC,0x0042,4,uint8_t,condition type,uint16_t,count_threshold,uint32_t,time_threshold [ms],uint8_t,is_active,,,,,,,登録するEHルールの対応条件パラメタを設定, -,Cmd_EH_REGISTER_RULE,OBC,0x0043,0,,,,,,,,,,,,,,,設定したパラメタでEHルールを登録, -,Cmd_EH_DELETE_RULE,OBC,0x0044,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを削除, -,Cmd_EH_INIT_RULE,OBC,0x0045,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化), -,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL,OBC,0x0046,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化)(多段EH対応用), -,Cmd_EH_ACTIVATE_RULE,OBC,0x0047,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化, -,Cmd_EH_INACTIVATE_RULE,OBC,0x0048,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化, -,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x0049,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化(多段EH対応用), -,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x004A,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化(多段EH対応用), -,Cmd_EH_SET_RULE_COUNTER,OBC,0x004B,2,uint16_t,rule id,uint16_t,counter,,,,,,,,,,,EH_Rule の counter をセット, -,Cmd_EH_CLEAR_RULE_COUNTER,OBC,0x004C,1,uint16_t,rule id,,,,,,,,,,,,,EH_Rule の counter を0 クリア, -,Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT,OBC,0x004D,3,uint32_t,group,uint32_t,local,uint8_t,err_level,,,,,,,,,EH_Rule の counter を EL_Event 指定で 0 クリア, -,Cmd_EH_CLEAR_LOG,OBC,0x004E,0,,,,,,,,,,,,,,,EHの対応ログをクリア, -,Cmd_EH_SET_MAX_RESPONSE_NUM,OBC,0x004F,1,uint8_t,max_response_num,,,,,,,,,,,,,一度のEH実行で対応するイベントの最大数を設定, -,Cmd_EH_SET_MAX_CHECK_EVENT_NUM,OBC,0x0050,1,uint16_t,max_check_event_num,,,,,,,,,,,,,一度のEH実行でチェックするイベントの最大数を設定, -,Cmd_EH_SET_MAX_MULTI_LEVEL_NUM,OBC,0x0051,1,uint8_t,max_multi_level_num,,,,,,,,,,,,,設定可能な最大段数を設定, -,Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM,OBC,0x0052,1,uint8_t,page_no,,,,,,,,,,,,,EHルールテーブルのテレメページの設定, -,Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM,OBC,0x0053,1,uint8_t,page_no,,,,,,,,,,,,,EHルールのソート済みテーブルのテレメページの設定, -,Cmd_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM,OBC,0x0054,1,uint8_t,page_no,,,,,,,,,,,,,EHログテーブルのテレメページの設定, -,Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM,OBC,0x0055,1,uint16_t,rule id,,,,,,,,,,,,,EHテレメに表示するルールのID設定, -,Cmd_EH_MATCH_EVENT_COUNTER_TO_EL,OBC,0x0056,0,,,,,,,,,,,,,,,イベント発生を検知するためのEHカウンタをELカウンタに強制定期に合わせる, -,Cmd_EH_INIT_RULE_BY_EVENT_GROUP,OBC,0x0057,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0058,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x0059,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x005A,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x005B,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x005C,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INIT,OBC,0x0046,0,,,,,,,,,,,,,,,EHの初期化, +,EH_CLEAR_ALL_RULE,OBC,0x0047,0,,,,,,,,,,,,,,,EHのすべてのルールをクリア, +,EH_LOAD_DEFAULT_RULE,OBC,0x0048,0,,,,,,,,,,,,,,,EHのデフォルトルールを読み込み, +,EH_SET_REGISTER_RULE_EVENT_PARAM,OBC,0x0049,6,uint16_t,rule id,uint32_t,event group,uint32_t,event local,uint8_t,event err level,uint8_t,should_match_err_level,uint16_t,deploy bc index,,,登録するEHルールのイベントパラメータを設定, +,EH_SET_REGISTER_RULE_CONDITION_PARAM,OBC,0x004A,4,uint8_t,condition type,uint16_t,count_threshold,uint32_t,time_threshold [ms],uint8_t,is_active,,,,,,,登録するEHルールの対応条件パラメタを設定, +,EH_REGISTER_RULE,OBC,0x004B,0,,,,,,,,,,,,,,,設定したパラメタでEHルールを登録, +,EH_DELETE_RULE,OBC,0x004C,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを削除, +,EH_INIT_RULE,OBC,0x004D,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化), +,EH_INIT_RULE_FOR_MULTI_LEVEL,OBC,0x004E,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化)(多段EH対応用), +,EH_ACTIVATE_RULE,OBC,0x004F,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化, +,EH_INACTIVATE_RULE,OBC,0x0050,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化, +,EH_ACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x0051,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化(多段EH対応用), +,EH_INACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x0052,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化(多段EH対応用), +,EH_SET_RULE_COUNTER,OBC,0x0053,2,uint16_t,rule id,uint16_t,counter,,,,,,,,,,,EH_Rule の counter をセット, +,EH_CLEAR_RULE_COUNTER,OBC,0x0054,1,uint16_t,rule id,,,,,,,,,,,,,EH_Rule の counter を0 クリア, +,EH_CLEAR_RULE_COUNTER_BY_EVENT,OBC,0x0055,3,uint32_t,group,uint32_t,local,uint8_t,err_level,,,,,,,,,EH_Rule の counter を EL_Event 指定で 0 クリア, +,EH_CLEAR_LOG,OBC,0x0056,0,,,,,,,,,,,,,,,EHの対応ログをクリア, +,EH_SET_MAX_RESPONSE_NUM,OBC,0x0057,1,uint8_t,max_response_num,,,,,,,,,,,,,一度のEH実行で対応するイベントの最大数を設定, +,EH_SET_MAX_CHECK_EVENT_NUM,OBC,0x0058,1,uint16_t,max_check_event_num,,,,,,,,,,,,,一度のEH実行でチェックするイベントの最大数を設定, +,EH_SET_MAX_MULTI_LEVEL_NUM,OBC,0x0059,1,uint8_t,max_multi_level_num,,,,,,,,,,,,,設定可能な最大段数を設定, +,EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM,OBC,0x005A,1,uint8_t,page_no,,,,,,,,,,,,,EHルールテーブルのテレメページの設定, +,EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM,OBC,0x005B,1,uint8_t,page_no,,,,,,,,,,,,,EHルールのソート済みテーブルのテレメページの設定, +,EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM,OBC,0x005C,1,uint8_t,page_no,,,,,,,,,,,,,EHログテーブルのテレメページの設定, +,EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM,OBC,0x005D,1,uint16_t,rule id,,,,,,,,,,,,,EHテレメに表示するルールのID設定, +,EH_MATCH_EVENT_COUNTER_TO_EL,OBC,0x005E,0,,,,,,,,,,,,,,,イベント発生を検知するためのEHカウンタをELカウンタに強制定期に合わせる, +,EH_INIT_RULE_BY_EVENT_GROUP,OBC,0x005F,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0060,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_ACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x0061,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x0062,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0063,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0064,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, **,EventUtility,,,,,,,,,,,,,,,,,,, -,Cmd_EVENT_UTIL_ENABLE_EH_EXEC,OBC,0x005D,0,,,,,,,,,,,,,,,EHの実行を有効に, -,Cmd_EVENT_UTIL_DISABLE_EH_EXEC,OBC,0x005E,0,,,,,,,,,,,,,,,EHの実行を無効に, -,Cmd_EVENT_UTIL_EXEC_EH,OBC,0x005F,0,,,,,,,,,,,,,,,EHを単発で実行, +,EVENT_UTIL_ENABLE_EH_EXEC,OBC,0x0065,0,,,,,,,,,,,,,,,EHの実行を有効に, +,EVENT_UTIL_DISABLE_EH_EXEC,OBC,0x0066,0,,,,,,,,,,,,,,,EHの実行を無効に, +,EVENT_UTIL_EXEC_EH,OBC,0x0067,0,,,,,,,,,,,,,,,EHを単発で実行, **,Telemetry Frame@@ Command Analyze,,,,,,,,,,,,,,,,,,, -,Cmd_TF_INIT,OBC,0x0060,0,,,,,,,,,,,,,,,TFの初期化, -,Cmd_CA_INIT,OBC,0x0061,0,,,,,,,,,,,,,,,CAの初期化, -,Cmd_TF_REGISTER_TLM,OBC,0x0062,2,uint8_t,index,uint32_t,tlm_func,,,,,,,,,,,テレメトリ登録コマンド, -,Cmd_CA_REGISTER_CMD,OBC,0x0063,3,uint16_t,index,uint32_t,cmd_func,raw,param_info,,,,,,,,,コマンド登録コマンド, -,Cmd_TF_SET_PAGE_FOR_TLM,OBC,0x0064,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ定義テーブルページ番号設定, -,Cmd_CA_SET_PAGE_FOR_TLM,OBC,0x0065,1,uint8_t,page_no,,,,,,,,,,,,,コマンド定義テーブルページ番号設定, +,TF_INIT,OBC,0x0068,0,,,,,,,,,,,,,,,TFの初期化, +,CA_INIT,OBC,0x0069,0,,,,,,,,,,,,,,,CAの初期化, +,TF_REGISTER_TLM,OBC,0x006A,2,uint8_t,index,uint32_t,tlm_func,,,,,,,,,,,テレメトリ登録コマンド, +,CA_REGISTER_CMD,OBC,0x006B,3,uint16_t,index,uint32_t,cmd_func,raw,param_info,,,,,,,,,コマンド登録コマンド, +,TF_SET_PAGE_FOR_TLM,OBC,0x006C,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ定義テーブルページ番号設定, +,CA_SET_PAGE_FOR_TLM,OBC,0x006D,1,uint8_t,page_no,,,,,,,,,,,,,コマンド定義テーブルページ番号設定, **,,,,,,,,,,,,,,,,,,,, * CDH,GS用,,,,,,,,,,,,,,,,,,, **,WDT用コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_WDT_INIT,OBC,0x0100,0,,,,,,,,,,,,,,,WDT初期化.WDTがアプリイニシャライザを持たなくなったので追加, -,Cmd_WDT_ENABLE,OBC,0x0101,0,,,,,,,,,,,,,,,WDT有効化, -,Cmd_WDT_DISABLE,OBC,0x0102,0,,,,,,,,,,,,,,,WDT無効化, -,Cmd_WDT_STOP_CLEAR,OBC,0x0103,0,,,,,,,,,,,,,danger,,WDTのカウンタクリアを止める=リセット実行, -,Cmd_WDT_START_CLEAR,OBC,0x0104,0,,,,,,,,,,,,,,,WDTのカウンタクリアを開始する, +,WDT_INIT,OBC,0x0100,0,,,,,,,,,,,,,,,WDT初期化.WDTがアプリイニシャライザを持たなくなったので追加, +,WDT_ENABLE,OBC,0x0101,0,,,,,,,,,,,,,,,WDT有効化, +,WDT_DISABLE,OBC,0x0102,0,,,,,,,,,,,,,,,WDT無効化, +,WDT_STOP_CLEAR,OBC,0x0103,0,,,,,,,,,,,,,danger,,WDTのカウンタクリアを止める=リセット実行, +,WDT_START_CLEAR,OBC,0x0104,0,,,,,,,,,,,,,,,WDTのカウンタクリアを開始する, **,,,,,,,,,,,,,,,,,,,, * POWER,,,,,,,,,,,,,,,,,,,, **,,,,,,,,,,,,,,,,,,,, @@ -989,12 +998,3 @@ Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv index 7ee17aab9..4dfaa7c83 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv @@ -101,8 +101,8 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT コマンドポインタ, ,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT 登録コマンド時刻,変数指定が大変なことに… ,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT 登録コマンドID,変数指定が大変なことに… -,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0登録コマンド数, +,RT_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, +,RT_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list)),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0登録コマンド数, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv index a0da44590..b514535b5 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_AOBC_TLM_DB_AOBC_AOBC.csv @@ -101,8 +101,8 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,240,0,8,NONE,,,,,,,,BCT コマンドポインタ, ,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,241,0,32,NONE,,,,,,,,BCT 登録コマンド時刻,変数指定が大変なことに… ,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,245,0,16,NONE,,,,,,,,BCT 登録コマンドID,変数指定が大変なことに… -,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,247,0,32,NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,251,0,8,NONE,,,,,,,,TL0登録コマンド数, +,RT_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_tlm_list),PACKET,247,0,32,NONE,,,,,,,,TL0コマンドカウンタ, +,RT_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list)),PACKET,251,0,8,NONE,,,,,,,,TL0登録コマンド数, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c index 8bf81cf3a..b175240f0 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c @@ -12,7 +12,8 @@ CCP_DEST_TYPE CCP_get_dest_type_from_uint8(uint8_t dest_type) case CCP_DEST_TYPE_TO_ME: // FALL THROUGH case CCP_DEST_TYPE_TO_MOBC: // FALL THROUGH case CCP_DEST_TYPE_TO_AOBC: // FALL THROUGH - case CCP_DEST_TYPE_TO_TOBC: + case CCP_DEST_TYPE_TO_TOBC: // FALL THROUGH + case CCP_DEST_TYPE_TO_APID: return (CCP_DEST_TYPE)dest_type; default: return CCP_DEST_TYPE_TO_UNKOWN; diff --git a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h index 5254edbc9..7db942505 100644 --- a/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h +++ b/Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h @@ -20,18 +20,17 @@ typedef CmdSpacePacket CommonCmdPacket; /** * @enum CCP_DEST_TYPE * @brief コマンドの解釈の宛先を規定 - * @note TO_ME: 自分自身 → 自分自身の TLC や BC として解釈.コマンド実行時に必要に応じて別 OBC へ配送 (この定義は C2A Core で使うため,どんな C2A でも必須) - * @note TO_*: 転送先の TL や BC として解釈 (直接指定 OBC へ配送. GS から来たコマンドを自身のキューにいれない) - * なお,自分自身宛だった場合は,キューに入れる + * @note 詳細は https://github.com/ut-issl/c2a-core/blob/develop/Docs/Core/communication.md を参照 * @note 4bit を想定 */ typedef enum { - CCP_DEST_TYPE_TO_ME = 0, - CCP_DEST_TYPE_TO_MOBC = 1, - CCP_DEST_TYPE_TO_AOBC = 2, - CCP_DEST_TYPE_TO_TOBC = 3, - CCP_DEST_TYPE_TO_UNKOWN = 4 + CCP_DEST_TYPE_TO_ME = 0x0, + CCP_DEST_TYPE_TO_MOBC = 0x1, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_AOBC = 0x2, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_TOBC = 0x3, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_UNKOWN = 0xe, + CCP_DEST_TYPE_TO_APID = 0xf } CCP_DEST_TYPE; /** diff --git a/Examples/2nd_obc_user/src/src_user/Settings/git_revision_config.h b/Examples/2nd_obc_user/src/src_user/Settings/git_revision_config.h new file mode 100644 index 000000000..0a17e3fa3 --- /dev/null +++ b/Examples/2nd_obc_user/src/src_user/Settings/git_revision_config.h @@ -0,0 +1,44 @@ +#ifndef GIT_REVISION_CONFIG_H_ +#define GIT_REVISION_CONFIG_H_ + +/** + * このファイルは自動生成される場合と設定だけを書く場合があります. + * C2A core/userのcommit hashはコマンドラインオプションないしこのファイルでdefineされ, + * 実際の埋め込みについてはsrc_core/Librari/git_revision.hとsrc_core/c2a_core_main.cが制御します. + */ + +#if 1 // このuserはCMakeでビルドするのでこれを使う +/*!< @brief CMakeでビルドする時など,コマンドラインオプションからcommit hashを流し込む場合の設定 + * この場合,以下の定数をコマンドラインオプション(-D)などで設定してください + * GIT_REVISION_C2A_CORE C2A coreのcommit hash(文字列) + * GIT_REVISION_C2A_CORE_SHORT C2A coreのcommit hash short(0xから始まる数値) + * GIT_REVISION_C2A_USER C2A userのcommit hash(文字列) + * GIT_REVISION_C2A_USER_SHORT C2A userのcommit hash short(0xから始まる数値) + */ + +#define C2A_GIT_REVISION_FROM_OPTION +#endif // from option + +#if 0 +/*!< @brief このファイルを自動生成する場合 + * src_user/Script/Git/revision.sh/batが以下のような内容でこのファイルを生成します + */ + +/* This file is generated by src_user/Script/Git/revision.sh */ +#define C2A_GIT_REVISION_GENERATED + +#define GIT_REVISION_C2A_CORE "1234567890123456789012345678901234567890" +#define GIT_REVISION_C2A_CORE_SHORT 0x1234567 +#define GIT_REVISION_C2A_USER "1234567890123456789012345678901234567890" +#define GIT_REVISION_C2A_USER_SHORT 0x1234567 +#endif // generated version + +#if 0 +/*!< @brief commit hashを埋め込まない場合の設定 + * 実際には0が埋め込まれます + */ + +#define C2A_GIT_REVISION_IGNORE +#endif + +#endif // GIT_REVISION_CONFIG_H_ diff --git a/Examples/2nd_obc_user/src/src_user/Test/test/conftest.py b/Examples/2nd_obc_user/src/src_user/Test/test/conftest.py index fd21bdf42..950978f6c 100644 --- a/Examples/2nd_obc_user/src/src_user/Test/test/conftest.py +++ b/Examples/2nd_obc_user/src/src_user/Test/test/conftest.py @@ -38,8 +38,8 @@ def _increase_hk_frequency(): for ti in range(1, 10, 2): ope.send_bl_cmd( ti, - mobc_c2a_enum.Cmd_CODE_GENERATE_TLM, - (0x40, mobc_c2a_enum.Tlm_CODE_HK, 1), + mobc_c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, + (mobc_c2a_enum.Tlm_CODE_HK,), ) time.sleep(0.1) diff --git a/Examples/2nd_obc_user/src/src_user/Test/test/test_comm_between_c2a.py b/Examples/2nd_obc_user/src/src_user/Test/test/test_comm_between_c2a.py index 9eb3d2a86..fd9bfca97 100644 --- a/Examples/2nd_obc_user/src/src_user/Test/test/test_comm_between_c2a.py +++ b/Examples/2nd_obc_user/src/src_user/Test/test/test_comm_between_c2a.py @@ -22,6 +22,7 @@ SECOND_OBC = "AOBC" Tlm_CODE_2ND_OBC_HK = c2a_enum.Tlm_CODE_AOBC_HK +TLM_APID_2ND_OBC = c2a_enum.APID_AOBC_TLM USE_BCT_ID = 100 # NOP だと id が 0x00 なのでちがうのを @@ -105,18 +106,16 @@ def test_c2a_comm_tlm_buffer(): # MOBC の tlm buffer が空なのでエラー assert "CNT" == wings.util.send_rt_cmd_and_confirm( ope, - mobc_c2a_enum.Cmd_CODE_GENERATE_TLM, - (0x40, mobc_c2a_enum.Tlm_CODE_AOBC_AOBC, 1), + mobc_c2a_enum.Cmd_CODE_TG_FORWARD_AS_RT_TLM, + (TLM_APID_2ND_OBC, c2a_enum.Tlm_CODE_AOBC_AOBC), mobc_c2a_enum.Tlm_CODE_HK, ) - send_2nd_obc_gsc_directly( - c2a_enum.Cmd_CODE_GENERATE_TLM, (0x40, mobc_c2a_enum.Tlm_CODE_AOBC_AOBC, 1) - ) + send_2nd_obc_gsc_directly(c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, (c2a_enum.Tlm_CODE_AOBC_AOBC,)) time.sleep(2) assert "SUC" == wings.util.send_rt_cmd_and_confirm( ope, - mobc_c2a_enum.Cmd_CODE_GENERATE_TLM, - (0x40, mobc_c2a_enum.Tlm_CODE_AOBC_AOBC, 1), + mobc_c2a_enum.Cmd_CODE_TG_FORWARD_AS_RT_TLM, + (TLM_APID_2ND_OBC, c2a_enum.Tlm_CODE_AOBC_AOBC), mobc_c2a_enum.Tlm_CODE_HK, ) @@ -230,7 +229,7 @@ def ckeck_mobc_bct_ack(ti, exec_cmd, bct_id): g_mobc_gsc_cnt += 1 tlm_MOBC = wings.util.generate_and_receive_tlm( - ope, mobc_c2a_enum.Cmd_CODE_GENERATE_TLM, mobc_c2a_enum.Tlm_CODE_MOBC + ope, mobc_c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, mobc_c2a_enum.Tlm_CODE_MOBC ) assert tlm_MOBC["MOBC.BCT_BLK_PTR"] == bct_id assert tlm_MOBC["MOBC.BCT_CMD_PTR"] == 1 @@ -254,8 +253,8 @@ def get_2nd_obc_hk_tlm(): global g_mobc_gsc_cnt g_mobc_gsc_cnt += 1 - tlm_2ND_HK = wings.util.generate_and_receive_tlm( - ope, mobc_c2a_enum.Cmd_CODE_GENERATE_TLM, Tlm_CODE_2ND_OBC_HK + tlm_2ND_HK = wings.util.forward_and_receive_tlm( + ope, mobc_c2a_enum.Cmd_CODE_TG_FORWARD_TLM, TLM_APID_2ND_OBC, Tlm_CODE_2ND_OBC_HK ) return tlm_2ND_HK diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c b/Examples/2nd_obc_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c index ab2bc117b..7aea406d1 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c @@ -11,10 +11,8 @@ void BCL_load_start_hk_tlm(void) { - BCL_tool_prepare_param_uint8(0x40); BCL_tool_prepare_param_uint8(Tlm_CODE_AOBC_HK); - BCL_tool_prepare_param_uint8(1); - BCL_tool_register_cmd(1, Cmd_CODE_GENERATE_TLM); + BCL_tool_register_cmd(1, Cmd_CODE_TG_GENERATE_RT_TLM); BCL_tool_register_deploy (10, BC_HK_CYCLIC_TLM, TLCD_ID_DEPLOY_TLM); } diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.c b/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.c index 59a1fe34d..bb59510ce 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.c +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.c @@ -4,7 +4,7 @@ * @brief コマンド定義 * @note このコードは自動生成されています! */ -#include "../../src_core/TlmCmd/command_analyze.h" +#include #include "command_definitions.h" #include "command_source.h" @@ -37,6 +37,14 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_TLCD_SET_ID_FOR_TLM].cmd_func = Cmd_TLCD_SET_ID_FOR_TLM; cmd_table[Cmd_CODE_TLCD_SET_PAGE_FOR_TLM].cmd_func = Cmd_TLCD_SET_PAGE_FOR_TLM; cmd_table[Cmd_CODE_GENERATE_TLM].cmd_func = Cmd_GENERATE_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].cmd_func = Cmd_TG_GENERATE_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_HP_TLM].cmd_func = Cmd_TG_GENERATE_HP_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_RT_TLM].cmd_func = Cmd_TG_GENERATE_RT_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].cmd_func = Cmd_TG_GENERATE_ST_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].cmd_func = Cmd_TG_FORWARD_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].cmd_func = Cmd_TG_FORWARD_AS_HP_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].cmd_func = Cmd_TG_FORWARD_AS_RT_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].cmd_func = Cmd_TG_FORWARD_AS_ST_TLM; cmd_table[Cmd_CODE_BCT_CLEAR_BLOCK].cmd_func = Cmd_BCT_CLEAR_BLOCK; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].cmd_func = Cmd_BCT_SET_BLOCK_POSITION; cmd_table[Cmd_CODE_BCT_COPY_BCT].cmd_func = Cmd_BCT_COPY_BCT; @@ -152,6 +160,26 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_HP_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[2].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_BCT_CLEAR_BLOCK].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.h b/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.h index f39b7c97d..19037f148 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.h +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/command_definitions.h @@ -35,81 +35,89 @@ typedef enum Cmd_CODE_TLCD_SET_ID_FOR_TLM = 0x0018, Cmd_CODE_TLCD_SET_PAGE_FOR_TLM = 0x0019, Cmd_CODE_GENERATE_TLM = 0x001A, - Cmd_CODE_BCT_CLEAR_BLOCK = 0x001B, - Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x001C, - Cmd_CODE_BCT_COPY_BCT = 0x001D, - Cmd_CODE_BCT_OVERWRITE_CMD = 0x001E, - Cmd_CODE_BCT_FILL_NOP = 0x001F, - Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0020, - Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0021, - Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x0022, - Cmd_CODE_BCE_ROTATE_BLOCK = 0x0023, - Cmd_CODE_BCE_COMBINE_BLOCK = 0x0024, - Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x0025, - Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x0026, - Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x0027, - Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0028, - Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0029, - Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x002A, - Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x002B, - Cmd_CODE_EL_INIT = 0x002C, - Cmd_CODE_EL_CLEAR_LOG_ALL = 0x002D, - Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x002E, - Cmd_CODE_EL_CLEAR_STATISTICS = 0x002F, - Cmd_CODE_EL_CLEAR_TLOG = 0x0030, - Cmd_CODE_EL_CLEAR_CLOG = 0x0031, - Cmd_CODE_EL_RECORD_EVENT = 0x0032, - Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x0033, - Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x0034, - Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x0035, - Cmd_CODE_EL_ENABLE_LOGGING = 0x0036, - Cmd_CODE_EL_DISABLE_LOGGING = 0x0037, - Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x0038, - Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x0039, - Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x003A, - Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x003B, - Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x003C, - Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x003D, - Cmd_CODE_EH_INIT = 0x003E, - Cmd_CODE_EH_CLEAR_ALL_RULE = 0x003F, - Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x0040, - Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x0041, - Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x0042, - Cmd_CODE_EH_REGISTER_RULE = 0x0043, - Cmd_CODE_EH_DELETE_RULE = 0x0044, - Cmd_CODE_EH_INIT_RULE = 0x0045, - Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x0046, - Cmd_CODE_EH_ACTIVATE_RULE = 0x0047, - Cmd_CODE_EH_INACTIVATE_RULE = 0x0048, - Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0049, - Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x004A, - Cmd_CODE_EH_SET_RULE_COUNTER = 0x004B, - Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x004C, - Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x004D, - Cmd_CODE_EH_CLEAR_LOG = 0x004E, - Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x004F, - Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x0050, - Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x0051, - Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x0052, - Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x0053, - Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x0054, - Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x0055, - Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x0056, - Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x0057, - Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0058, - Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x0059, - Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x005A, - Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005B, - Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005C, - Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x005D, - Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x005E, - Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x005F, - Cmd_CODE_TF_INIT = 0x0060, - Cmd_CODE_CA_INIT = 0x0061, - Cmd_CODE_TF_REGISTER_TLM = 0x0062, - Cmd_CODE_CA_REGISTER_CMD = 0x0063, - Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x0064, - Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x0065, + Cmd_CODE_TG_GENERATE_TLM = 0x001B, + Cmd_CODE_TG_GENERATE_HP_TLM = 0x001C, + Cmd_CODE_TG_GENERATE_RT_TLM = 0x001D, + Cmd_CODE_TG_GENERATE_ST_TLM = 0x001E, + Cmd_CODE_TG_FORWARD_TLM = 0x001F, + Cmd_CODE_TG_FORWARD_AS_HP_TLM = 0x0020, + Cmd_CODE_TG_FORWARD_AS_RT_TLM = 0x0021, + Cmd_CODE_TG_FORWARD_AS_ST_TLM = 0x0022, + Cmd_CODE_BCT_CLEAR_BLOCK = 0x0023, + Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x0024, + Cmd_CODE_BCT_COPY_BCT = 0x0025, + Cmd_CODE_BCT_OVERWRITE_CMD = 0x0026, + Cmd_CODE_BCT_FILL_NOP = 0x0027, + Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0028, + Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0029, + Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x002A, + Cmd_CODE_BCE_ROTATE_BLOCK = 0x002B, + Cmd_CODE_BCE_COMBINE_BLOCK = 0x002C, + Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x002D, + Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x002E, + Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x002F, + Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0030, + Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0031, + Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x0032, + Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x0033, + Cmd_CODE_EL_INIT = 0x0034, + Cmd_CODE_EL_CLEAR_LOG_ALL = 0x0035, + Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x0036, + Cmd_CODE_EL_CLEAR_STATISTICS = 0x0037, + Cmd_CODE_EL_CLEAR_TLOG = 0x0038, + Cmd_CODE_EL_CLEAR_CLOG = 0x0039, + Cmd_CODE_EL_RECORD_EVENT = 0x003A, + Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x003B, + Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x003C, + Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x003D, + Cmd_CODE_EL_ENABLE_LOGGING = 0x003E, + Cmd_CODE_EL_DISABLE_LOGGING = 0x003F, + Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x0040, + Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x0041, + Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x0042, + Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x0043, + Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x0044, + Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x0045, + Cmd_CODE_EH_INIT = 0x0046, + Cmd_CODE_EH_CLEAR_ALL_RULE = 0x0047, + Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x0048, + Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x0049, + Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x004A, + Cmd_CODE_EH_REGISTER_RULE = 0x004B, + Cmd_CODE_EH_DELETE_RULE = 0x004C, + Cmd_CODE_EH_INIT_RULE = 0x004D, + Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x004E, + Cmd_CODE_EH_ACTIVATE_RULE = 0x004F, + Cmd_CODE_EH_INACTIVATE_RULE = 0x0050, + Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0051, + Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0052, + Cmd_CODE_EH_SET_RULE_COUNTER = 0x0053, + Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x0054, + Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x0055, + Cmd_CODE_EH_CLEAR_LOG = 0x0056, + Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x0057, + Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x0058, + Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x0059, + Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x005A, + Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x005B, + Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x005C, + Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x005D, + Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x005E, + Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x005F, + Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0060, + Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x0061, + Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x0062, + Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0063, + Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0064, + Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x0065, + Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x0066, + Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x0067, + Cmd_CODE_TF_INIT = 0x0068, + Cmd_CODE_CA_INIT = 0x0069, + Cmd_CODE_TF_REGISTER_TLM = 0x006A, + Cmd_CODE_CA_REGISTER_CMD = 0x006B, + Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x006C, + Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x006D, Cmd_CODE_WDT_INIT = 0x0100, Cmd_CODE_WDT_ENABLE = 0x0101, Cmd_CODE_WDT_DISABLE = 0x0102, diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/common_tlm_packet.c b/Examples/2nd_obc_user/src/src_user/TlmCmd/common_tlm_packet.c index b557a6e2c..a6d9b2753 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/common_tlm_packet.c +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/common_tlm_packet.c @@ -27,6 +27,11 @@ void CTP_set_apid(CommonTlmPacket* packet, APID apid) TSP_set_apid(packet, apid); } +double CTP_get_global_time(const CommonTlmPacket* packet) +{ + return TSP_get_global_time(packet); +} + void CTP_set_global_time(CommonTlmPacket* packet) { // 何を設定するかはユーザー定義 @@ -34,6 +39,18 @@ void CTP_set_global_time(CommonTlmPacket* packet) TSP_set_global_time(packet, 0.0); } +uint32_t CTP_get_on_board_subnet_time(const CommonTlmPacket* packet) +{ + return TSP_get_on_board_subnet_time(packet); +} + +void CTP_set_on_board_subnet_time(CommonTlmPacket* packet) +{ + // 何を設定するかはユーザー定義 + // MOBC では主に TI を,2nd OBC では主に 0xffffffff を + TSP_set_on_board_subnet_time(packet, 0xffffffff); +} + ctp_dest_flags_t CTP_get_dest_flags(const CommonTlmPacket* packet) { return TSP_get_dest_flags(packet); diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_definitions.c b/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_definitions.c index 5ec92ce17..3f4d7c384 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_definitions.c +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_definitions.c @@ -4,7 +4,7 @@ * @brief テレメトリ定義 * @note このコードは自動生成されています! */ -#include "../../src_core/TlmCmd/telemetry_frame.h" +#include #include "telemetry_definitions.h" #include "telemetry_source.h" @@ -103,8 +103,8 @@ static TF_TLM_FUNC_ACK Tlm_AOBC_AOBC_(uint8_t* packet, uint16_t* len, uint16_t m TF_copy_u8(&packet[240], (uint8_t)(block_command_table->pos.cmd)); TF_copy_u32(&packet[241], ((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1)))); TF_copy_u16(&packet[245], (uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1)))); - TF_copy_u32(&packet[247], PL_count_executed_nodes(&PH_ms_tlm_list)); - TF_copy_u8(&packet[251], (uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list))); + TF_copy_u32(&packet[247], PL_count_executed_nodes(&PH_rt_tlm_list)); + TF_copy_u8(&packet[251], (uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list))); #endif *len = 252; diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_source.h b/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_source.h index b6e6bddb9..173c5f985 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_source.h +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/telemetry_source.h @@ -6,6 +6,7 @@ #define TELEMETRY_SOURCE_H_ #include "string.h" // for memcpy +#include #include #include #include @@ -16,7 +17,6 @@ #include #include #include "../Applications/app_headers.h" -#include "../Library/git_revision.h" #include "../Settings/build_settings.h" #endif diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.c b/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.c index a214f74e9..9a6f80854 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.c +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.c @@ -17,10 +17,7 @@ PH_ACK PH_user_analyze_cmd(const CommonCmdPacket* packet) switch (CCP_get_dest_type(packet)) { default: - // CCP_DEST_TYPE_TO_ME - // CCP_DEST_TYPE_TO_MOBC (自分) - // 宛先不明 - // はここに + // 2nd OBC なので,自分宛て以外のパケットはないはず return PH_ACK_UNKNOWN; } } @@ -37,4 +34,23 @@ CCP_CmdRet PH_user_cmd_router(const CommonCmdPacket* packet) } } + +TF_TLM_FUNC_ACK PH_user_telemetry_router(APID apid, + TLM_CODE tlm_id, + uint8_t* packet, + uint16_t* len, + uint16_t max_len) +{ + (void)tlm_id; + (void)packet; + (void)len; + (void)max_len; + + switch (apid) + { + default: + return TF_TLM_FUNC_ACK_NOT_DEFINED; + } +} + #pragma section diff --git a/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.h b/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.h index 13506c396..2ff40dfb0 100644 --- a/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.h +++ b/Examples/2nd_obc_user/src/src_user/TlmCmd/user_packet_handler.h @@ -9,6 +9,9 @@ #include #include #include +#include +#include "telemetry_definitions.h" +#include "../Settings/TlmCmd/Ccsds/apid_define.h" /** * @brief PH のユーザー固有部初期化処理 @@ -45,4 +48,19 @@ PH_ACK PH_user_analyze_cmd(const CommonCmdPacket* packet); */ CCP_CmdRet PH_user_cmd_router(const CommonCmdPacket* packet); +/** + * @brief 2nd OBC のテレメを転送するために, APID からテレメを判定してルーティングする // FIXME: 命名, router ではない? + * @param[in] apid: 2nd OBC の Tlm APID + * @param[in] tlm_id: 2nd OBC の Tlm ID + * @param[out] packet: テレメを作る uint8_t にシリアライズされた packet へのポインタ + * @param[out] len: 転送するテレメのパケット長 + * @param[in] max_len: 許容できる最大テレメパケット長 + * @return TF_TLM_FUNC_ACK + */ +TF_TLM_FUNC_ACK PH_user_telemetry_router(APID apid, + TLM_CODE tlm_id, + uint8_t* packet, + uint16_t* len, + uint16_t max_len); + #endif diff --git a/Examples/2nd_obc_user/src/src_user/c2a_main.c b/Examples/2nd_obc_user/src/src_user/c2a_main.c index 572d664be..403a69a16 100644 --- a/Examples/2nd_obc_user/src/src_user/c2a_main.c +++ b/Examples/2nd_obc_user/src/src_user/c2a_main.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -59,6 +60,8 @@ static void C2A_main_(void) // Printf内部で WDT_clear_wdt(); が呼ばれてることに注意! static void C2A_init_(void) { + Printf("C2A_init: user revision = %s\n", GIT_REV_USER); + WDT_init(); TMGR_init(); // Time Manager // AM_initialize_all_apps での時間計測のためにここで初期化 diff --git a/Examples/2nd_obc_user/sync_with_minimum_user.bat b/Examples/2nd_obc_user/sync_with_minimum_user.bat index 5d125aa8a..d31716fda 100644 --- a/Examples/2nd_obc_user/sync_with_minimum_user.bat +++ b/Examples/2nd_obc_user/sync_with_minimum_user.bat @@ -19,6 +19,7 @@ call :sync_file ".\src\src_user\IfWrapper\Sils\wdt_sils.cpp" "..\minimum_user\sr call :sync_file ".\src\src_user\IfWrapper\SilsMockup\README.md" "..\minimum_user\src\src_user\IfWrapper\SilsMockup\README.md" call :sync_file ".\src\src_user\IfWrapper\SilsMockup\uart_sils.c" "..\minimum_user\src\src_user\IfWrapper\SilsMockup\uart_sils.c" call :sync_file ".\src\src_user\IfWrapper\SilsMockup\wdt_sils.c" "..\minimum_user\src\src_user\IfWrapper\SilsMockup\wdt_sils.c" +call :sync_file ".\src\src_user\Settings\git_revision_config.h" "..\minimum_user\src\src_user\Settings\git_revision_config.h" call :sync_file ".\src\src_user\Settings\DriverSuper\driver_buffer_define.h" "..\minimum_user\src\src_user\Settings\DriverSuper\driver_buffer_define.h" call :sync_file ".\src\src_user\Settings\TlmCmd\common_cmd_packet_define.c" "..\minimum_user\src\src_user\Settings\TlmCmd\common_cmd_packet_define.c" call :sync_file ".\src\src_user\Settings\TlmCmd\common_tlm_cmd_packet_define.h" "..\minimum_user\src\src_user\Settings\TlmCmd\common_tlm_cmd_packet_define.h" @@ -26,7 +27,6 @@ call :sync_file ".\src\src_user\TlmCmd\block_command_user_settings.c" "..\minimu call :sync_file ".\src\src_user\TlmCmd\block_command_user_settings.h" "..\minimum_user\src\src_user\TlmCmd\block_command_user_settings.h" call :sync_file ".\src\src_user\TlmCmd\common_cmd_packet.c" "..\minimum_user\src\src_user\TlmCmd\common_cmd_packet.c" call :sync_file ".\src\src_user\TlmCmd\common_tlm_cmd_packet.c" "..\minimum_user\src\src_user\TlmCmd\common_tlm_cmd_packet.c" -call :sync_file ".\src\src_user\TlmCmd\common_tlm_packet.c" "..\minimum_user\src\src_user\TlmCmd\common_tlm_packet.c" call :sync_file ".\src\src_user\Test\utils\wings_utils.py" "..\minimum_user\src\src_user\Test\utils\wings_utils.py" call :sync_file ".\src\src_user\Test\pytest.ini" "..\minimum_user\src\src_user\Test\pytest.ini" diff --git a/Examples/minimum_user/CMakeLists.txt b/Examples/minimum_user/CMakeLists.txt index c6e996763..9e624402b 100644 --- a/Examples/minimum_user/CMakeLists.txt +++ b/Examples/minimum_user/CMakeLists.txt @@ -41,6 +41,21 @@ if(SHOW_DEBUG_PRINT_ON_SILS) message("Show debug print") endif() +execute_process( + COMMAND git log -1 --format=%H + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_USER + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION_C2A_USER_SHORT + OUTPUT_STRIP_TRAILING_WHITESPACE +) +add_definitions("-DGIT_REVISION_C2A_USER=\"${GIT_REVISION_C2A_USER}\"") +add_definitions("-DGIT_REVISION_C2A_USER_SHORT=0x${GIT_REVISION_C2A_USER_SHORT}") + add_subdirectory(${C2A_CORE_DIR}) add_subdirectory(${C2A_USER_DIR}/Applications) @@ -91,16 +106,4 @@ else() ) endif() -if(WIN32) - add_custom_command(TARGET ${PROJECT_NAME} - PRE_BUILD - COMMAND git_revision.bat - WORKING_DIRECTORY ${C2A_USER_DIR}/Script) -else() - add_custom_command(TARGET ${PROJECT_NAME} - PRE_BUILD - COMMAND ./git_revision.sh - WORKING_DIRECTORY ${C2A_USER_DIR}/Script) -endif() - include(${C2A_USER_DIR}/common.cmake) diff --git a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_aobc.c b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_aobc.c index fc09e4a9c..bd130d641 100644 --- a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_aobc.c +++ b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_aobc.c @@ -94,16 +94,18 @@ CCP_CmdRet DI_AOBC_dispatch_command(const CommonCmdPacket* packet) CommonCmdPacket* pckt = (CommonCmdPacket*)packet; // const_cast // ここで CCP_DEST_TYPE を宛先で受理できるように変更(なので const cast が発生している...) - if (CCP_get_dest_type(pckt) != CCP_DEST_TYPE_TO_ME) - { - // MOBC のキューに入らず直接転送 - // そのままの EXEC_TYPE で転送.なにもしない - } - else + switch (CCP_get_dest_type(pckt)) { + case CCP_DEST_TYPE_TO_ME: // FALL THROUGH + case CCP_DEST_TYPE_TO_MOBC: // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated // MOBC のキューに溜まった後に実行されたもの // 配送先 OBC では MOBC 側の TL などの影響は受けないはずなので RTC へ変換 CCP_set_exec_type(pckt, CCP_EXEC_TYPE_RT); + break; + default: + // MOBC のキューに入らず直接転送 + // そのままの EXEC_TYPE で転送.なにもしない + break; } // 配送先 OBC が最終到達地なので diff --git a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.c b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.c index 6e5159d63..3b56920dc 100644 --- a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.c +++ b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.c @@ -15,22 +15,22 @@ static RESULT DI_GS_init_(void); // 以下 init と update の定義 -static void DI_GS_cmd_packet_handler_init_(void); -static void DI_GS_cmd_packet_handler_(void); +static void DI_GS_cmd_packet_handler_app_init_(void); +static void DI_GS_cmd_packet_handler_app_(void); -static void DI_GS_mst_packet_handler_init_(void); -static void DI_GS_mst_packet_handler_(void); -static void DI_GS_rpt_packet_handler_init_(void); -static void DI_GS_rpt_packet_handler_(void); +static void DI_GS_rt_tlm_packet_handler_app_init_(void); +static void DI_GS_rt_tlm_packet_handler_app_(void); +static void DI_GS_rp_tlm_packet_handler_app_init_(void); +static void DI_GS_rp_tlm_packet_handler_app_(void); static void DI_GS_set_t2m_flush_interval_(cycle_t flush_interval, DI_GS_TlmPacketHandler* gs_tlm_packet_handler); static GS_Driver gs_driver_; const GS_Driver* const gs_driver = &gs_driver_; -static DI_GS_TlmPacketHandler DI_GS_ms_tlm_packet_handler_; // mission -const DI_GS_TlmPacketHandler* const DI_GS_ms_tlm_packet_handler = &DI_GS_ms_tlm_packet_handler_; -static DI_GS_TlmPacketHandler DI_GS_rp_tlm_packet_handler_; // replay tlm +static DI_GS_TlmPacketHandler DI_GS_rt_tlm_packet_handler_; +const DI_GS_TlmPacketHandler* const DI_GS_rt_tlm_packet_handler = &DI_GS_rt_tlm_packet_handler_; +static DI_GS_TlmPacketHandler DI_GS_rp_tlm_packet_handler_; const DI_GS_TlmPacketHandler* const DI_GS_rp_tlm_packet_handler = &DI_GS_rp_tlm_packet_handler_; // バッファ @@ -80,70 +80,70 @@ static RESULT DI_GS_init_(void) return RESULT_OK; } -AppInfo DI_GS_cmd_packet_handler(void) +AppInfo DI_GS_cmd_packet_handler_app(void) { - return AI_create_app_info("GS_CMD", DI_GS_cmd_packet_handler_init_, DI_GS_cmd_packet_handler_); + return AI_create_app_info("GS_CMD", DI_GS_cmd_packet_handler_app_init_, DI_GS_cmd_packet_handler_app_); } -AppInfo DI_GS_mst_packet_handler(void) +AppInfo DI_GS_rt_tlm_packet_handler_app(void) { - return AI_create_app_info("GS_MST", DI_GS_mst_packet_handler_init_, DI_GS_mst_packet_handler_); + return AI_create_app_info("GS_RT_TLM", DI_GS_rt_tlm_packet_handler_app_init_, DI_GS_rt_tlm_packet_handler_app_); } -AppInfo DI_GS_rpt_packet_handler(void) +AppInfo DI_GS_rp_tlm_packet_handler_app(void) { - return AI_create_app_info("GS_RPT", DI_GS_rpt_packet_handler_init_, DI_GS_rpt_packet_handler_); + return AI_create_app_info("GS_RP_TLM", DI_GS_rp_tlm_packet_handler_app_init_, DI_GS_rp_tlm_packet_handler_app_); } -static void DI_GS_cmd_packet_handler_init_(void) +static void DI_GS_cmd_packet_handler_app_init_(void) { DI_GS_init_(); } -static void DI_GS_cmd_packet_handler_(void) +static void DI_GS_cmd_packet_handler_app_(void) { GS_rec_tctf(&gs_driver_); // TODO: エラー処理 } -static void DI_GS_mst_packet_handler_init_(void) +static void DI_GS_rt_tlm_packet_handler_app_init_(void) { - T2M_initialize(&DI_GS_ms_tlm_packet_handler_.tc_packet_to_m_pdu); + T2M_initialize(&DI_GS_rt_tlm_packet_handler_.tc_packet_to_m_pdu); } -static void DI_GS_mst_packet_handler_(void) +static void DI_GS_rt_tlm_packet_handler_app_(void) { int i; // 本当なら max(今の FIFO の空き, 残り時間で実行可能な数) とかしたい for (i = 0; i < CCSDS_FIFO_SIZE; ++i) { - T2M_ACK ack = T2M_form_m_pdu(&DI_GS_ms_tlm_packet_handler_.tc_packet_to_m_pdu, - &PH_ms_tlm_list, - &DI_GS_ms_tlm_packet_handler_.vcdu.m_pdu); + T2M_ACK ack = T2M_form_m_pdu(&DI_GS_rt_tlm_packet_handler_.tc_packet_to_m_pdu, + &PH_rt_tlm_list, + &DI_GS_rt_tlm_packet_handler_.vcdu.m_pdu); if (ack != T2M_SUCCESS) return; // Realtime VCDU カウンタの設定 - VCDU_setup_realtime_vcdu_hdr(&DI_GS_ms_tlm_packet_handler_.vcdu, DI_GS_ms_tlm_packet_handler_.vcdu_counter); - DI_GS_ms_tlm_packet_handler_.vcdu_counter = VCDU_calc_next_counter(DI_GS_ms_tlm_packet_handler_.vcdu_counter); + VCDU_setup_realtime_vcdu_hdr(&DI_GS_rt_tlm_packet_handler_.vcdu, DI_GS_rt_tlm_packet_handler_.vcdu_counter); + DI_GS_rt_tlm_packet_handler_.vcdu_counter = VCDU_calc_next_counter(DI_GS_rt_tlm_packet_handler_.vcdu_counter); // CLCW の設定 // CMD の VCID と TLM の VCID は独立で関係がない // TLM の VCID 種別(Realtime, Replay)によらず CLCW を設定して良い // CLCW が対応する CMD の VCID は CLCW の内部で指定される - VCDU_set_clcw(&DI_GS_ms_tlm_packet_handler_.vcdu, GS_form_clcw()); + VCDU_set_clcw(&DI_GS_rt_tlm_packet_handler_.vcdu, GS_form_clcw()); - // 完成した VCDU を MS VCDU として送出 - GS_send_vcdu(&gs_driver_, &DI_GS_ms_tlm_packet_handler_.vcdu); + // 完成した VCDU を RT VCDU として送出 + GS_send_vcdu(&gs_driver_, &DI_GS_rt_tlm_packet_handler_.vcdu); } } -static void DI_GS_rpt_packet_handler_init_(void) +static void DI_GS_rp_tlm_packet_handler_app_init_(void) { T2M_initialize(&DI_GS_rp_tlm_packet_handler_.tc_packet_to_m_pdu); } -static void DI_GS_rpt_packet_handler_(void) +static void DI_GS_rp_tlm_packet_handler_app_(void) { int i; @@ -183,12 +183,12 @@ CCP_CmdRet Cmd_DI_GS_DRIVER_RESET(const CommonCmdPacket* packet) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } -CCP_CmdRet Cmd_DI_GS_SET_MS_FLUSH_INTERVAL(const CommonCmdPacket* packet) +CCP_CmdRet Cmd_DI_GS_SET_RT_FLUSH_INTERVAL(const CommonCmdPacket* packet) { cycle_t flush_interval; ENDIAN_memcpy(&flush_interval, CCP_get_param_head(packet), sizeof(cycle_t)); - DI_GS_set_t2m_flush_interval_(flush_interval, &DI_GS_ms_tlm_packet_handler_); + DI_GS_set_t2m_flush_interval_(flush_interval, &DI_GS_rt_tlm_packet_handler_); return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } diff --git a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.h b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.h index 035a494ae..06cee4e9d 100644 --- a/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.h +++ b/Examples/minimum_user/src/src_user/Applications/DriverInstances/di_gs.h @@ -24,17 +24,17 @@ typedef struct } DI_GS_TlmPacketHandler; extern const GS_Driver* const gs_driver; -extern const DI_GS_TlmPacketHandler* const DI_GS_ms_tlm_packet_handler; +extern const DI_GS_TlmPacketHandler* const DI_GS_rt_tlm_packet_handler; extern const DI_GS_TlmPacketHandler* const DI_GS_rp_tlm_packet_handler; // 以下インスタンス化 -AppInfo DI_GS_cmd_packet_handler(void); +AppInfo DI_GS_cmd_packet_handler_app(void); -AppInfo DI_GS_mst_packet_handler(void); -AppInfo DI_GS_rpt_packet_handler(void); +AppInfo DI_GS_rt_tlm_packet_handler_app(void); +AppInfo DI_GS_rp_tlm_packet_handler_app(void); CCP_CmdRet Cmd_DI_GS_DRIVER_RESET(const CommonCmdPacket* packet); -CCP_CmdRet Cmd_DI_GS_SET_MS_FLUSH_INTERVAL(const CommonCmdPacket* packet); +CCP_CmdRet Cmd_DI_GS_SET_RT_FLUSH_INTERVAL(const CommonCmdPacket* packet); CCP_CmdRet Cmd_DI_GS_SET_RP_FLUSH_INTERVAL(const CommonCmdPacket* packet); CCP_CmdRet Cmd_DI_GS_SET_FARM_PW(const CommonCmdPacket* packet); CCP_CmdRet Cmd_DI_GS_SET_INFO(const CommonCmdPacket* packet); diff --git a/Examples/minimum_user/src/src_user/Applications/UserDefined/debug_apps.c b/Examples/minimum_user/src/src_user/Applications/UserDefined/debug_apps.c index a05338e20..f0954720d 100644 --- a/Examples/minimum_user/src/src_user/Applications/UserDefined/debug_apps.c +++ b/Examples/minimum_user/src/src_user/Applications/UserDefined/debug_apps.c @@ -4,6 +4,7 @@ #include // for NULL #include +#include #include #include #include @@ -19,7 +20,6 @@ #include #include "../../Applications/DriverInstances/di_gs.h" // #include -#include "../../Library/git_revision.h" #include "../../Library/vt100.h" void APP_DBG_flush_screen_(void); diff --git a/Examples/minimum_user/src/src_user/Applications/app_registry.c b/Examples/minimum_user/src/src_user/Applications/app_registry.c index c4490ff11..39934fd8e 100644 --- a/Examples/minimum_user/src/src_user/Applications/app_registry.c +++ b/Examples/minimum_user/src/src_user/Applications/app_registry.c @@ -11,9 +11,9 @@ static AM_ACK add_application_(size_t id, void AR_load_initial_settings(void) { add_application_(AR_NOP, NOP_create_app); - add_application_(AR_DI_GS_CMD_PH, DI_GS_cmd_packet_handler); - add_application_(AR_DI_GS_MST_PH, DI_GS_mst_packet_handler); - add_application_(AR_DI_GS_RPT_PH, DI_GS_rpt_packet_handler); + add_application_(AR_DI_GS_CMD_PH, DI_GS_cmd_packet_handler_app); + add_application_(AR_DI_GS_RT_TLM_PH, DI_GS_rt_tlm_packet_handler_app); + add_application_(AR_DI_GS_RP_TLM_PH, DI_GS_rp_tlm_packet_handler_app); add_application_(AR_DI_UART_TEST, UART_TEST_update); add_application_(AR_GSC_DISPATCHER, GSCD_create_app); add_application_(AR_RTC_DISPATCHER, RTCD_create_app); diff --git a/Examples/minimum_user/src/src_user/Applications/app_registry.h b/Examples/minimum_user/src/src_user/Applications/app_registry.h index 19cf9d451..e54aebcf7 100644 --- a/Examples/minimum_user/src/src_user/Applications/app_registry.h +++ b/Examples/minimum_user/src/src_user/Applications/app_registry.h @@ -7,8 +7,8 @@ typedef enum { AR_NOP, AR_DI_GS_CMD_PH, - AR_DI_GS_MST_PH, - AR_DI_GS_RPT_PH, + AR_DI_GS_RT_TLM_PH, + AR_DI_GS_RP_TLM_PH, AR_DI_AOBC, AR_DI_AOBC_CDIS, AR_DI_UART_TEST, diff --git a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc.c b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc.c index 0d7d00581..449bcecd2 100644 --- a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc.c +++ b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc.c @@ -140,13 +140,23 @@ DS_CMD_ERR_CODE AOBC_send_cmd(AOBC_Driver* aobc_driver, const CommonCmdPacket* p // [TODO] ここではコマンドが実際に存在するか,ということはフィルタしない!(でいいよね?) // 必要があれば,AOBC 側で弾くべき. - if (cmd_code == AOBC_Cmd_CODE_GENERATE_TLM) + + switch (cmd_code) { + case AOBC_Cmd_CODE_GENERATE_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_GENERATE_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_GENERATE_HP_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_GENERATE_RT_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_GENERATE_ST_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_FORWARD_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_FORWARD_AS_HP_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_FORWARD_AS_RT_TLM: // FALLTHROUGH + case AOBC_Cmd_CODE_TG_FORWARD_AS_ST_TLM: ret = DS_send_req_tlm_cmd(&(aobc_driver->driver.super), AOBC_STREAM_TLM_CMD); - } - else - { + break; + default: ret = DS_send_general_cmd(&(aobc_driver->driver.super), AOBC_STREAM_TLM_CMD); + break; } if (ret == DS_ERR_CODE_OK) diff --git a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_command_definitions.h b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_command_definitions.h index c4fbac7e3..634478d33 100644 --- a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_command_definitions.h +++ b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_command_definitions.h @@ -35,81 +35,89 @@ typedef enum AOBC_Cmd_CODE_TLCD_SET_ID_FOR_TLM = 0x0018, AOBC_Cmd_CODE_TLCD_SET_PAGE_FOR_TLM = 0x0019, AOBC_Cmd_CODE_GENERATE_TLM = 0x001A, - AOBC_Cmd_CODE_BCT_CLEAR_BLOCK = 0x001B, - AOBC_Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x001C, - AOBC_Cmd_CODE_BCT_COPY_BCT = 0x001D, - AOBC_Cmd_CODE_BCT_OVERWRITE_CMD = 0x001E, - AOBC_Cmd_CODE_BCT_FILL_NOP = 0x001F, - AOBC_Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0020, - AOBC_Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0021, - AOBC_Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x0022, - AOBC_Cmd_CODE_BCE_ROTATE_BLOCK = 0x0023, - AOBC_Cmd_CODE_BCE_COMBINE_BLOCK = 0x0024, - AOBC_Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x0025, - AOBC_Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x0026, - AOBC_Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x0027, - AOBC_Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0028, - AOBC_Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0029, - AOBC_Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x002A, - AOBC_Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x002B, - AOBC_Cmd_CODE_EL_INIT = 0x002C, - AOBC_Cmd_CODE_EL_CLEAR_LOG_ALL = 0x002D, - AOBC_Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x002E, - AOBC_Cmd_CODE_EL_CLEAR_STATISTICS = 0x002F, - AOBC_Cmd_CODE_EL_CLEAR_TLOG = 0x0030, - AOBC_Cmd_CODE_EL_CLEAR_CLOG = 0x0031, - AOBC_Cmd_CODE_EL_RECORD_EVENT = 0x0032, - AOBC_Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x0033, - AOBC_Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x0034, - AOBC_Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x0035, - AOBC_Cmd_CODE_EL_ENABLE_LOGGING = 0x0036, - AOBC_Cmd_CODE_EL_DISABLE_LOGGING = 0x0037, - AOBC_Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x0038, - AOBC_Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x0039, - AOBC_Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x003A, - AOBC_Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x003B, - AOBC_Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x003C, - AOBC_Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x003D, - AOBC_Cmd_CODE_EH_INIT = 0x003E, - AOBC_Cmd_CODE_EH_CLEAR_ALL_RULE = 0x003F, - AOBC_Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x0040, - AOBC_Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x0041, - AOBC_Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x0042, - AOBC_Cmd_CODE_EH_REGISTER_RULE = 0x0043, - AOBC_Cmd_CODE_EH_DELETE_RULE = 0x0044, - AOBC_Cmd_CODE_EH_INIT_RULE = 0x0045, - AOBC_Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x0046, - AOBC_Cmd_CODE_EH_ACTIVATE_RULE = 0x0047, - AOBC_Cmd_CODE_EH_INACTIVATE_RULE = 0x0048, - AOBC_Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0049, - AOBC_Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x004A, - AOBC_Cmd_CODE_EH_SET_RULE_COUNTER = 0x004B, - AOBC_Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x004C, - AOBC_Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x004D, - AOBC_Cmd_CODE_EH_CLEAR_LOG = 0x004E, - AOBC_Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x004F, - AOBC_Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x0050, - AOBC_Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x0051, - AOBC_Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x0052, - AOBC_Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x0053, - AOBC_Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x0054, - AOBC_Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x0055, - AOBC_Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x0056, - AOBC_Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x0057, - AOBC_Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0058, - AOBC_Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x0059, - AOBC_Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x005A, - AOBC_Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005B, - AOBC_Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005C, - AOBC_Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x005D, - AOBC_Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x005E, - AOBC_Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x005F, - AOBC_Cmd_CODE_TF_INIT = 0x0060, - AOBC_Cmd_CODE_CA_INIT = 0x0061, - AOBC_Cmd_CODE_TF_REGISTER_TLM = 0x0062, - AOBC_Cmd_CODE_CA_REGISTER_CMD = 0x0063, - AOBC_Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x0064, - AOBC_Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x0065, + AOBC_Cmd_CODE_TG_GENERATE_TLM = 0x001B, + AOBC_Cmd_CODE_TG_GENERATE_HP_TLM = 0x001C, + AOBC_Cmd_CODE_TG_GENERATE_RT_TLM = 0x001D, + AOBC_Cmd_CODE_TG_GENERATE_ST_TLM = 0x001E, + AOBC_Cmd_CODE_TG_FORWARD_TLM = 0x001F, + AOBC_Cmd_CODE_TG_FORWARD_AS_HP_TLM = 0x0020, + AOBC_Cmd_CODE_TG_FORWARD_AS_RT_TLM = 0x0021, + AOBC_Cmd_CODE_TG_FORWARD_AS_ST_TLM = 0x0022, + AOBC_Cmd_CODE_BCT_CLEAR_BLOCK = 0x0023, + AOBC_Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x0024, + AOBC_Cmd_CODE_BCT_COPY_BCT = 0x0025, + AOBC_Cmd_CODE_BCT_OVERWRITE_CMD = 0x0026, + AOBC_Cmd_CODE_BCT_FILL_NOP = 0x0027, + AOBC_Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0028, + AOBC_Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0029, + AOBC_Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x002A, + AOBC_Cmd_CODE_BCE_ROTATE_BLOCK = 0x002B, + AOBC_Cmd_CODE_BCE_COMBINE_BLOCK = 0x002C, + AOBC_Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x002D, + AOBC_Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x002E, + AOBC_Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x002F, + AOBC_Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0030, + AOBC_Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0031, + AOBC_Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x0032, + AOBC_Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x0033, + AOBC_Cmd_CODE_EL_INIT = 0x0034, + AOBC_Cmd_CODE_EL_CLEAR_LOG_ALL = 0x0035, + AOBC_Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x0036, + AOBC_Cmd_CODE_EL_CLEAR_STATISTICS = 0x0037, + AOBC_Cmd_CODE_EL_CLEAR_TLOG = 0x0038, + AOBC_Cmd_CODE_EL_CLEAR_CLOG = 0x0039, + AOBC_Cmd_CODE_EL_RECORD_EVENT = 0x003A, + AOBC_Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x003B, + AOBC_Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x003C, + AOBC_Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x003D, + AOBC_Cmd_CODE_EL_ENABLE_LOGGING = 0x003E, + AOBC_Cmd_CODE_EL_DISABLE_LOGGING = 0x003F, + AOBC_Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x0040, + AOBC_Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x0041, + AOBC_Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x0042, + AOBC_Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x0043, + AOBC_Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x0044, + AOBC_Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x0045, + AOBC_Cmd_CODE_EH_INIT = 0x0046, + AOBC_Cmd_CODE_EH_CLEAR_ALL_RULE = 0x0047, + AOBC_Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x0048, + AOBC_Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x0049, + AOBC_Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x004A, + AOBC_Cmd_CODE_EH_REGISTER_RULE = 0x004B, + AOBC_Cmd_CODE_EH_DELETE_RULE = 0x004C, + AOBC_Cmd_CODE_EH_INIT_RULE = 0x004D, + AOBC_Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x004E, + AOBC_Cmd_CODE_EH_ACTIVATE_RULE = 0x004F, + AOBC_Cmd_CODE_EH_INACTIVATE_RULE = 0x0050, + AOBC_Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0051, + AOBC_Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0052, + AOBC_Cmd_CODE_EH_SET_RULE_COUNTER = 0x0053, + AOBC_Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x0054, + AOBC_Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x0055, + AOBC_Cmd_CODE_EH_CLEAR_LOG = 0x0056, + AOBC_Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x0057, + AOBC_Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x0058, + AOBC_Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x0059, + AOBC_Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x005A, + AOBC_Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x005B, + AOBC_Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x005C, + AOBC_Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x005D, + AOBC_Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x005E, + AOBC_Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x005F, + AOBC_Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0060, + AOBC_Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x0061, + AOBC_Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x0062, + AOBC_Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0063, + AOBC_Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0064, + AOBC_Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x0065, + AOBC_Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x0066, + AOBC_Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x0067, + AOBC_Cmd_CODE_TF_INIT = 0x0068, + AOBC_Cmd_CODE_CA_INIT = 0x0069, + AOBC_Cmd_CODE_TF_REGISTER_TLM = 0x006A, + AOBC_Cmd_CODE_CA_REGISTER_CMD = 0x006B, + AOBC_Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x006C, + AOBC_Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x006D, AOBC_Cmd_CODE_WDT_INIT = 0x0100, AOBC_Cmd_CODE_WDT_ENABLE = 0x0101, AOBC_Cmd_CODE_WDT_DISABLE = 0x0102, diff --git a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c index 8606e4ad9..497672443 100644 --- a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c +++ b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_buffer.c @@ -178,8 +178,8 @@ static DS_ERR_CODE AOBC_analyze_tlm_aobc_aobc_(const CommonTlmPacket* packet, AO ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_cmd_ptr), &(f[240]), 1); ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_regd_time), &(f[241]), 4); ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.bct_regd_id), &(f[245]), 2); - ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_tlm_counter), &(f[247]), 4); - ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.ms_tlm_queued), &(f[251]), 1); + ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_tlm_counter), &(f[247]), 4); + ENDIAN_memcpy(&(aobc_driver->tlm_data.aobc_aobc.rt_tlm_queued), &(f[251]), 1); // TODO: ビットフィールドをつかっている系は,様々なパターンがあり得るので,今後,バグが出ないか注視する // ワーニング回避 diff --git a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h index f598b8ef9..ec28581fe 100644 --- a/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h +++ b/Examples/minimum_user/src/src_user/Drivers/Aocs/aobc_telemetry_data_definitions.h @@ -165,8 +165,8 @@ typedef struct uint8_t bct_cmd_ptr; uint32_t bct_regd_time; uint16_t bct_regd_id; - uint32_t ms_tlm_counter; - uint8_t ms_tlm_queued; + uint32_t rt_tlm_counter; + uint8_t rt_tlm_queued; } aobc_aobc; struct { diff --git a/Examples/minimum_user/src/src_user/IfWrapper/CMakeLists.txt b/Examples/minimum_user/src/src_user/IfWrapper/CMakeLists.txt index bd5328f01..7412ef457 100644 --- a/Examples/minimum_user/src/src_user/IfWrapper/CMakeLists.txt +++ b/Examples/minimum_user/src/src_user/IfWrapper/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.13) project(C2A_USER_IF_WRAPPER) -set(C2A_SRCS +set(C2A_COMMON_SRCS if_list.c ) @@ -11,7 +11,7 @@ if(USE_SILS_MOCKUP) message("USE SILS_MOCKUP") #target_sources(${PROJECT_NAME} PRIVATE - list(APPEND C2A_SRCS + set(C2A_IF_IMPL_SRCS SilsMockup/ccsds_sils.c SilsMockup/i2c_sils.c SilsMockup/uart_sils.c @@ -19,32 +19,43 @@ if(USE_SILS_MOCKUP) ) else() #target_sources(${PROJECT_NAME} PUBLIC - list(APPEND C2A_SRCS + set(C2A_IF_IMPL_COMMON_SRCS Sils/ccsds_sils.cpp Sils/i2c_sils.cpp Sils/uart_sils.cpp Sils/wdt_sils.cpp ) -endif() -if(USE_SCI_COM_WINGS AND NOT USE_SILS_MOCKUP) - add_definitions(-DUSE_SCI_COM_WINGS) - #target_sources(${PROJECT_NAME} PUBLIC - list(APPEND C2A_SRCS - Sils/ccsds_sils_sci_if.cpp - ) - message("USE SCI_COM_WINGS") -endif() + if(USE_SCI_COM_WINGS) + add_definitions(-DUSE_SCI_COM_WINGS) + #target_sources(${PROJECT_NAME} PUBLIC + set(C2A_IF_COM_WINGS_SRCS + Sils/ccsds_sils_sci_if.cpp + ) + message("USE SCI_COM_WINGS") + endif() -if(USE_SCI_COM_UART AND NOT USE_SILS_MOCKUP) - add_definitions(-DUSE_SCI_COM_UART) - #target_sources(${PROJECT_NAME} PUBLIC - list(APPEND C2A_SRCS - Sils/uart_sils_sci_if.cpp + if(USE_SCI_COM_UART) + add_definitions(-DUSE_SCI_COM_UART) + #target_sources(${PROJECT_NAME} PUBLIC + set(C2A_IF_COM_UART_SRCS + Sils/uart_sils_sci_if.cpp + ) + message("USE SCI_COM_UART") + endif() + + set(C2A_IF_IMPL_SRCS + ${C2A_IF_IMPL_COMMON_SRCS} + ${C2A_IF_COM_WINGS_SRCS} + ${C2A_IF_COM_UART_SRCS} ) - message("USE SCI_COM_UART") endif() +set(C2A_SRCS + ${C2A_COMMON_SRCS} + ${C2A_IF_IMPL_SRCS} +) + if(BUILD_C2A_AS_CXX) set_source_files_properties(${C2A_SRCS} PROPERTIES LANGUAGE CXX) # C++ endif() diff --git a/Examples/minimum_user/src/src_user/Library/CMakeLists.txt b/Examples/minimum_user/src/src_user/Library/CMakeLists.txt index 82e7c6f03..7b98581d7 100644 --- a/Examples/minimum_user/src/src_user/Library/CMakeLists.txt +++ b/Examples/minimum_user/src/src_user/Library/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.13) project(C2A_USER_LIB) set(C2A_SRCS - git_revision.c print.c vt100.c ) diff --git a/Examples/minimum_user/src/src_user/Library/git_revision.c b/Examples/minimum_user/src/src_user/Library/git_revision.c deleted file mode 100644 index 6ef1c0e56..000000000 --- a/Examples/minimum_user/src/src_user/Library/git_revision.c +++ /dev/null @@ -1,14 +0,0 @@ -#pragma section REPRO -/** - * @file - * @brief git revisionをコードに埋め込む - */ - -#include "git_revision.h" - -const char GIT_REV_CORE[41] = "0000000000000000000000000000000000000000"; -const uint32_t GIT_REV_CORE_SHORT = 0x0000000; -const char GIT_REV_USER[41] = "0000000000000000000000000000000000000000"; -const uint32_t GIT_REV_USER_SHORT = 0x0000000; - -#pragma section diff --git a/Examples/minimum_user/src/src_user/Library/git_revision.h b/Examples/minimum_user/src/src_user/Library/git_revision.h deleted file mode 100644 index 9da4eabed..000000000 --- a/Examples/minimum_user/src/src_user/Library/git_revision.h +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @file - * @brief git revisionをコードに埋め込む - */ -#ifndef GIT_REVISION_H_ -#define GIT_REVISION_H_ - -#include - -extern const char GIT_REV_CORE[41]; -extern const uint32_t GIT_REV_CORE_SHORT; -extern const char GIT_REV_USER[41]; -extern const uint32_t GIT_REV_USER_SHORT; - -#endif // GIT_REVISION_H_ diff --git a/Examples/minimum_user/src/src_user/Script/Git/revision.bat b/Examples/minimum_user/src/src_user/Script/Git/revision.bat new file mode 100644 index 000000000..507ccd499 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Script/Git/revision.bat @@ -0,0 +1,32 @@ +@ECHO OFF +REM generate C header for Git revision + +REM current directoryɈړ(src_user/Script/Git) +cd /d %~dp0 + +REM src_userɈړ +cd ..\.. + +for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_user=%%a +for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_user_short=%%a + +REM cd ..\..\src_core + +REM generate header +REM MEMO: ̃qAhLgǂ̏winecmd.exe(Windows 6.1.7601)ƓȂH +( +echo.#ifndef GIT_REVISION_CONFIG_H_ +echo.#define GIT_REVISION_CONFIG_H_ +echo. +echo./* This file is generated by src_user/Script/Git/revision.bat */ +echo.#define C2A_GIT_REVISION_GENERATED +echo. +call ..\src_core\Script\Git\revision.bat +echo.#define GIT_REVISION_C2A_USER "%git_rev_user%" +echo.#define GIT_REVISION_C2A_USER_SHORT 0x%git_rev_user_short% +echo. +echo.#endif // GIT_REVISION_CONFIG_H_ +) > Settings\git_revision_config.h + +REM current directoryɈړ(src_user/Script/Git) +cd /d %~dp0 diff --git a/Examples/minimum_user/src/src_user/Script/Git/revision.sh b/Examples/minimum_user/src/src_user/Script/Git/revision.sh new file mode 100755 index 000000000..2b1d63ae8 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Script/Git/revision.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# generate C header for Git revision + +cd $(dirname $0) # src/src_user/Script/Git +cd ../../ # src/src_user + +# get core revision +git_revs_core=$(../src_core/Script/Git/revision.sh) + +git_rev_user=$(git log --pretty=format:%H -1) +git_rev_user_short=$(git log --pretty=format:%h -1) + +tee Settings/git_revision_config.h << EOS +#ifndef GIT_REVISION_CONFIG_H_ +#define GIT_REVISION_CONFIG_H_ + +/* This file is generated by src_user/Script/Git/revision.sh */ +#define C2A_GIT_REVISION_GENERATED + +${git_revs_core} +#define GIT_REVISION_C2A_USER "${git_rev_user}" +#define GIT_REVISION_C2A_USER_SHORT 0x${git_rev_user_short} + +#endif // GIT_REVISION_CONFIG_H_ +EOS diff --git a/Examples/minimum_user/src/src_user/Script/git_revision.bat b/Examples/minimum_user/src/src_user/Script/git_revision.bat deleted file mode 100644 index 99aab22ee..000000000 --- a/Examples/minimum_user/src/src_user/Script/git_revision.bat +++ /dev/null @@ -1,29 +0,0 @@ -@ECHO OFF - -REM @brief git revision ߍ - -REM current directoryɈړ -cd /d %~dp0 - -for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_user=%%a -for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_user_short=%%a - -cd ..\..\src_core - -for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_core=%%a -for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_core_short=%%a - -cd ..\src_user\Script - -if exist ..\Library\git_revision.c del ..\Library\git_revision.c - -setlocal EnableDelayedExpansion -for /f "delims=" %%a in (git_revision.tmp) do ( - set line=%%a - set line=!line:git_rev_core_hash=%git_rev_core%! - set line=!line:git_rev_core_short_hash=%git_rev_core_short%! - set line=!line:git_rev_user_hash=%git_rev_user%! - set line=!line:git_rev_user_short_hash=%git_rev_user_short%! - echo !line! >> ..\Library\git_revision.c -) -endlocal diff --git a/Examples/minimum_user/src/src_user/Script/git_revision.sh b/Examples/minimum_user/src/src_user/Script/git_revision.sh deleted file mode 100755 index 756a5f338..000000000 --- a/Examples/minimum_user/src/src_user/Script/git_revision.sh +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh - -# @brief git revision 埋め込み - -# current directoryに移動 -cd `dirname $0` - -git_rev_user=$(git log --pretty=format:%H -1) -git_rev_user_short=$(git log --pretty=format:%h -1) - -cd ../../src_core - -git_rev_core=$(git log --pretty=format:%H -1) -git_rev_core_short=$(git log --pretty=format:%h -1) - -cd ../src_user/Script - -sed -e s/git_rev_core_hash/${git_rev_core}/ -e s/git_rev_core_short_hash/${git_rev_core_short}/ -e s/git_rev_core_short_hash/${git_rev_core_short}/ -e s/git_rev_user_hash/${git_rev_user}/ -e s/git_rev_user_short_hash/${git_rev_user_short}/ git_revision.tmp > ../Library/git_revision.c diff --git a/Examples/minimum_user/src/src_user/Script/git_revision.tmp b/Examples/minimum_user/src/src_user/Script/git_revision.tmp deleted file mode 100644 index a5a66bbe5..000000000 --- a/Examples/minimum_user/src/src_user/Script/git_revision.tmp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma section REPRO -/** - * @file - * @brief git revisionをコードに埋め込む - */ - -#include "git_revision.h" - -const char GIT_REV_CORE[41] = "git_rev_core_hash"; -const uint32_t GIT_REV_CORE_SHORT = 0xgit_rev_core_short_hash; -const char GIT_REV_USER[41] = "git_rev_user_hash"; -const uint32_t GIT_REV_USER_SHORT = 0xgit_rev_user_short_hash; - -#pragma section diff --git a/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_define.h b/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_define.h new file mode 100644 index 000000000..3fc079619 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_define.h @@ -0,0 +1,12 @@ +/** + * @file + * @brief Telemetry Manager の各種定義 + */ +#ifndef TELEMETRY_MANAGER_DEFINE_H_ +#define TELEMETRY_MANAGER_DEFINE_H_ + +// 将来的に DR は C2A Core App に移植される予定 +// DR 再生コマンドは Cmd_DR_REPLAY_TLM を仮定 +// #define TLM_MGR_ENABLE_DR_REPLAY_TLM //!< Telemetry Manager にて Cmd_DR_REPLAY_TLM を有効にするかどうか + +#endif diff --git a/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_params.h b/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_params.h new file mode 100644 index 000000000..16c5b0373 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/Applications/telemetry_manager_params.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief Telemetry Manager のパラメタのオーバーライド用ヘッダー + */ +#ifndef TELEMETRY_MANAGER_PARAMS_H_ +#define TELEMETRY_MANAGER_PARAMS_H_ + +#undef TLM_MGR_BC_ROLE_AT_BC_0 +#undef TLM_MGR_BC_ROLE_AT_BC_1 +#undef TLM_MGR_BC_ROLE_AT_BC_2 +#undef TLM_MGR_BC_ROLE_AT_BC_3 +#undef TLM_MGR_BC_ROLE_AT_BC_4 +#undef TLM_MGR_BC_ROLE_AT_BC_5 +#undef TLM_MGR_BC_ROLE_AT_BC_6 +#undef TLM_MGR_BC_ROLE_AT_BC_7 +#undef TLM_MGR_BC_ROLE_AT_BC_8 +#undef TLM_MGR_BC_ROLE_AT_BC_9 + +#define TLM_MGR_BC_ROLE_AT_BC_0 (TLM_MGR_BC_ROLE_HK_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_1 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_2 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_3 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_4 (TLM_MGR_BC_ROLE_LOW_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_5 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_6 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_7 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_8 (TLM_MGR_BC_ROLE_HIGH_FREQ_TLM) +#define TLM_MGR_BC_ROLE_AT_BC_9 (TLM_MGR_BC_ROLE_LOW_FREQ_TLM) + +#endif diff --git a/Examples/minimum_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c b/Examples/minimum_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c index cfa9aa0e1..c5c5740ab 100644 --- a/Examples/minimum_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c +++ b/Examples/minimum_user/src/src_user/Settings/Modes/TaskLists/Elements/tl_elem_tlm_cmd_hirate.c @@ -12,8 +12,8 @@ void BCL_load_tl_elem_tlm_cmd_hirate(void) BCL_tool_register_app (0, AR_RTC_DISPATCHER); BCL_tool_register_app (1, AR_TLC_DISPATCHER_BC); BCL_tool_register_app (2, AR_TLC_DISPATCHER_TLM); - BCL_tool_register_app (3, AR_DI_GS_MST_PH); - BCL_tool_register_app (4, AR_DI_GS_RPT_PH); + BCL_tool_register_app (3, AR_DI_GS_RT_TLM_PH); + BCL_tool_register_app (4, AR_DI_GS_RP_TLM_PH); #ifdef TLCD_ENABLE_MISSION_TL BCL_tool_register_app (5, AR_TLC_DISPATCHER_MIS); #endif diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c b/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c index 06db3e0fe..57afc6e33 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.c @@ -27,18 +27,4 @@ APID APID_get_apid_from_uint16(uint16_t apid) } } -int APID_is_other_obc_tlm_apid(APID apid) -{ - switch (apid) - { - // FIXME: 2nd obc の場合は変更しなければいけないが, https://github.com/ut-issl/c2a-core/issues/489 で消えるので一旦このまま - case APID_AOBC_TLM: // FALLTHROUGH - case APID_TOBC_TLM: - return 1; - - default: - return 0; - } -} - #pragma section diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h b/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h index f715fe5e3..c2a6d24b0 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/Ccsds/apid_define.h @@ -36,13 +36,4 @@ typedef enum */ APID APID_get_apid_from_uint16(uint16_t apid); -/** - * @brief 入力した APID が他の OBC で生成された TLM の APID かどうか - * @param apid: APID - * @note 不正な APID は 0 を返す - * @retval 1: 他 OBC で生成された TLM の APID - * @retval 0: それ以外の APID - */ -int APID_is_other_obc_tlm_apid(APID apid); - #endif diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops index f8906ea1c..61accf1c7 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMDFILE/sample.ops @@ -5,40 +5,40 @@ .# ======================================= # NOP # ======================================= -.MOBC_RT.Cmd_NOP +.MOBC_RT.NOP .# .# .# ======================================= # テレメダウンリンク # ======================================= -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x00 1 # MOBC -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x56 1 # EL -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x5a 1 # EH -.MOBC_RT.Cmd_GENERATE_TLM 0x40 0x46 1 # App Time +.MOBC_RT.TG_GENERATE_RT_TLM 0x00 # MOBC +.MOBC_RT.TG_GENERATE_RT_TLM 0x56 # EL +.MOBC_RT.TG_GENERATE_RT_TLM 0x5a # EH +.MOBC_RT.TG_GENERATE_RT_TLM 0x46 # App Time .# .# .# ======================================= # 定期的なテレメダウンリンク # ======================================= -.MOBC_RT.Cmd_BCT_CLEAR_BLOCK 77 # BCT 77 を使用 +.MOBC_RT.BCT_CLEAR_BLOCK 77 # BCT 77 を使用 wait_sec 1 - MOBC_BL.Cmd_GENERATE_TLM 1 0x40 0xf0 1 # HK + MOBC_BL.TG_GENERATE_RT_TLM 1 0xf0 # HK wait_sec 1 - MOBC_BL.Cmd_GENERATE_TLM 3 0x40 0x56 1 # EL + MOBC_BL.TG_GENERATE_RT_TLM 3 0x56 # EL wait_sec 1 - MOBC_BL.Cmd_TLCD_DEPLOY_BLOCK 10 2 77 + MOBC_BL.TLCD_DEPLOY_BLOCK 10 2 77 wait_sec 1 - MOBC_RT.Cmd_BCE_ACTIVATE_BLOCK + MOBC_RT.BCE_ACTIVATE_BLOCK wait_sec 1 - MOBC_RT.Cmd_TLCD_CLEAR_ALL_TIMELINE 2 + MOBC_RT.TLCD_CLEAR_ALL_TIMELINE 2 wait_sec 1 # BCを展開し,TLM出力開始 - MOBC_RT.Cmd_TLCD_DEPLOY_BLOCK 2 77 + MOBC_RT.TLCD_DEPLOY_BLOCK 2 77 .# .# .# ======================================= # イベント登録 # ======================================= -.MOBC_RT.Cmd_EL_RECORD_EVENT 255 1 0 0 -.MOBC_RT.Cmd_EL_RECORD_EVENT 255 2 1 0 -.MOBC_RT.Cmd_EL_RECORD_EVENT 255 3 2 1 +.MOBC_RT.EL_RECORD_EVENT 255 1 0 0 +.MOBC_RT.EL_RECORD_EVENT 255 2 1 0 +.MOBC_RT.EL_RECORD_EVENT 255 3 2 1 diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_BCT.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_BCT.csv index b82f29f6e..b12a61871 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_BCT.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_BCT.csv @@ -25,16 +25,18 @@ Comment,Name,ShortName,BCID,エイリアス,,,,,Danger Flag,Description,Note *,C2Aでは使用しない,,,,,,,,,, **,==== 追加領域 ====,,,,,,,,,, **,Telemetry Manager,,,,,,,,,, -,BC_TLM_MGR0,,350,,,,,,,, -,BC_TLM_MGR1,,351,,,,,,,, -,BC_TLM_MGR2,,352,,,,,,,, -,BC_TLM_MGR3,,353,,,,,,,, -,BC_TLM_MGR4,,354,,,,,,,, -,BC_TLM_MGR5,,355,,,,,,,, -,BC_TLM_MGR6,,356,,,,,,,, -,BC_TLM_MGR7,,357,,,,,,,, -,BC_TLM_MGR8,,358,,,,,,,, -,BC_TLM_MGR9,,359,,,,,,,, +,BC_TLM_MGR_MASTER,,348,,,,,,,, +,BC_TLM_MGR_DEPLOY,,349,,,,,,,, +,BC_TLM_MGR_0,,350,,,,,,,, +,BC_TLM_MGR_1,,351,,,,,,,, +,BC_TLM_MGR_2,,352,,,,,,,, +,BC_TLM_MGR_3,,353,,,,,,,, +,BC_TLM_MGR_4,,354,,,,,,,, +,BC_TLM_MGR_5,,355,,,,,,,, +,BC_TLM_MGR_6,,356,,,,,,,, +,BC_TLM_MGR_7,,357,,,,,,,, +,BC_TLM_MGR_8,,358,,,,,,,, +,BC_TLM_MGR_9,,359,,,,,,,, **,Test,,,,,,,,,, ,BC_TEST_EH_RESPOND,,360,,,,,,,, ,BC_TEST_BCL,,361,,,,,,,, @@ -296,5 +298,3 @@ Comment,Name,ShortName,BCID,エイリアス,,,,,Danger Flag,Description,Note ,,,,,,,,,,, ,,,,,,,,,,, ,,,,,,,,,,, -,,,,,,,,,,, -,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv index 4dfdb9735..f4bcc11a1 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_MOBC_CMD_DB_CMD_DB.csv @@ -1,167 +1,182 @@ Component,Name,Target,Code,Params,,,,,,,,,,,,,Danger Flag,Is Restricted,Description,Note MOBC,,,,Num Params,Param1,,Param2,,Param3,,Param4,,Param5,,Param6,,,,, Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,Type,Description,,,, -*,Cmd_EXAMPLE,OBC,,2,uint32_t,address,int32_t,time [ms],,,,,,,,,,,例,引数の説明と単位を書くこと!(例:time [ms]) +*,EXAMPLE,OBC,,2,uint32_t,address,int32_t,time [ms],,,,,,,,,,,例,引数の説明と単位を書くこと!(例:time [ms]) * C2A_CORE,基幹機能コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_NOP,OBC,0x0000,0,,,,,,,,,,,,,,,ダミーコマンド, -,Cmd_TMGR_SET_TIME,OBC,0x0001,1,uint32_t,TI,,,,,,,,,,,,,MOBC時刻設定コマンド, -,Cmd_TMGR_UPDATE_UNIXTIME,OBC,0x0002,3,double,unixtime,uint32_t,total_cycle,uint32_t,step,,,,,,,,,MOBC UNIXTIME修正コマンド, -,Cmd_TMGR_SET_UTL_UNIXTIME_EPOCH,OBC,0x0003,1,double,ult_unixtime_epoch,,,,,,,,,,,,,UTL_cmdで用いるunixtimeの紀元を変更する,utl_unixtime_epoch [s] -,Cmd_TMGR_SET_CYCLE_CORRECTION,OBC,0x0004,1,double,cycle_correction,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を変更する@@ 初期値は1.0, -,Cmd_TMGR_RESET_CYCLE_CORRECTION,OBC,0x0005,0,,,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を1.0に初期化する, -,Cmd_TMGR_CLEAR_UNIXTIME_INFO,OBC,0x0006,0,,,,,,,,,,,,,,,unixtime_info_ を初期化する, -,Cmd_AM_REGISTER_APP,OBC,0x0007,3,uint32_t,app_id,uint32_t,init_ptr,uint32_t,entry_ptr,,,,,,,,,アプリ登録コマンド, -,Cmd_AM_INITIALIZE_APP,OBC,0x0008,1,uint32_t,app_id,,,,,,,,,,,,,アプリ初期化コマンド, -,Cmd_AM_EXECUTE_APP,OBC,0x0009,1,uint32_t,app_id,,,,,,,,,,,,,アプリ実行コマンド, -,Cmd_AM_SET_PAGE_FOR_TLM,OBC,0x000A,1,uint8_t,,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, -,Cmd_AM_CLEAR_APP_INFO,OBC,0x000B,0,,,,,,,,,,,,,danger,,アプリ実行時間計測の初期化, -,Cmd_MM_SET_MODE_LIST,OBC,0x000C,2,uint8_t,mode,uint16_t,bc_index,,,,,,,,,,,モード定義リスト設定コマンド, -,Cmd_MM_SET_TRANSITION_TABLE,OBC,0x000D,3,uint8_t,from_mode,uint8_t,to_mode,uint16_t,bc_index,,,,,,,,,モード遷移定義テーブル書き換えコマンド, -,Cmd_MM_START_TRANSITION,OBC,0x000E,1,uint8_t,to_mode,,,,,,,,,,,,,モード遷移開始コマンド, -,Cmd_MM_FINISH_TRANSITION,OBC,0x000F,0,,,,,,,,,,,,,,,モード遷移終了通知コマンド, -,Cmd_MM_UPDATE_TRANSITION_TABLE_FOR_TLM,OBC,0x0010,0,,,,,,,,,,,,,,,モードのTLMテーブル情報更新, -,Cmd_TDSP_SET_TASK_LIST,OBC,0x0011,1,uint8_t,bc_index,,,,,,,,,,,,,タスクリスト設定コマンド, -,Cmd_TLCD_CLEAR_ALL_TIMELINE,OBC,0x0012,1,uint8_t,TLCD_ID,,,,,,,,,,,danger,,全TLC登録解除, -,Cmd_TLCD_CLEAR_TIMELINE_AT,OBC,0x0013,2,uint8_t,TLCD_ID,uint32_t,TI,,,,,,,,,,,TI指定TLC登録解除, -,Cmd_TLCD_DEPLOY_BLOCK,OBC,0x0014,2,uint8_t,TLCD_ID,uint16_t,bc_index,,,,,,,,,,,BLC展開 , -,Cmd_TLCD_CLEAR_ERR_LOG,OBC,0x0015,1,uint8_t,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, -,Cmd_TLCD_SET_SOE_FLAG,OBC,0x0016,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,異常時実行停止機能設定(ライン番号@@ フラグ), -,Cmd_TLCD_SET_LOUT_FLAG,OBC,0x0017,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,実行停止機能設定(ライン番号@@ フラグ), -,Cmd_TLCD_SET_ID_FOR_TLM,OBC,0x0018,1,uint8_t,TLCD_ID,,,,,,,,,,,,,テレメで降ろすTL_IDの設定とTLテレメの更新, -,Cmd_TLCD_SET_PAGE_FOR_TLM,OBC,0x0019,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, -,Cmd_GENERATE_TLM,OBC,0x001A,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,TLMパケット生成, +,NOP,OBC,0x0000,0,,,,,,,,,,,,,,,ダミーコマンド, +,TMGR_SET_TIME,OBC,0x0001,1,uint32_t,TI,,,,,,,,,,,,,MOBC時刻設定コマンド, +,TMGR_UPDATE_UNIXTIME,OBC,0x0002,3,double,unixtime,uint32_t,total_cycle,uint32_t,step,,,,,,,,,MOBC UNIXTIME修正コマンド, +,TMGR_SET_UTL_UNIXTIME_EPOCH,OBC,0x0003,1,double,ult_unixtime_epoch,,,,,,,,,,,,,UTL_cmdで用いるunixtimeの紀元を変更する,utl_unixtime_epoch [s] +,TMGR_SET_CYCLE_CORRECTION,OBC,0x0004,1,double,cycle_correction,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を変更する@@ 初期値は1.0, +,TMGR_RESET_CYCLE_CORRECTION,OBC,0x0005,0,,,,,,,,,,,,,,,CYCLES_PER_SECの補正倍率を1.0に初期化する, +,TMGR_CLEAR_UNIXTIME_INFO,OBC,0x0006,0,,,,,,,,,,,,,,,unixtime_info_ を初期化する, +,AM_REGISTER_APP,OBC,0x0007,3,uint32_t,app_id,uint32_t,init_ptr,uint32_t,entry_ptr,,,,,,,,,アプリ登録コマンド, +,AM_INITIALIZE_APP,OBC,0x0008,1,uint32_t,app_id,,,,,,,,,,,,,アプリ初期化コマンド, +,AM_EXECUTE_APP,OBC,0x0009,1,uint32_t,app_id,,,,,,,,,,,,,アプリ実行コマンド, +,AM_SET_PAGE_FOR_TLM,OBC,0x000A,1,uint8_t,,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, +,AM_CLEAR_APP_INFO,OBC,0x000B,0,,,,,,,,,,,,,danger,,アプリ実行時間計測の初期化, +,MM_SET_MODE_LIST,OBC,0x000C,2,uint8_t,mode,uint16_t,bc_index,,,,,,,,,,,モード定義リスト設定コマンド, +,MM_SET_TRANSITION_TABLE,OBC,0x000D,3,uint8_t,from_mode,uint8_t,to_mode,uint16_t,bc_index,,,,,,,,,モード遷移定義テーブル書き換えコマンド, +,MM_START_TRANSITION,OBC,0x000E,1,uint8_t,to_mode,,,,,,,,,,,,,モード遷移開始コマンド, +,MM_FINISH_TRANSITION,OBC,0x000F,0,,,,,,,,,,,,,,,モード遷移終了通知コマンド, +,MM_UPDATE_TRANSITION_TABLE_FOR_TLM,OBC,0x0010,0,,,,,,,,,,,,,,,モードのTLMテーブル情報更新, +,TDSP_SET_TASK_LIST,OBC,0x0011,1,uint8_t,bc_index,,,,,,,,,,,,,タスクリスト設定コマンド, +,TLCD_CLEAR_ALL_TIMELINE,OBC,0x0012,1,uint8_t,TLCD_ID,,,,,,,,,,,danger,,全TLC登録解除, +,TLCD_CLEAR_TIMELINE_AT,OBC,0x0013,2,uint8_t,TLCD_ID,uint32_t,TI,,,,,,,,,,,TI指定TLC登録解除, +,TLCD_DEPLOY_BLOCK,OBC,0x0014,2,uint8_t,TLCD_ID,uint16_t,bc_index,,,,,,,,,,,BLC展開 , +,TLCD_CLEAR_ERR_LOG,OBC,0x0015,1,uint8_t,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,TLCD_SET_SOE_FLAG,OBC,0x0016,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,異常時実行停止機能設定(ライン番号@@ フラグ), +,TLCD_SET_LOUT_FLAG,OBC,0x0017,2,uint8_t,TLCD_ID,uint8_t,,,,,,,,,,,,実行停止機能設定(ライン番号@@ フラグ), +,TLCD_SET_ID_FOR_TLM,OBC,0x0018,1,uint8_t,TLCD_ID,,,,,,,,,,,,,テレメで降ろすTL_IDの設定とTLテレメの更新, +,TLCD_SET_PAGE_FOR_TLM,OBC,0x0019,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ生成用ページ番号設定, +**,Telemetry Generator,,,,,,,,,,,,,,,,,,, +,GENERATE_TLM,OBC,0x001A,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,TLMパケット生成 (deprecated), +,TG_GENERATE_TLM,OBC,0x001B,4,uint8_t,tlm id,uint8_t,dest flags,uint8_t,dest info,uint8_t,送出回数,,,,,,,自身の OBC のテレメを生成, +,TG_GENERATE_HP_TLM,OBC,0x001C,1,uint8_t,tlm id,,,,,,,,,,,,,HP テレメを生成 (事実上,現在使われていない), +,TG_GENERATE_RT_TLM,OBC,0x001D,1,uint8_t,tlm id,,,,,,,,,,,,,RT テレメを生成, +,TG_GENERATE_ST_TLM,OBC,0x001E,2,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,,,ST テレメを生成, +,TG_FORWARD_TLM,OBC,0x001F,5,uint16_t,apid,uint8_t,tlm id,uint8_t,dest flags,uint8_t,dest info,uint8_t,送出回数,,,,,2nd OBC のテレメを転送, +,TG_FORWARD_AS_HP_TLM,OBC,0x0020,2,uint16_t,apid,uint8_t,tlm id,,,,,,,,,,,HP テレメとして 2nd OBC のテレメを転送 (事実上,現在使われていない), +,TG_FORWARD_AS_RT_TLM,OBC,0x0021,2,uint16_t,apid,uint8_t,tlm id,,,,,,,,,,,RT テレメとして 2nd OBC のテレメを転送, +,TG_FORWARD_AS_ST_TLM,OBC,0x0022,3,uint16_t,apid,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,ST テレメとして 2nd OBC のテレメを転送, **,BCTコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_BCT_CLEAR_BLOCK,OBC,0x001B,1,uint16_t,bc_index,,,,,,,,,,,,,BLC登録解除コマンド, -,Cmd_BCT_SET_BLOCK_POSITION,OBC,0x001C,2,uint16_t,bc_index,uint8_t,cmd_index,,,,,,,,,,,BLC操作ポインタ設定コマンド, -,Cmd_BCT_COPY_BCT,OBC,0x001D,2,uint16_t,dst_bc_index,uint16_t,src_bc_index,,,,,,,,,,,BCT の内容を別の場所にコピー, -,Cmd_BCT_OVERWRITE_CMD,OBC,0x001E,5,uint16_t,CMD_CODE,uint32_t,TI,uint16_t,pos.block,uint8_t,pos.cmd,raw,cmd_param (big endian),,,danger,,BCTの内容を上書き, -,Cmd_BCT_FILL_NOP,OBC,0x001F,1,uint8_t,,,,,,,,,,,,,,テレメ運用時の10個BCをNOP埋めする.(NOP個数), +,BCT_CLEAR_BLOCK,OBC,0x0023,1,uint16_t,bc_index,,,,,,,,,,,,,BLC登録解除コマンド, +,BCT_SET_BLOCK_POSITION,OBC,0x0024,2,uint16_t,bc_index,uint8_t,cmd_index,,,,,,,,,,,BLC操作ポインタ設定コマンド, +,BCT_COPY_BCT,OBC,0x0025,2,uint16_t,dst_bc_index,uint16_t,src_bc_index,,,,,,,,,,,BCT の内容を別の場所にコピー, +,BCT_OVERWRITE_CMD,OBC,0x0026,5,uint16_t,CMD_CODE,uint32_t,TI,uint16_t,pos.block,uint8_t,pos.cmd,raw,cmd_param (big endian),,,danger,,BCTの内容を上書き, +,BCT_FILL_NOP,OBC,0x0027,1,uint8_t,,,,,,,,,,,,,,テレメ運用時の10個BCをNOP埋めする.(NOP個数), **,BCEコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_BCE_ACTIVATE_BLOCK,OBC,0x0020,0,,,,,,,,,,,,,,,BLC有効化コマンド, -,Cmd_BCE_ACTIVATE_BLOCK_BY_ID,OBC,0x0021,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)有効化, -,Cmd_BCE_INACTIVATE_BLOCK_BY_ID,OBC,0x0022,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)無効化, -,Cmd_BCE_ROTATE_BLOCK,OBC,0x0023,1,uint16_t,bc_index,,,,,,,,,,,,,BLC回転コマンド, -,Cmd_BCE_COMBINE_BLOCK,OBC,0x0024,1,uint16_t,bc_index,,,,,,,,,,,,,BLC融合コマンド, -,Cmd_BCE_TIMELIMIT_COMBINE_BLOCK,OBC,0x0025,2,uint16_t,bc_index,uint8_t,limit_step,,,,,,,,,,,時間制限付きBLC融合コマンド, -,Cmd_BCE_RESET_ROTATOR_INFO,OBC,0x0026,0,,,,,,,,,,,,,danger,,カウンタ類リセット, -,Cmd_BCE_RESET_COMBINER_INFO,OBC,0x0027,0,,,,,,,,,,,,,danger,,カウンタ類リセット, -,Cmd_BCE_SET_ROTATE_INTERVAL,OBC,0x0028,2,uint16_t,,uint16_t,,,,,,,,,,,,BC回転時の回転間隔周期を設定する, +,BCE_ACTIVATE_BLOCK,OBC,0x0028,0,,,,,,,,,,,,,,,BLC有効化コマンド, +,BCE_ACTIVATE_BLOCK_BY_ID,OBC,0x0029,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)有効化, +,BCE_INACTIVATE_BLOCK_BY_ID,OBC,0x002A,1,uint16_t,bc_index,,,,,,,,,,,,,BCを(無条件に)無効化, +,BCE_ROTATE_BLOCK,OBC,0x002B,1,uint16_t,bc_index,,,,,,,,,,,,,BLC回転コマンド, +,BCE_COMBINE_BLOCK,OBC,0x002C,1,uint16_t,bc_index,,,,,,,,,,,,,BLC融合コマンド, +,BCE_TIMELIMIT_COMBINE_BLOCK,OBC,0x002D,2,uint16_t,bc_index,uint8_t,limit_step,,,,,,,,,,,時間制限付きBLC融合コマンド, +,BCE_RESET_ROTATOR_INFO,OBC,0x002E,0,,,,,,,,,,,,,danger,,カウンタ類リセット, +,BCE_RESET_COMBINER_INFO,OBC,0x002F,0,,,,,,,,,,,,,danger,,カウンタ類リセット, +,BCE_SET_ROTATE_INTERVAL,OBC,0x0030,2,uint16_t,,uint16_t,,,,,,,,,,,,BC回転時の回転間隔周期を設定する, **,GSCDコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_GSCD_CLEAR_ERR_LOG,OBC,0x0029,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,GSCD_CLEAR_ERR_LOG,OBC,0x0031,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, **,RTCDコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_RTCD_CLEAR_ALL_REALTIME,OBC,0x002A,0,,,,,,,,,,,,,danger,,全RTC登録解除, -,Cmd_RTCD_CLEAR_ERR_LOG,OBC,0x002B,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, +,RTCD_CLEAR_ALL_REALTIME,OBC,0x0032,0,,,,,,,,,,,,,danger,,全RTC登録解除, +,RTCD_CLEAR_ERR_LOG,OBC,0x0033,0,,,,,,,,,,,,,,,最新のコマンド実行異常記録をクリア, **,メモリ操作コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_MEM_SET_REGION,OBC,0x002C,2,uint32_t,始点アドレス,uint32_t,終点アドレス,,,,,,,,,,,始点アドレスと終点アドレスを指定する, -*,Cmd_MEM_DUMP_REGION_SEQ,OBC,,2,uint8_t,category,uint8_t,送出回数,,,,,,,,,,,カテゴリと送信回数を指定する, -*,Cmd_MEM_DUMP_REGION_RND,OBC,,3,uint8_t,category,uint8_t,送出回数,uint16_t,ダンプ位置,,,,,,,,,カテゴリと送信回数@@ダンプ位置を指定する, -*,Cmd_MEM_DUMP_SINGLE,OBC,,3,uint8_t,category,uint8_t,送出回数,uint32_t,ダンプ位置,,,,,,,,,カテゴリと送信回数@@ダンプ位置を指定する, -,Cmd_MEM_LOAD,OBC,0x002D,2,uint32_t,開始アドレス,raw,HEXBINARY,,,,,,,,,,,開始アドレス、データを指定,第2パラメータの指定は仮設定 -,Cmd_MEM_SET_DESTINATION,OBC,0x002E,1,uint32_t,コピー先アドレス,,,,,,,,,,,,,コピー先設定, -,Cmd_MEM_COPY_REGION_SEQ,OBC,0x002F,1,uint32_t,コピー幅,,,,,,,,,,,,,領域コピー, +,MEM_SET_REGION,OBC,0x0034,2,uint32_t,始点アドレス,uint32_t,終点アドレス,,,,,,,,,,,始点アドレスと終点アドレスを指定する, +*,MEM_DUMP_REGION_SEQ,OBC,,2,uint8_t,category,uint8_t,送出回数,,,,,,,,,,,カテゴリと送信回数を指定する, +*,MEM_DUMP_REGION_RND,OBC,,3,uint8_t,category,uint8_t,送出回数,uint16_t,ダンプ位置,,,,,,,,,カテゴリと送信回数@@ダンプ位置を指定する, +*,MEM_DUMP_SINGLE,OBC,,3,uint8_t,category,uint8_t,送出回数,uint32_t,ダンプ位置,,,,,,,,,カテゴリと送信回数@@ダンプ位置を指定する, +,MEM_LOAD,OBC,0x0035,2,uint32_t,開始アドレス,raw,HEXBINARY,,,,,,,,,,,開始アドレス、データを指定,第2パラメータの指定は仮設定 +,MEM_SET_DESTINATION,OBC,0x0036,1,uint32_t,コピー先アドレス,,,,,,,,,,,,,コピー先設定, +,MEM_COPY_REGION_SEQ,OBC,0x0037,1,uint32_t,コピー幅,,,,,,,,,,,,,領域コピー, **,EventLogger,,,,,,,,,,,,,,,,,,, -,Cmd_EL_INIT,OBC,0x0030,0,,,,,,,,,,,,,,,EL初期化, -,Cmd_EL_CLEAR_LOG_ALL,OBC,0x0031,0,,,,,,,,,,,,,,,全ログ削除, -,Cmd_EL_CLEAR_LOG_BY_ERR_LEVEL,OBC,0x0032,1,uint8_t,err_level,,,,,,,,,,,,,エラーレベル指定ログ削除, -,Cmd_EL_CLEAR_STATISTICS,OBC,0x0033,0,,,,,,,,,,,,,,,統計情報削除, -,Cmd_EL_CLEAR_TLOG,OBC,0x0034,1,uint8_t,err_level,,,,,,,,,,,,,TLog削除, -,Cmd_EL_CLEAR_CLOG,OBC,0x0035,1,uint8_t,err_level,,,,,,,,,,,,,CLog削除, -,Cmd_EL_RECORD_EVENT,OBC,0x0036,4,uint32_t,group,uint32_t,local,uint8_t,err_level,uint32_t,note,,,,,,,イベント記録, -,Cmd_EL_TLOG_SET_PAGE_FOR_TLM,OBC,0x0037,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,TLogのダウンリンクテレメ設定, -,Cmd_EL_CLOG_SET_PAGE_FOR_TLM,OBC,0x0038,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,CLogのダウンリンクテレメ設定, -,Cmd_EL_INIT_LOGGING_SETTINGS,OBC,0x0039,0,,,,,,,,,,,,,,,ログ設定を初期化, -,Cmd_EL_ENABLE_LOGGING,OBC,0x003A,1,uint32_t,group,,,,,,,,,,,,,ロギングを有効化, -,Cmd_EL_DISABLE_LOGGING,OBC,0x003B,1,uint32_t,group,,,,,,,,,,,,,ロギングを無効化, -,Cmd_EL_ENABLE_LOGGING_ALL,OBC,0x003C,0,,,,,,,,,,,,,,,すべてのロギングを有効化, -,Cmd_EL_DISABLE_LOGGING_ALL,OBC,0x003D,0,,,,,,,,,,,,,,,すべてのロギングを無効化, -,Cmd_EL_ENABLE_TLOG_OVERWRITE,OBC,0x003E,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを有効化, -,Cmd_EL_DISABLE_TLOG_OVERWRITE,OBC,0x003F,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを無効化, -,Cmd_EL_ENABLE_TLOG_OVERWRITE_ALL,OBC,0x0040,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを有効化, -,Cmd_EL_DISABLE_TLOG_OVERWRITE_ALL,OBC,0x0041,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを無効化, +,EL_INIT,OBC,0x0038,0,,,,,,,,,,,,,,,EL初期化, +,EL_CLEAR_LOG_ALL,OBC,0x0039,0,,,,,,,,,,,,,,,全ログ削除, +,EL_CLEAR_LOG_BY_ERR_LEVEL,OBC,0x003A,1,uint8_t,err_level,,,,,,,,,,,,,エラーレベル指定ログ削除, +,EL_CLEAR_STATISTICS,OBC,0x003B,0,,,,,,,,,,,,,,,統計情報削除, +,EL_CLEAR_TLOG,OBC,0x003C,1,uint8_t,err_level,,,,,,,,,,,,,TLog削除, +,EL_CLEAR_CLOG,OBC,0x003D,1,uint8_t,err_level,,,,,,,,,,,,,CLog削除, +,EL_RECORD_EVENT,OBC,0x003E,4,uint32_t,group,uint32_t,local,uint8_t,err_level,uint32_t,note,,,,,,,イベント記録, +,EL_TLOG_SET_PAGE_FOR_TLM,OBC,0x003F,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,TLogのダウンリンクテレメ設定, +,EL_CLOG_SET_PAGE_FOR_TLM,OBC,0x0040,2,uint8_t,page_no,uint8_t,err_level,,,,,,,,,,,CLogのダウンリンクテレメ設定, +,EL_INIT_LOGGING_SETTINGS,OBC,0x0041,0,,,,,,,,,,,,,,,ログ設定を初期化, +,EL_ENABLE_LOGGING,OBC,0x0042,1,uint32_t,group,,,,,,,,,,,,,ロギングを有効化, +,EL_DISABLE_LOGGING,OBC,0x0043,1,uint32_t,group,,,,,,,,,,,,,ロギングを無効化, +,EL_ENABLE_LOGGING_ALL,OBC,0x0044,0,,,,,,,,,,,,,,,すべてのロギングを有効化, +,EL_DISABLE_LOGGING_ALL,OBC,0x0045,0,,,,,,,,,,,,,,,すべてのロギングを無効化, +,EL_ENABLE_TLOG_OVERWRITE,OBC,0x0046,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを有効化, +,EL_DISABLE_TLOG_OVERWRITE,OBC,0x0047,1,uint8_t,err_level,,,,,,,,,,,,,TLogのログ上書きを無効化, +,EL_ENABLE_TLOG_OVERWRITE_ALL,OBC,0x0048,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを有効化, +,EL_DISABLE_TLOG_OVERWRITE_ALL,OBC,0x0049,0,,,,,,,,,,,,,,,すべてのTLogのログ上書きを無効化, **,EventHandler,,,,,,,,,,,,,,,,,,, -,Cmd_EH_INIT,OBC,0x0042,0,,,,,,,,,,,,,,,EHの初期化, -,Cmd_EH_CLEAR_ALL_RULE,OBC,0x0043,0,,,,,,,,,,,,,,,EHのすべてのルールをクリア, -,Cmd_EH_LOAD_DEFAULT_RULE,OBC,0x0044,0,,,,,,,,,,,,,,,EHのデフォルトルールを読み込み, -,Cmd_EH_SET_REGISTER_RULE_EVENT_PARAM,OBC,0x0045,6,uint16_t,rule id,uint32_t,event group,uint32_t,event local,uint8_t,event err level,uint8_t,should_match_err_level,uint16_t,deploy bc index,,,登録するEHルールのイベントパラメータを設定, -,Cmd_EH_SET_REGISTER_RULE_CONDITION_PARAM,OBC,0x0046,4,uint8_t,condition type,uint16_t,count_threshold,uint32_t,time_threshold [ms],uint8_t,is_active,,,,,,,登録するEHルールの対応条件パラメタを設定, -,Cmd_EH_REGISTER_RULE,OBC,0x0047,0,,,,,,,,,,,,,,,設定したパラメタでEHルールを登録, -,Cmd_EH_DELETE_RULE,OBC,0x0048,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを削除, -,Cmd_EH_INIT_RULE,OBC,0x0049,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化), -,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL,OBC,0x004A,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化)(多段EH対応用), -,Cmd_EH_ACTIVATE_RULE,OBC,0x004B,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化, -,Cmd_EH_INACTIVATE_RULE,OBC,0x004C,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化, -,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x004D,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化(多段EH対応用), -,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x004E,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化(多段EH対応用), -,Cmd_EH_SET_RULE_COUNTER,OBC,0x004F,2,uint16_t,rule id,uint16_t,counter,,,,,,,,,,,EH_Rule の counter をセット, -,Cmd_EH_CLEAR_RULE_COUNTER,OBC,0x0050,1,uint16_t,rule id,,,,,,,,,,,,,EH_Rule の counter を0 クリア, -,Cmd_EH_CLEAR_RULE_COUNTER_BY_EVENT,OBC,0x0051,3,uint32_t,group,uint32_t,local,uint8_t,err_level,,,,,,,,,EH_Rule の counter を EL_Event 指定で 0 クリア, -,Cmd_EH_CLEAR_LOG,OBC,0x0052,0,,,,,,,,,,,,,,,EHの対応ログをクリア, -,Cmd_EH_SET_MAX_RESPONSE_NUM,OBC,0x0053,1,uint8_t,max_response_num,,,,,,,,,,,,,一度のEH実行で対応するイベントの最大数を設定, -,Cmd_EH_SET_MAX_CHECK_EVENT_NUM,OBC,0x0054,1,uint16_t,max_check_event_num,,,,,,,,,,,,,一度のEH実行でチェックするイベントの最大数を設定, -,Cmd_EH_SET_MAX_MULTI_LEVEL_NUM,OBC,0x0055,1,uint8_t,max_multi_level_num,,,,,,,,,,,,,設定可能な最大段数を設定, -,Cmd_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM,OBC,0x0056,1,uint8_t,page_no,,,,,,,,,,,,,EHルールテーブルのテレメページの設定, -,Cmd_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM,OBC,0x0057,1,uint8_t,page_no,,,,,,,,,,,,,EHルールのソート済みテーブルのテレメページの設定, -,Cmd_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM,OBC,0x0058,1,uint8_t,page_no,,,,,,,,,,,,,EHログテーブルのテレメページの設定, -,Cmd_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM,OBC,0x0059,1,uint16_t,rule id,,,,,,,,,,,,,EHテレメに表示するルールのID設定, -,Cmd_EH_MATCH_EVENT_COUNTER_TO_EL,OBC,0x005A,0,,,,,,,,,,,,,,,イベント発生を検知するためのEHカウンタをELカウンタに強制定期に合わせる, -,Cmd_EH_INIT_RULE_BY_EVENT_GROUP,OBC,0x005B,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x005C,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x005D,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x005E,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x005F,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, -,Cmd_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0060,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INIT,OBC,0x004A,0,,,,,,,,,,,,,,,EHの初期化, +,EH_CLEAR_ALL_RULE,OBC,0x004B,0,,,,,,,,,,,,,,,EHのすべてのルールをクリア, +,EH_LOAD_DEFAULT_RULE,OBC,0x004C,0,,,,,,,,,,,,,,,EHのデフォルトルールを読み込み, +,EH_SET_REGISTER_RULE_EVENT_PARAM,OBC,0x004D,6,uint16_t,rule id,uint32_t,event group,uint32_t,event local,uint8_t,event err level,uint8_t,should_match_err_level,uint16_t,deploy bc index,,,登録するEHルールのイベントパラメータを設定, +,EH_SET_REGISTER_RULE_CONDITION_PARAM,OBC,0x004E,4,uint8_t,condition type,uint16_t,count_threshold,uint32_t,time_threshold [ms],uint8_t,is_active,,,,,,,登録するEHルールの対応条件パラメタを設定, +,EH_REGISTER_RULE,OBC,0x004F,0,,,,,,,,,,,,,,,設定したパラメタでEHルールを登録, +,EH_DELETE_RULE,OBC,0x0050,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを削除, +,EH_INIT_RULE,OBC,0x0051,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化), +,EH_INIT_RULE_FOR_MULTI_LEVEL,OBC,0x0052,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを初期化(ルールを有効化し,ルールカウンタも初期化)(多段EH対応用), +,EH_ACTIVATE_RULE,OBC,0x0053,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化, +,EH_INACTIVATE_RULE,OBC,0x0054,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化, +,EH_ACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x0055,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを有効化(多段EH対応用), +,EH_INACTIVATE_RULE_FOR_MULTI_LEVEL,OBC,0x0056,1,uint16_t,rule id,,,,,,,,,,,,,指定したルールを無効化(多段EH対応用), +,EH_SET_RULE_COUNTER,OBC,0x0057,2,uint16_t,rule id,uint16_t,counter,,,,,,,,,,,EH_Rule の counter をセット, +,EH_CLEAR_RULE_COUNTER,OBC,0x0058,1,uint16_t,rule id,,,,,,,,,,,,,EH_Rule の counter を0 クリア, +,EH_CLEAR_RULE_COUNTER_BY_EVENT,OBC,0x0059,3,uint32_t,group,uint32_t,local,uint8_t,err_level,,,,,,,,,EH_Rule の counter を EL_Event 指定で 0 クリア, +,EH_CLEAR_LOG,OBC,0x005A,0,,,,,,,,,,,,,,,EHの対応ログをクリア, +,EH_SET_MAX_RESPONSE_NUM,OBC,0x005B,1,uint8_t,max_response_num,,,,,,,,,,,,,一度のEH実行で対応するイベントの最大数を設定, +,EH_SET_MAX_CHECK_EVENT_NUM,OBC,0x005C,1,uint16_t,max_check_event_num,,,,,,,,,,,,,一度のEH実行でチェックするイベントの最大数を設定, +,EH_SET_MAX_MULTI_LEVEL_NUM,OBC,0x005D,1,uint8_t,max_multi_level_num,,,,,,,,,,,,,設定可能な最大段数を設定, +,EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM,OBC,0x005E,1,uint8_t,page_no,,,,,,,,,,,,,EHルールテーブルのテレメページの設定, +,EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM,OBC,0x005F,1,uint8_t,page_no,,,,,,,,,,,,,EHルールのソート済みテーブルのテレメページの設定, +,EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM,OBC,0x0060,1,uint8_t,page_no,,,,,,,,,,,,,EHログテーブルのテレメページの設定, +,EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM,OBC,0x0061,1,uint16_t,rule id,,,,,,,,,,,,,EHテレメに表示するルールのID設定, +,EH_MATCH_EVENT_COUNTER_TO_EL,OBC,0x0062,0,,,,,,,,,,,,,,,イベント発生を検知するためのEHカウンタをELカウンタに強制定期に合わせる, +,EH_INIT_RULE_BY_EVENT_GROUP,OBC,0x0063,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0064,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INIT_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_ACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x0065,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INACTIVATE_RULE_BY_EVENT_GROUP,OBC,0x0066,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0067,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, +,EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL,OBC,0x0068,1,uint32_t,group,,,,,,,,,,,,,Cmd_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL の by_event_group コマンド.想定外のものまで操作されないか注意すること, **,EventUtility,,,,,,,,,,,,,,,,,,, -,Cmd_EVENT_UTIL_ENABLE_EH_EXEC,OBC,0x0061,0,,,,,,,,,,,,,,,EHの実行を有効に, -,Cmd_EVENT_UTIL_DISABLE_EH_EXEC,OBC,0x0062,0,,,,,,,,,,,,,,,EHの実行を無効に, -,Cmd_EVENT_UTIL_EXEC_EH,OBC,0x0063,0,,,,,,,,,,,,,,,EHを単発で実行, +,EVENT_UTIL_ENABLE_EH_EXEC,OBC,0x0069,0,,,,,,,,,,,,,,,EHの実行を有効に, +,EVENT_UTIL_DISABLE_EH_EXEC,OBC,0x006A,0,,,,,,,,,,,,,,,EHの実行を無効に, +,EVENT_UTIL_EXEC_EH,OBC,0x006B,0,,,,,,,,,,,,,,,EHを単発で実行, **,Telemetry Frame@@ Command Analyze,,,,,,,,,,,,,,,,,,, -,Cmd_TF_INIT,OBC,0x0064,0,,,,,,,,,,,,,,,TFの初期化, -,Cmd_CA_INIT,OBC,0x0065,0,,,,,,,,,,,,,,,CAの初期化, -,Cmd_TF_REGISTER_TLM,OBC,0x0066,2,uint8_t,index,uint32_t,tlm_func,,,,,,,,,,,テレメトリ登録コマンド, -,Cmd_CA_REGISTER_CMD,OBC,0x0067,3,uint16_t,index,uint32_t,cmd_func,raw,param_info,,,,,,,,,コマンド登録コマンド, -,Cmd_TF_SET_PAGE_FOR_TLM,OBC,0x0068,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ定義テーブルページ番号設定, -,Cmd_CA_SET_PAGE_FOR_TLM,OBC,0x0069,1,uint8_t,page_no,,,,,,,,,,,,,コマンド定義テーブルページ番号設定, +,TF_INIT,OBC,0x006C,0,,,,,,,,,,,,,,,TFの初期化, +,CA_INIT,OBC,0x006D,0,,,,,,,,,,,,,,,CAの初期化, +,TF_REGISTER_TLM,OBC,0x006E,2,uint8_t,index,uint32_t,tlm_func,,,,,,,,,,,テレメトリ登録コマンド, +,CA_REGISTER_CMD,OBC,0x006F,3,uint16_t,index,uint32_t,cmd_func,raw,param_info,,,,,,,,,コマンド登録コマンド, +,TF_SET_PAGE_FOR_TLM,OBC,0x0070,1,uint8_t,page_no,,,,,,,,,,,,,テレメトリ定義テーブルページ番号設定, +,CA_SET_PAGE_FOR_TLM,OBC,0x0071,1,uint8_t,page_no,,,,,,,,,,,,,コマンド定義テーブルページ番号設定, **,Tlm Manager コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_TLM_MGR_INIT,OBC,0x006A,0,,,,,,,,,,,,,,,初期化, -,Cmd_TLM_MGR_INIT_MASTER_BC,OBC,0x006B,0,,,,,,,,,,,,,,,master bc の初期化, -,Cmd_TLM_MGR_CLEAR_HK_TLM,OBC,0x006C,0,,,,,,,,,,,,,,,HKテレメを初期化, -,Cmd_TLM_MGR_CLEAR_SYSTEM_TLM,OBC,0x006D,0,,,,,,,,,,,,,,,systemテレメを初期化, -,Cmd_TLM_MGR_CLEAR_USER_TLM,OBC,0x006E,0,,,,,,,,,,,,,,,high_freq_tlm@@ low_freq_tlm を初期化, -,Cmd_TLM_MGR_START_TLM,OBC,0x006F,0,,,,,,,,,,,,,,,TLM送出開始, -,Cmd_TLM_MGR_STOP_TLM,OBC,0x0070,0,,,,,,,,,,,,,,,TLM送出一時停止, -,Cmd_TLM_MGR_CLEAR_TLM_TL,OBC,0x0071,0,,,,,,,,,,,,,,,TLM送出用TLをクリア, -,Cmd_TLM_MGR_REGISTER_HK_TLM,OBC,0x0072,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,HKテレメを登録, -,Cmd_TLM_MGR_REGISTER_SYSTEM_TLM,OBC,0x0073,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,systemテレメを登録, -,Cmd_TLM_MGR_REGISTER_HIGH_FREQ_TLM,OBC,0x0074,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,high_freq_tlm を登録, -,Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM,OBC,0x0075,3,uint8_t,category,uint8_t,TLM_ID,uint8_t,送出回数,,,,,,,,,low_freq_tlm を登録, +,TLM_MGR_INIT,OBC,0x0072,0,,,,,,,,,,,,,,,初期化,DCU を使っているので,完了に 1 秒ほどかかる +,TLM_MGR_INIT_MASTER_AND_DEPLOY_BC,OBC,0x0073,0,,,,,,,,,,,,,,,master bc の初期化, +,TLM_MGR_CLEAR_HK_TLM,OBC,0x0074,0,,,,,,,,,,,,,,,HKテレメを初期化,DCU を使っているので,完了に最大 1 秒ほどかかる +,TLM_MGR_CLEAR_HIGH_FREQ_TLM,OBC,0x0075,0,,,,,,,,,,,,,,,HIGH_FREQ テレメを初期化,DCU を使っているので,完了に最大 1 秒ほどかかる +,TLM_MGR_CLEAR_LOW_FREQ_TLM,OBC,0x0076,0,,,,,,,,,,,,,,,LOW_FREQ テレメを初期化,DCU を使っているので,完了に最大 1 秒ほどかかる +,TLM_MGR_CLEAR_USER_TLM,OBC,0x0077,0,,,,,,,,,,,,,,,high_freq@@ low_freq を初期化,DCU を使っているので,完了に最大 1 秒ほどかかる +,TLM_MGR_START_TLM,OBC,0x0078,0,,,,,,,,,,,,,,,TLM送出開始, +,TLM_MGR_STOP_TLM,OBC,0x0079,0,,,,,,,,,,,,,,,TLM送出一時停止(事実上,TLM送出用TLをクリア), +,TLM_MGR_REGISTER_GENERATE_RT_TLM,OBC,0x007A,2,uint8_t,TLM_MGR_BC_ROLE,uint8_t,tlm id,,,,,,,,,,,TG_GENERATE_RT_TLM を登録, +,TLM_MGR_REGISTER_GENERATE_ST_TLM,OBC,0x007B,3,uint8_t,TLM_MGR_BC_ROLE,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,TG_GENERATE_ST_TLM を登録, +,TLM_MGR_REGISTER_FORWARD_AS_RT_TLM,OBC,0x007C,3,uint8_t,TLM_MGR_BC_ROLE,uint16_t,apid,uint8_t,tlm id,,,,,,,,,TG_GENERATE_RT_TLM を登録, +,TLM_MGR_REGISTER_FORWARD_AS_ST_TLM,OBC,0x007D,4,uint8_t,TLM_MGR_BC_ROLE,uint16_t,apid,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,TG_GENERATE_ST_TLM を登録, +,TLM_MGR_REGISTER_REPLAY_TLM,OBC,0x007E,2,uint8_t,TLM_MGR_BC_ROLE,uint8_t,dr partition (dest info),,,,,,,,,,,DR_REPLAY_TLM を登録, +,TLM_MGR_DELETE_GENERATE_RT_TLM,OBC,0x007F,2,uint8_t,TLM_MGR_BC_ROLE,uint8_t,tlm id,,,,,,,,,,,TG_GENERATE_RT_TLM を削除, +,TLM_MGR_DELETE_GENERATE_ST_TLM,OBC,0x0080,3,uint8_t,TLM_MGR_BC_ROLE,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,,,TG_GENERATE_ST_TLM を削除, +,TLM_MGR_DELETE_FORWARD_AS_RT_TLM,OBC,0x0081,3,uint8_t,TLM_MGR_BC_ROLE,uint16_t,apid,uint8_t,tlm id,,,,,,,,,TG_GENERATE_RT_TLM を削除, +,TLM_MGR_DELETE_FORWARD_AS_ST_TLM,OBC,0x0082,4,uint8_t,TLM_MGR_BC_ROLE,uint16_t,apid,uint8_t,tlm id,uint8_t,dr partition (dest info),,,,,,,TG_GENERATE_ST_TLM を削除, +,TLM_MGR_DELETE_REPLAY_TLM,OBC,0x0083,2,uint8_t,TLM_MGR_BC_ROLE,uint8_t,dr partition (dest info),,,,,,,,,,,DR_REPLAY_TLM を削除, **,Divided Cmd Utility コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_DCU_ABORT_CMD,OBC,0x0076,1,uint16_t,Cmd ID,,,,,,,,,,,,,実行中の分割コマンドを停止する, -,Cmd_DCU_DOWN_ABORT_FLAG,OBC,0x0077,1,uint16_t,Cmd ID,,,,,,,,,,,,,エラー,またはコマンドによって中断ステータスとなっているコマンドを,実行可能状態に戻す, -,Cmd_DCU_CLEAR_LOG,OBC,0x0078,0,,,,,,,,,,,,,,,ログをクリアする, +,DCU_ABORT_CMD,OBC,0x0084,1,uint16_t,Cmd ID,,,,,,,,,,,,,実行中の分割コマンドを停止する, +,DCU_DOWN_ABORT_FLAG,OBC,0x0085,1,uint16_t,Cmd ID,,,,,,,,,,,,,エラー,またはコマンドによって中断ステータスとなっているコマンドを,実行可能状態に戻す, +,DCU_CLEAR_LOG,OBC,0x0086,0,,,,,,,,,,,,,,,ログをクリアする, **,Test App コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_TEST_CCP_REGISTER_TLC_ASAP,OBC,0x0079,1,uint32_t,ti,,,,,,,,,,,,,CCP_register_tlc_asap のテスト用コマンド, -,Cmd_TEST_CCP_GET_RAW_PARAM_INFO,OBC,0x007A,3,uint16_t,raw data len,uint8_t,first data,raw,raw data,,,,,,,,,CCP UTIL の ParamGenerator のテスト, +,TEST_CCP_REGISTER_TLC_ASAP,OBC,0x0087,1,uint32_t,ti,,,,,,,,,,,,,CCP_register_tlc_asap のテスト用コマンド, +,TEST_CCP_GET_RAW_PARAM_INFO,OBC,0x0088,3,uint16_t,raw data len,uint8_t,first data,raw,raw data,,,,,,,,,CCP UTIL の ParamGenerator のテスト, **,,,,,,,,,,,,,,,,,,,, * CDH,GS用,,,,,,,,,,,,,,,,,,, -,Cmd_DI_GS_DRIVER_RESET,OBC,0x0100,0,,,,,,,,,,,,,,,MS VCDUの排出間隔設定, -,Cmd_DI_GS_SET_MS_FLUSH_INTERVAL,OBC,0x0101,1,uint32_t,排出間隔,,,,,,,,,,,,,MS VCDUの排出間隔設定, -,Cmd_DI_GS_SET_RP_FLUSH_INTERVAL,OBC,0x0102,1,uint32_t,排出間隔,,,,,,,,,,,,,RP VCDUの排出間隔設定, -,Cmd_DI_GS_SET_FARM_PW,OBC,0x0103,1,uint8_t,positive_window_width,,,,,,,,,,,,,FARM-1のPositive Window Width設定, -,Cmd_DI_GS_SET_INFO,OBC,0x0104,1,uint8_t,TLM選択,,,,,,,,,,,,,GS送信TLMが0ならCCSDSに@@ 1ならUARTの情報が出てくる, -,Cmd_DI_GS_CCSDS_GET_BUFFER,OBC,0x0105,0,,,,,,,,,,,,,,,, -,Cmd_DI_GS_CCSDS_SET_RATE,OBC,0x0106,1,uint8_t,bps セットパラメータ,,,,,,,,,,,danger,,40M/パラメータ が bps になる.初期値は 0xAD で 230.4 Kbps (微妙に対応していない), -,Cmd_DI_GS_UART_TLM_ON,OBC,0x0107,0,,,,,,,,,,,,,,,TLM の UART への送出を行う, -,Cmd_DI_GS_UART_TLM_OFF,OBC,0x0108,0,,,,,,,,,,,,,,,TLM の UART への送出を止める, +,DI_GS_DRIVER_RESET,OBC,0x0100,0,,,,,,,,,,,,,,,MS VCDUの排出間隔設定, +,DI_GS_SET_RT_FLUSH_INTERVAL,OBC,0x0101,1,uint32_t,排出間隔,,,,,,,,,,,,,RT VCDUの排出間隔設定, +,DI_GS_SET_RP_FLUSH_INTERVAL,OBC,0x0102,1,uint32_t,排出間隔,,,,,,,,,,,,,RP VCDUの排出間隔設定, +,DI_GS_SET_FARM_PW,OBC,0x0103,1,uint8_t,positive_window_width,,,,,,,,,,,,,FARM-1のPositive Window Width設定, +,DI_GS_SET_INFO,OBC,0x0104,1,uint8_t,TLM選択,,,,,,,,,,,,,GS送信TLMが0ならCCSDSに@@ 1ならUARTの情報が出てくる, +,DI_GS_CCSDS_GET_BUFFER,OBC,0x0105,0,,,,,,,,,,,,,,,, +,DI_GS_CCSDS_SET_RATE,OBC,0x0106,1,uint8_t,bps セットパラメータ,,,,,,,,,,,danger,,40M/パラメータ が bps になる.初期値は 0xAD で 230.4 Kbps (微妙に対応していない), +,DI_GS_UART_TLM_ON,OBC,0x0107,0,,,,,,,,,,,,,,,TLM の UART への送出を行う, +,DI_GS_UART_TLM_OFF,OBC,0x0108,0,,,,,,,,,,,,,,,TLM の UART への送出を止める, **,WDT用コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_WDT_INIT,OBC,0x0109,0,,,,,,,,,,,,,,,WDT初期化.WDTがアプリイニシャライザを持たなくなったので追加, -,Cmd_WDT_ENABLE,OBC,0x010A,0,,,,,,,,,,,,,,,WDT有効化, -,Cmd_WDT_DISABLE,OBC,0x010B,0,,,,,,,,,,,,,,,WDT無効化, -,Cmd_WDT_STOP_CLEAR,OBC,0x010C,0,,,,,,,,,,,,,danger,,WDTのカウンタクリアを止める=リセット実行, -,Cmd_WDT_START_CLEAR,OBC,0x010D,0,,,,,,,,,,,,,,,WDTのカウンタクリアを開始する, +,WDT_INIT,OBC,0x0109,0,,,,,,,,,,,,,,,WDT初期化.WDTがアプリイニシャライザを持たなくなったので追加, +,WDT_ENABLE,OBC,0x010A,0,,,,,,,,,,,,,,,WDT有効化, +,WDT_DISABLE,OBC,0x010B,0,,,,,,,,,,,,,,,WDT無効化, +,WDT_STOP_CLEAR,OBC,0x010C,0,,,,,,,,,,,,,danger,,WDTのカウンタクリアを止める=リセット実行, +,WDT_START_CLEAR,OBC,0x010D,0,,,,,,,,,,,,,,,WDTのカウンタクリアを開始する, **,UART TESTコマンド,,,,,,,,,,,,,,,,,,, -,Cmd_UART_TEST_INIT_DI,OBC,0x010E,0,,,,,,,,,,,,,,,DI初期化, -,Cmd_UART_TEST_UPDATE,OBC,0x010F,0,,,,,,,,,,,,,,,DI update, -,Cmd_UART_TEST_SEND_TEST,OBC,0x0110,1,uint8_t,id,,,,,,,,,,,,,DI send test, +,UART_TEST_INIT_DI,OBC,0x010E,0,,,,,,,,,,,,,,,DI初期化, +,UART_TEST_UPDATE,OBC,0x010F,0,,,,,,,,,,,,,,,DI update, +,UART_TEST_SEND_TEST,OBC,0x0110,1,uint8_t,id,,,,,,,,,,,,,DI send test, **,,,,,,,,,,,,,,,,,,,, * POWER,,,,,,,,,,,,,,,,,,,, **,,,,,,,,,,,,,,,,,,,, @@ -181,33 +196,18 @@ Comment,,,,,Type,Description,Type,Description,Type,Description,Type,Description, * HILS,HILS用コマンド,,,,,,,,,,,,,,,,,,, **,,,,,,,,,,,,,,,,,,,, * Other,汎用コマンド用コマンド,,,,,,,,,,,,,,,,,,, -,Cmd_UTIL_CMD_ADD,OBC,0x03E0,6,uint8_t,,uint32_t,,uint32_t,,uint32_t,,uint32_t,,uint32_t,,,,汎用コマンドのバッファに指定サイズのデータを入れる, -,Cmd_UTIL_CMD_SEND,OBC,0x03E1,1,uint8_t,,,,,,,,,,,,,,引数のCHに汎用コマンドのバッファにあるデータを送信する, -,Cmd_UTIL_CMD_RESET,OBC,0x03E2,0,,,,,,,,,,,,,,,汎用コマンドのバッファをクリアする, +,UTIL_CMD_ADD,OBC,0x03E0,6,uint8_t,,uint32_t,,uint32_t,,uint32_t,,uint32_t,,uint32_t,,,,汎用コマンドのバッファに指定サイズのデータを入れる, +,UTIL_CMD_SEND,OBC,0x03E1,1,uint8_t,,,,,,,,,,,,,,引数のCHに汎用コマンドのバッファにあるデータを送信する, +,UTIL_CMD_RESET,OBC,0x03E2,0,,,,,,,,,,,,,,,汎用コマンドのバッファをクリアする, **,汎用カウンタ用コマンド,,,,,,,,,,,,,,,,,,, -*,Cmd_UTIL_COUNTER_INCREMENT,OBC,,1,uint8_t,,,,,,,,,,,,,,引数の汎用カウンタをインクリメントする, -*,Cmd_UTIL_COUNTER_RESET,OBC,,1,uint8_t,,,,,,,,,,,,,,引数の汎用カウンタをリセットする.0xffでALL_CLR, -*,Cmd_UTIL_COUNTER_SET_PARAM,OBC,,3,uint8_t,,uint32_t,,uint8_t,,,,,,,,,,引数の汎用カウンタの閾値・アノマリ発行有無を設定する, +*,UTIL_COUNTER_INCREMENT,OBC,,1,uint8_t,,,,,,,,,,,,,,引数の汎用カウンタをインクリメントする, +*,UTIL_COUNTER_RESET,OBC,,1,uint8_t,,,,,,,,,,,,,,引数の汎用カウンタをリセットする.0xffでALL_CLR, +*,UTIL_COUNTER_SET_PARAM,OBC,,3,uint8_t,,uint32_t,,uint8_t,,,,,,,,,,引数の汎用カウンタの閾値・アノマリ発行有無を設定する, **,,,,,,,,,,,,,,,,,,,, * NonOrder,これ以下はコマンドIDが自動で割り振られない!,,,,,,,,,,,,,,,,,,, **,CmdCodeSibGeneratorによって,RTのみ生成,,,,,,,,,,,,,,,,,,, **,CDH特殊コマンド,,,,,,,,,,,,,,,,,,, -*,Cmd_OBC_CHECK_SIB_VERSION,OBC,0x05ff,0,,,,,,,,,,,,,,,SIBとC2Aのバージョン整合性確認, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,, +*,OBC_CHECK_SIB_VERSION,OBC,0x05ff,0,,,,,,,,,,,,,,,SIBとC2Aのバージョン整合性確認, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv index d8c24c704..e88832649 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_GS.csv @@ -56,9 +56,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, ,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, ,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,MS_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,RT_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,RT_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,RT_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->vcdu_counter,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, ,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, ,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, ,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv index 2cab34b08..46993d55f 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_MOBC.csv @@ -122,11 +122,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT コマンドポインタ, ,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT 登録コマンド時刻,変数指定が大変なことに… ,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,BCT 登録コマンドID,変数指定が大変なことに… -,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,CCSDS MS VCDU 使用量, -,MS_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, +,RT_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,CCSDS RT VCDU 使用量, +,RT_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, ,RP_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0登録コマンド数, +,RT_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, +,RT_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list)),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0登録コマンド数, ,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, ,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0登録コマンド数, ,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_tlm_list),PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,TL0コマンドカウンタ, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv deleted file mode 100644 index c225cd792..000000000 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv +++ /dev/null @@ -1,500 +0,0 @@ -,Target,OBC,Local Var,,,,,,,,,,,,,, -,PacketID,0x19,,,,,,,,,,,,,,, -,Enable/Disable,ENABLE,,,,,,,,,,,,,,, -,IsRestricted,FALSE,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note -,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, -,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, -,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, -,PH.TYPE,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, -,PH.SH_FLAG,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, -,PH.APID,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),11,NONE,,,,,,,,, -,PH.SEQ_FLAG,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),2,NONE,,,,,,,,, -,PH.SEQ_COUNT,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),14,NONE,,,,,,,,, -,PH.PACKET_LEN,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SH.VER,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SH.TI,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SH.TLM_ID,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, -,SH.GLOBAL_TIME,double,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,SH.DEST_FLAGS,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, -,SH.DEST_INFO,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,MASTER_BC_ID,uint16_t,telemetry_manager->master_bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO0.BC_ID,uint16_t,telemetry_manager->bc_info[0].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO0.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[0].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO1.BC_ID,uint16_t,telemetry_manager->bc_info[1].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO1.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[1].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO2.BC_ID,uint16_t,telemetry_manager->bc_info[2].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO2.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[2].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO3.BC_ID,uint16_t,telemetry_manager->bc_info[3].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO3.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[3].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO4.BC_ID,uint16_t,telemetry_manager->bc_info[4].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO4.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[4].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO5.BC_ID,uint16_t,telemetry_manager->bc_info[5].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO5.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[5].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO6.BC_ID,uint16_t,telemetry_manager->bc_info[6].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO6.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[6].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO7.BC_ID,uint16_t,telemetry_manager->bc_info[7].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO7.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[7].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO8.BC_ID,uint16_t,telemetry_manager->bc_info[8].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO8.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[8].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO9.BC_ID,uint16_t,telemetry_manager->bc_info[9].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,BC_INFO9.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[9].bc_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,REG_INFO.MASTER.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.master.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.master.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.master.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.master.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.master.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.master.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.master.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.master.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.master.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.master.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.master.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.master.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.MASTER.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.master.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HK_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx_used_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.reserve.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,REG_INFO.RESERVE.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.reserve.tlm_register_pointer_to_bc_cmd_idx,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,IS_INITED,uint8_t,telemetry_manager->is_inited,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv new file mode 100644 index 000000000..1a2becd4c --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x18,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, +,PH.SH_FLAG,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, +,PH.APID,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),2,NONE,,,,,,,,, +,PH.SEQ_COUNT,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,SH.DEST_INFO,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,MASTER_BC_ID,uint16_t,(uint16_t)telemetry_manager->master_bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,DEPLOY_BC_ID,uint16_t,(uint16_t)telemetry_manager->deploy_bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,IS_INITED,uint8_t,telemetry_manager->is_inited,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes_size,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.hk.registered_cmd_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes_size,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.high_freq.registered_cmd_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes_size,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.low_freq.registered_cmd_num,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[0],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[1],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[2],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[3],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[4],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[5],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[6],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[7],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[8],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[9],PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS0_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS0_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS0_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS1_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS1_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS1_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS2_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS2_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS2_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS3_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS3_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS3_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS4_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS4_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS4_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv new file mode 100644 index 000000000..e5d6d9891 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x19,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, +,PH.SH_FLAG,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),1,NONE,,,,,,,,, +,PH.APID,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),2,NONE,,,,,,,,, +,PH.SEQ_COUNT,||,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,SH.DEST_INFO,uint8_t,,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS5_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS5_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS5_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS6_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS6_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS6_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS7_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS7_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS7_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS8_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS8_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS8_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_role,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS9_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,CMD_TABLE.CMDS9_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].cmd_type,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].apid,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].tlm_id,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),HEX,,,,,,,,, +,CMD_TABLE.CMDS9_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].dr_partition,PACKET,=R[-1]C+INT((R[-1]C[1]+R[-1]C[2])/8),=MOD((R[-1]C+R[-1]C[1])@@8),=IF(OR(EXACT(RC[-5]@@"uint8_t")@@EXACT(RC[-5]@@"int8_t"))@@8@@IF(OR(EXACT(RC[-5]@@"uint16_t")@@EXACT(RC[-5]@@"int16_t"))@@16@@IF(OR(EXACT(RC[-5]@@"uint32_t")@@EXACT(RC[-5]@@"int32_t")@@EXACT(RC[-5]@@"float"))@@32@@IF(EXACT(RC[-5]@@"double")@@64)))),NONE,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv index a94ec19c7..e5f198c9e 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_GS.csv @@ -56,9 +56,9 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,COP-1.LOCKOUT_FLAG,uint8_t,gs_validate_info->lockout_flag,PACKET,86,0,8,NONE,,,,,,,,, ,COP-1.RETRANSMIT_FLAG,uint8_t,gs_validate_info->retransmit_flag,PACKET,87,0,8,NONE,,,,,,,,, ,COP-1.POSITIVE_WINDOW_WIDTH,uint8_t,gs_validate_info->positive_window_width,PACKET,88,0,8,NONE,,,,,,,,, -,MS_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,89,0,32,NONE,,,,,,,,, -,MS_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,93,0,32,NONE,,,,,,,,, -,MS_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter,PACKET,97,0,32,NONE,,,,,,,,, +,RT_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,89,0,32,NONE,,,,,,,,, +,RT_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,93,0,32,NONE,,,,,,,,, +,RT_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rt_tlm_packet_handler->vcdu_counter,PACKET,97,0,32,NONE,,,,,,,,, ,RP_TLM.VCDU.FLUSH_INTERVAL,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval,PACKET,101,0,32,NONE,,,,,,,,, ,RP_TLM.VCDU.LAST_UPDATED,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated,PACKET,105,0,32,NONE,,,,,,,,, ,RP_TLM.VCDU.COUNTER,uint32_t,(uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter,PACKET,109,0,32,NONE,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv index ff5180fc2..3421f1de9 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_MOBC.csv @@ -122,11 +122,11 @@ Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,, ,BCT_CMD_PTR,uint8_t,(uint8_t)(block_command_table->pos.cmd),PACKET,291,0,8,NONE,,,,,,,,BCT コマンドポインタ, ,BCT_REGD_TIME,uint32_t,((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,292,0,32,NONE,,,,,,,,BCT 登録コマンド時刻,変数指定が大変なことに… ,BCT_REGD_ID,uint16_t,(uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block@@ (uint8_t)(block_command_table->pos.cmd-1))),PACKET,296,0,16,NONE,,,,,,,,BCT 登録コマンドID,変数指定が大変なことに… -,MS_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,298,0,8,NONE,,,,,,,,CCSDS MS VCDU 使用量, -,MS_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,299,0,32,NONE,,,,,,,,TL0コマンドカウンタ, +,RT_BUFFER_AVAILABLE,uint8_t,gs_driver->ccsds_info.buffer_num,PACKET,298,0,8,NONE,,,,,,,,CCSDS RT VCDU 使用量, +,RT_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,299,0,32,NONE,,,,,,,,TL0コマンドカウンタ, ,RP_T2M_FLUSH_INTERVAL,uint32_t,(uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval),PACKET,303,0,32,NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_ms_tlm_list),PACKET,307,0,32,NONE,,,,,,,,TL0コマンドカウンタ, -,MS_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list)),PACKET,311,0,8,NONE,,,,,,,,TL0登録コマンド数, +,RT_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rt_tlm_list),PACKET,307,0,32,NONE,,,,,,,,TL0コマンドカウンタ, +,RT_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list)),PACKET,311,0,8,NONE,,,,,,,,TL0登録コマンド数, ,ST_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_st_tlm_list),PACKET,312,0,32,NONE,,,,,,,,TL0コマンドカウンタ, ,ST_TLM_QUEUED,uint8_t,(uint8_t)(PL_count_active_nodes(&PH_st_tlm_list)),PACKET,316,0,8,NONE,,,,,,,,TL0登録コマンド数, ,RP_TLM_COUNTER,uint32_t,PL_count_executed_nodes(&PH_rp_tlm_list),PACKET,317,0,32,NONE,,,,,,,,TL0コマンドカウンタ, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv deleted file mode 100644 index 9a9aa50db..000000000 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR.csv +++ /dev/null @@ -1,500 +0,0 @@ -,Target,OBC,Local Var,,,,,,,,,,,,,, -,PacketID,0x19,,,,,,,,,,,,,,, -,Enable/Disable,ENABLE,,,,,,,,,,,,,,, -,IsRestricted,FALSE,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note -,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, -,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, -,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, -,PH.TYPE,,,PACKET,0,3,1,NONE,,,,,,,,, -,PH.SH_FLAG,,,PACKET,0,4,1,NONE,,,,,,,,, -,PH.APID,,,PACKET,0,5,11,NONE,,,,,,,,, -,PH.SEQ_FLAG,uint16_t,,PACKET,2,0,2,NONE,,,,,,,,, -,PH.SEQ_COUNT,,,PACKET,2,2,14,NONE,,,,,,,,, -,PH.PACKET_LEN,uint16_t,,PACKET,4,0,16,NONE,,,,,,,,, -,SH.VER,uint8_t,,PACKET,6,0,8,NONE,,,,,,,,, -,SH.TI,uint32_t,,PACKET,7,0,32,NONE,,,,,,,,, -,SH.TLM_ID,uint8_t,,PACKET,11,0,8,HEX,,,,,,,,, -,SH.GLOBAL_TIME,double,,PACKET,12,0,64,NONE,,,,,,,,, -,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,20,0,32,NONE,,,,,,,,, -,SH.DEST_FLAGS,uint8_t,,PACKET,24,0,8,HEX,,,,,,,,, -,SH.DEST_INFO,uint8_t,,PACKET,25,0,8,NONE,,,,,,,,, -,MASTER_BC_ID,uint16_t,telemetry_manager->master_bc_id,PACKET,26,0,16,NONE,,,,,,,,, -,BC_INFO0.BC_ID,uint16_t,telemetry_manager->bc_info[0].bc_id,PACKET,28,0,16,NONE,,,,,,,,, -,BC_INFO0.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[0].bc_type,PACKET,30,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO1.BC_ID,uint16_t,telemetry_manager->bc_info[1].bc_id,PACKET,31,0,16,NONE,,,,,,,,, -,BC_INFO1.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[1].bc_type,PACKET,33,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO2.BC_ID,uint16_t,telemetry_manager->bc_info[2].bc_id,PACKET,34,0,16,NONE,,,,,,,,, -,BC_INFO2.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[2].bc_type,PACKET,36,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO3.BC_ID,uint16_t,telemetry_manager->bc_info[3].bc_id,PACKET,37,0,16,NONE,,,,,,,,, -,BC_INFO3.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[3].bc_type,PACKET,39,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO4.BC_ID,uint16_t,telemetry_manager->bc_info[4].bc_id,PACKET,40,0,16,NONE,,,,,,,,, -,BC_INFO4.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[4].bc_type,PACKET,42,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO5.BC_ID,uint16_t,telemetry_manager->bc_info[5].bc_id,PACKET,43,0,16,NONE,,,,,,,,, -,BC_INFO5.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[5].bc_type,PACKET,45,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO6.BC_ID,uint16_t,telemetry_manager->bc_info[6].bc_id,PACKET,46,0,16,NONE,,,,,,,,, -,BC_INFO6.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[6].bc_type,PACKET,48,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO7.BC_ID,uint16_t,telemetry_manager->bc_info[7].bc_id,PACKET,49,0,16,NONE,,,,,,,,, -,BC_INFO7.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[7].bc_type,PACKET,51,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO8.BC_ID,uint16_t,telemetry_manager->bc_info[8].bc_id,PACKET,52,0,16,NONE,,,,,,,,, -,BC_INFO8.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[8].bc_type,PACKET,54,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,BC_INFO9.BC_ID,uint16_t,telemetry_manager->bc_info[9].bc_id,PACKET,55,0,16,NONE,,,,,,,,, -,BC_INFO9.BC_TYPE,uint8_t,(uint8_t)telemetry_manager->bc_info[9].bc_type,PACKET,57,0,8,STATUS,,,,,,,0=MASTER@@ 1=HK_TLM@@ 2=SYSTEM_TLM@@ 3=HIGH_FREQ_TLM@@ 4=LOW_FREQ_TLM@@ 5=RESERVE,, -,REG_INFO.MASTER.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.master.bc_info_idx[0],PACKET,58,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.master.bc_info_idx[1],PACKET,59,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.master.bc_info_idx[2],PACKET,60,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.master.bc_info_idx[3],PACKET,61,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.master.bc_info_idx[4],PACKET,62,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.master.bc_info_idx[5],PACKET,63,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.master.bc_info_idx[6],PACKET,64,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.master.bc_info_idx[7],PACKET,65,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.master.bc_info_idx[8],PACKET,66,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.master.bc_info_idx[9],PACKET,67,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.master.bc_info_idx_used_num,PACKET,68,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.master.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,69,0,8,NONE,,,,,,,,, -,REG_INFO.MASTER.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.master.tlm_register_pointer_to_bc_cmd_idx,PACKET,70,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[0],PACKET,71,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[1],PACKET,72,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[2],PACKET,73,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[3],PACKET,74,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[4],PACKET,75,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[5],PACKET,76,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[6],PACKET,77,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[7],PACKET,78,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[8],PACKET,79,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx[9],PACKET,80,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.hk_tlm.bc_info_idx_used_num,PACKET,81,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,82,0,8,NONE,,,,,,,,, -,REG_INFO.HK_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,83,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[0],PACKET,84,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[1],PACKET,85,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[2],PACKET,86,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[3],PACKET,87,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[4],PACKET,88,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[5],PACKET,89,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[6],PACKET,90,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[7],PACKET,91,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[8],PACKET,92,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx[9],PACKET,93,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.system_tlm.bc_info_idx_used_num,PACKET,94,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,95,0,8,NONE,,,,,,,,, -,REG_INFO.SYSTEM_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,96,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[0],PACKET,97,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[1],PACKET,98,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[2],PACKET,99,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[3],PACKET,100,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[4],PACKET,101,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[5],PACKET,102,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[6],PACKET,103,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[7],PACKET,104,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[8],PACKET,105,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx[9],PACKET,106,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.high_freq_tlm.bc_info_idx_used_num,PACKET,107,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,108,0,8,NONE,,,,,,,,, -,REG_INFO.HIGH_FREQ_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,109,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[0],PACKET,110,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[1],PACKET,111,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[2],PACKET,112,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[3],PACKET,113,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[4],PACKET,114,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[5],PACKET,115,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[6],PACKET,116,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[7],PACKET,117,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[8],PACKET,118,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx[9],PACKET,119,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.low_freq_tlm.bc_info_idx_used_num,PACKET,120,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,121,0,8,NONE,,,,,,,,, -,REG_INFO.LOW_FREQ_TLM.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_bc_cmd_idx,PACKET,122,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX0,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[0],PACKET,123,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX1,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[1],PACKET,124,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX2,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[2],PACKET,125,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX3,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[3],PACKET,126,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX4,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[4],PACKET,127,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX5,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[5],PACKET,128,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX6,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[6],PACKET,129,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX7,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[7],PACKET,130,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX8,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[8],PACKET,131,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX9,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx[9],PACKET,132,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.BC_INFO_IDX_USED_NUM,uint8_t,telemetry_manager->register_info.reserve.bc_info_idx_used_num,PACKET,133,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.REG_PNTR_TO_IDX_OF_BC_INFO_IDX,uint8_t,telemetry_manager->register_info.reserve.tlm_register_pointer_to_idx_of_bc_info_idx,PACKET,134,0,8,NONE,,,,,,,,, -,REG_INFO.RESERVE.REG_PNTR_TO_BC_CMD_IDX,uint8_t,telemetry_manager->register_info.reserve.tlm_register_pointer_to_bc_cmd_idx,PACKET,135,0,8,NONE,,,,,,,,, -,IS_INITED,uint8_t,telemetry_manager->is_inited,PACKET,136,0,8,NONE,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv new file mode 100644 index 000000000..6a0d50078 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR1.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x18,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,,,PACKET,0,3,1,NONE,,,,,,,,, +,PH.SH_FLAG,,,PACKET,0,4,1,NONE,,,,,,,,, +,PH.APID,,,PACKET,0,5,11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,2,0,2,NONE,,,,,,,,, +,PH.SEQ_COUNT,,,PACKET,2,2,14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,4,0,16,NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,6,0,8,NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,7,0,32,NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,11,0,8,HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,12,0,64,NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,20,0,32,NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,24,0,8,HEX,,,,,,,,, +,SH.DEST_INFO,uint8_t,,PACKET,25,0,8,NONE,,,,,,,,, +,MASTER_BC_ID,uint16_t,(uint16_t)telemetry_manager->master_bc_id,PACKET,26,0,16,NONE,,,,,,,,, +,DEPLOY_BC_ID,uint16_t,(uint16_t)telemetry_manager->deploy_bc_id,PACKET,28,0,16,NONE,,,,,,,,, +,IS_INITED,uint8_t,telemetry_manager->is_inited,PACKET,30,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes_size,PACKET,31,0,8,NONE,,,,,,,,, +,REG_INFO.HK.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.hk.registered_cmd_num,PACKET,32,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[0],PACKET,33,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[1],PACKET,34,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[2],PACKET,35,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[3],PACKET,36,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[4],PACKET,37,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[5],PACKET,38,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[6],PACKET,39,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[7],PACKET,40,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[8],PACKET,41,0,8,NONE,,,,,,,,, +,REG_INFO.HK.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.hk.cmd_table_idxes[9],PACKET,42,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes_size,PACKET,43,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.high_freq.registered_cmd_num,PACKET,44,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[0],PACKET,45,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[1],PACKET,46,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[2],PACKET,47,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[3],PACKET,48,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[4],PACKET,49,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[5],PACKET,50,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[6],PACKET,51,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[7],PACKET,52,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[8],PACKET,53,0,8,NONE,,,,,,,,, +,REG_INFO.HIGH.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.high_freq.cmd_table_idxes[9],PACKET,54,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES_SIZE,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes_size,PACKET,55,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.REGISTERED_CMD_NUM,uint8_t,telemetry_manager->register_info.low_freq.registered_cmd_num,PACKET,56,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES0,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[0],PACKET,57,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES1,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[1],PACKET,58,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES2,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[2],PACKET,59,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES3,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[3],PACKET,60,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES4,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[4],PACKET,61,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES5,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[5],PACKET,62,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES6,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[6],PACKET,63,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES7,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[7],PACKET,64,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES8,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[8],PACKET,65,0,8,NONE,,,,,,,,, +,REG_INFO.LOW.CMD_TABLE_IDXES9,uint8_t,telemetry_manager->register_info.low_freq.cmd_table_idxes[9],PACKET,66,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_id,PACKET,67,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS0.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_role,PACKET,69,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS0_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].cmd_type,PACKET,70,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].apid,PACKET,71,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].tlm_id,PACKET,73,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].dr_partition,PACKET,74,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].cmd_type,PACKET,75,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].apid,PACKET,76,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].tlm_id,PACKET,78,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].dr_partition,PACKET,79,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].cmd_type,PACKET,80,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].apid,PACKET,81,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].tlm_id,PACKET,83,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].dr_partition,PACKET,84,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].cmd_type,PACKET,85,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].apid,PACKET,86,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].tlm_id,PACKET,88,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].dr_partition,PACKET,89,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].cmd_type,PACKET,90,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].apid,PACKET,91,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].tlm_id,PACKET,93,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].dr_partition,PACKET,94,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].cmd_type,PACKET,95,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].apid,PACKET,96,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].tlm_id,PACKET,98,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].dr_partition,PACKET,99,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].cmd_type,PACKET,100,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].apid,PACKET,101,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].tlm_id,PACKET,103,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].dr_partition,PACKET,104,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].cmd_type,PACKET,105,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].apid,PACKET,106,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].tlm_id,PACKET,108,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].dr_partition,PACKET,109,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].cmd_type,PACKET,110,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].apid,PACKET,111,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].tlm_id,PACKET,113,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].dr_partition,PACKET,114,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS0_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].cmd_type,PACKET,115,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS0_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].apid,PACKET,116,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].tlm_id,PACKET,118,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS0_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].dr_partition,PACKET,119,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_id,PACKET,120,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS1.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_role,PACKET,122,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS1_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].cmd_type,PACKET,123,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].apid,PACKET,124,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].tlm_id,PACKET,126,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].dr_partition,PACKET,127,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].cmd_type,PACKET,128,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].apid,PACKET,129,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].tlm_id,PACKET,131,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].dr_partition,PACKET,132,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].cmd_type,PACKET,133,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].apid,PACKET,134,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].tlm_id,PACKET,136,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].dr_partition,PACKET,137,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].cmd_type,PACKET,138,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].apid,PACKET,139,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].tlm_id,PACKET,141,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].dr_partition,PACKET,142,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].cmd_type,PACKET,143,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].apid,PACKET,144,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].tlm_id,PACKET,146,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].dr_partition,PACKET,147,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].cmd_type,PACKET,148,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].apid,PACKET,149,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].tlm_id,PACKET,151,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].dr_partition,PACKET,152,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].cmd_type,PACKET,153,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].apid,PACKET,154,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].tlm_id,PACKET,156,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].dr_partition,PACKET,157,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].cmd_type,PACKET,158,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].apid,PACKET,159,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].tlm_id,PACKET,161,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].dr_partition,PACKET,162,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].cmd_type,PACKET,163,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].apid,PACKET,164,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].tlm_id,PACKET,166,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].dr_partition,PACKET,167,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS1_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].cmd_type,PACKET,168,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS1_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].apid,PACKET,169,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].tlm_id,PACKET,171,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS1_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].dr_partition,PACKET,172,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_id,PACKET,173,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS2.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_role,PACKET,175,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS2_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].cmd_type,PACKET,176,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].apid,PACKET,177,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].tlm_id,PACKET,179,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].dr_partition,PACKET,180,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].cmd_type,PACKET,181,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].apid,PACKET,182,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].tlm_id,PACKET,184,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].dr_partition,PACKET,185,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].cmd_type,PACKET,186,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].apid,PACKET,187,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].tlm_id,PACKET,189,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].dr_partition,PACKET,190,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].cmd_type,PACKET,191,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].apid,PACKET,192,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].tlm_id,PACKET,194,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].dr_partition,PACKET,195,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].cmd_type,PACKET,196,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].apid,PACKET,197,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].tlm_id,PACKET,199,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].dr_partition,PACKET,200,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].cmd_type,PACKET,201,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].apid,PACKET,202,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].tlm_id,PACKET,204,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].dr_partition,PACKET,205,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].cmd_type,PACKET,206,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].apid,PACKET,207,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].tlm_id,PACKET,209,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].dr_partition,PACKET,210,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].cmd_type,PACKET,211,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].apid,PACKET,212,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].tlm_id,PACKET,214,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].dr_partition,PACKET,215,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].cmd_type,PACKET,216,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].apid,PACKET,217,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].tlm_id,PACKET,219,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].dr_partition,PACKET,220,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS2_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].cmd_type,PACKET,221,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS2_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].apid,PACKET,222,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].tlm_id,PACKET,224,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS2_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].dr_partition,PACKET,225,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_id,PACKET,226,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS3.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_role,PACKET,228,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS3_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].cmd_type,PACKET,229,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].apid,PACKET,230,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].tlm_id,PACKET,232,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].dr_partition,PACKET,233,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].cmd_type,PACKET,234,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].apid,PACKET,235,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].tlm_id,PACKET,237,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].dr_partition,PACKET,238,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].cmd_type,PACKET,239,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].apid,PACKET,240,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].tlm_id,PACKET,242,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].dr_partition,PACKET,243,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].cmd_type,PACKET,244,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].apid,PACKET,245,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].tlm_id,PACKET,247,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].dr_partition,PACKET,248,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].cmd_type,PACKET,249,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].apid,PACKET,250,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].tlm_id,PACKET,252,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].dr_partition,PACKET,253,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].cmd_type,PACKET,254,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].apid,PACKET,255,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].tlm_id,PACKET,257,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].dr_partition,PACKET,258,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].cmd_type,PACKET,259,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].apid,PACKET,260,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].tlm_id,PACKET,262,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].dr_partition,PACKET,263,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].cmd_type,PACKET,264,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].apid,PACKET,265,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].tlm_id,PACKET,267,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].dr_partition,PACKET,268,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].cmd_type,PACKET,269,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].apid,PACKET,270,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].tlm_id,PACKET,272,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].dr_partition,PACKET,273,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS3_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].cmd_type,PACKET,274,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS3_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].apid,PACKET,275,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].tlm_id,PACKET,277,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS3_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].dr_partition,PACKET,278,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_id,PACKET,279,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS4.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_role,PACKET,281,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS4_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].cmd_type,PACKET,282,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].apid,PACKET,283,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].tlm_id,PACKET,285,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].dr_partition,PACKET,286,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].cmd_type,PACKET,287,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].apid,PACKET,288,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].tlm_id,PACKET,290,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].dr_partition,PACKET,291,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].cmd_type,PACKET,292,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].apid,PACKET,293,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].tlm_id,PACKET,295,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].dr_partition,PACKET,296,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].cmd_type,PACKET,297,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].apid,PACKET,298,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].tlm_id,PACKET,300,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].dr_partition,PACKET,301,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].cmd_type,PACKET,302,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].apid,PACKET,303,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].tlm_id,PACKET,305,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].dr_partition,PACKET,306,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].cmd_type,PACKET,307,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].apid,PACKET,308,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].tlm_id,PACKET,310,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].dr_partition,PACKET,311,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].cmd_type,PACKET,312,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].apid,PACKET,313,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].tlm_id,PACKET,315,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].dr_partition,PACKET,316,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].cmd_type,PACKET,317,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].apid,PACKET,318,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].tlm_id,PACKET,320,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].dr_partition,PACKET,321,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].cmd_type,PACKET,322,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].apid,PACKET,323,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].tlm_id,PACKET,325,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].dr_partition,PACKET,326,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS4_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].cmd_type,PACKET,327,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS4_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].apid,PACKET,328,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].tlm_id,PACKET,330,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS4_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].dr_partition,PACKET,331,0,8,NONE,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv new file mode 100644 index 000000000..d6a114966 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/calced_data/SAMPLE_MOBC_TLM_DB_TLM_MGR2.csv @@ -0,0 +1,500 @@ +,Target,OBC,Local Var,,,,,,,,,,,,,, +,PacketID,0x19,,,,,,,,,,,,,,, +,Enable/Disable,ENABLE,,,,,,,,,,,,,,, +,IsRestricted,FALSE,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +Comment,TLM Entry,Onboard Software Info.,,Extraction Info.,,,,Conversion Info.,,,,,,,,Description,Note +,Name,Var.%%##Type,Variable or Function Name,Ext.%%##Type,Pos. Desiginator,,,Conv.%%##Type,Poly (Σa_i * x^i),,,,,,Status,, +,,,,,Octet%%##Pos.,bit%%##Pos.,bit%%##Len.,,a0,a1,a2,a3,a4,a5,,, +,PH.VER,uint16_t,,PACKET,0,0,3,NONE,,,,,,,,, +,PH.TYPE,,,PACKET,0,3,1,NONE,,,,,,,,, +,PH.SH_FLAG,,,PACKET,0,4,1,NONE,,,,,,,,, +,PH.APID,,,PACKET,0,5,11,NONE,,,,,,,,, +,PH.SEQ_FLAG,uint16_t,,PACKET,2,0,2,NONE,,,,,,,,, +,PH.SEQ_COUNT,,,PACKET,2,2,14,NONE,,,,,,,,, +,PH.PACKET_LEN,uint16_t,,PACKET,4,0,16,NONE,,,,,,,,, +,SH.VER,uint8_t,,PACKET,6,0,8,NONE,,,,,,,,, +,SH.TI,uint32_t,,PACKET,7,0,32,NONE,,,,,,,,, +,SH.TLM_ID,uint8_t,,PACKET,11,0,8,HEX,,,,,,,,, +,SH.GLOBAL_TIME,double,,PACKET,12,0,64,NONE,,,,,,,,, +,SH.ON_BOARD_SUBNET_TIME,uint32_t,,PACKET,20,0,32,NONE,,,,,,,,, +,SH.DEST_FLAGS,uint8_t,,PACKET,24,0,8,HEX,,,,,,,,, +,SH.DEST_INFO,uint8_t,,PACKET,25,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_id,PACKET,26,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS5.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_role,PACKET,28,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS5_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].cmd_type,PACKET,29,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].apid,PACKET,30,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].tlm_id,PACKET,32,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].dr_partition,PACKET,33,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].cmd_type,PACKET,34,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].apid,PACKET,35,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].tlm_id,PACKET,37,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].dr_partition,PACKET,38,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].cmd_type,PACKET,39,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].apid,PACKET,40,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].tlm_id,PACKET,42,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].dr_partition,PACKET,43,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].cmd_type,PACKET,44,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].apid,PACKET,45,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].tlm_id,PACKET,47,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].dr_partition,PACKET,48,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].cmd_type,PACKET,49,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].apid,PACKET,50,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].tlm_id,PACKET,52,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].dr_partition,PACKET,53,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].cmd_type,PACKET,54,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].apid,PACKET,55,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].tlm_id,PACKET,57,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].dr_partition,PACKET,58,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].cmd_type,PACKET,59,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].apid,PACKET,60,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].tlm_id,PACKET,62,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].dr_partition,PACKET,63,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].cmd_type,PACKET,64,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].apid,PACKET,65,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].tlm_id,PACKET,67,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].dr_partition,PACKET,68,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].cmd_type,PACKET,69,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].apid,PACKET,70,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].tlm_id,PACKET,72,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].dr_partition,PACKET,73,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS5_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].cmd_type,PACKET,74,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS5_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].apid,PACKET,75,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].tlm_id,PACKET,77,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS5_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].dr_partition,PACKET,78,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_id,PACKET,79,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS6.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_role,PACKET,81,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS6_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].cmd_type,PACKET,82,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].apid,PACKET,83,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].tlm_id,PACKET,85,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].dr_partition,PACKET,86,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].cmd_type,PACKET,87,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].apid,PACKET,88,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].tlm_id,PACKET,90,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].dr_partition,PACKET,91,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].cmd_type,PACKET,92,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].apid,PACKET,93,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].tlm_id,PACKET,95,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].dr_partition,PACKET,96,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].cmd_type,PACKET,97,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].apid,PACKET,98,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].tlm_id,PACKET,100,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].dr_partition,PACKET,101,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].cmd_type,PACKET,102,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].apid,PACKET,103,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].tlm_id,PACKET,105,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].dr_partition,PACKET,106,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].cmd_type,PACKET,107,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].apid,PACKET,108,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].tlm_id,PACKET,110,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].dr_partition,PACKET,111,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].cmd_type,PACKET,112,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].apid,PACKET,113,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].tlm_id,PACKET,115,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].dr_partition,PACKET,116,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].cmd_type,PACKET,117,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].apid,PACKET,118,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].tlm_id,PACKET,120,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].dr_partition,PACKET,121,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].cmd_type,PACKET,122,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].apid,PACKET,123,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].tlm_id,PACKET,125,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].dr_partition,PACKET,126,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS6_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].cmd_type,PACKET,127,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS6_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].apid,PACKET,128,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].tlm_id,PACKET,130,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS6_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].dr_partition,PACKET,131,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_id,PACKET,132,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS7.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_role,PACKET,134,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS7_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].cmd_type,PACKET,135,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].apid,PACKET,136,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].tlm_id,PACKET,138,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].dr_partition,PACKET,139,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].cmd_type,PACKET,140,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].apid,PACKET,141,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].tlm_id,PACKET,143,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].dr_partition,PACKET,144,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].cmd_type,PACKET,145,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].apid,PACKET,146,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].tlm_id,PACKET,148,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].dr_partition,PACKET,149,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].cmd_type,PACKET,150,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].apid,PACKET,151,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].tlm_id,PACKET,153,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].dr_partition,PACKET,154,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].cmd_type,PACKET,155,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].apid,PACKET,156,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].tlm_id,PACKET,158,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].dr_partition,PACKET,159,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].cmd_type,PACKET,160,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].apid,PACKET,161,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].tlm_id,PACKET,163,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].dr_partition,PACKET,164,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].cmd_type,PACKET,165,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].apid,PACKET,166,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].tlm_id,PACKET,168,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].dr_partition,PACKET,169,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].cmd_type,PACKET,170,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].apid,PACKET,171,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].tlm_id,PACKET,173,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].dr_partition,PACKET,174,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].cmd_type,PACKET,175,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].apid,PACKET,176,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].tlm_id,PACKET,178,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].dr_partition,PACKET,179,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS7_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].cmd_type,PACKET,180,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS7_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].apid,PACKET,181,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].tlm_id,PACKET,183,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS7_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].dr_partition,PACKET,184,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_id,PACKET,185,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS8.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_role,PACKET,187,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS8_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].cmd_type,PACKET,188,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].apid,PACKET,189,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].tlm_id,PACKET,191,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].dr_partition,PACKET,192,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].cmd_type,PACKET,193,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].apid,PACKET,194,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].tlm_id,PACKET,196,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].dr_partition,PACKET,197,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].cmd_type,PACKET,198,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].apid,PACKET,199,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].tlm_id,PACKET,201,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].dr_partition,PACKET,202,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].cmd_type,PACKET,203,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].apid,PACKET,204,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].tlm_id,PACKET,206,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].dr_partition,PACKET,207,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].cmd_type,PACKET,208,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].apid,PACKET,209,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].tlm_id,PACKET,211,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].dr_partition,PACKET,212,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].cmd_type,PACKET,213,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].apid,PACKET,214,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].tlm_id,PACKET,216,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].dr_partition,PACKET,217,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].cmd_type,PACKET,218,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].apid,PACKET,219,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].tlm_id,PACKET,221,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].dr_partition,PACKET,222,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].cmd_type,PACKET,223,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].apid,PACKET,224,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].tlm_id,PACKET,226,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].dr_partition,PACKET,227,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].cmd_type,PACKET,228,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].apid,PACKET,229,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].tlm_id,PACKET,231,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].dr_partition,PACKET,232,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS8_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].cmd_type,PACKET,233,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS8_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].apid,PACKET,234,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].tlm_id,PACKET,236,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS8_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].dr_partition,PACKET,237,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9.BC_ID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_id,PACKET,238,0,16,NONE,,,,,,,,, +,CMD_TABLE.CMDS9.BC_ROLE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_role,PACKET,240,0,8,STATUS,,,,,,,0=HK@@ 1=HIGH@@ 2=LOW,, +,CMD_TABLE.CMDS9_0.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].cmd_type,PACKET,241,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_0.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].apid,PACKET,242,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_0.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].tlm_id,PACKET,244,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_0.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].dr_partition,PACKET,245,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_1.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].cmd_type,PACKET,246,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_1.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].apid,PACKET,247,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_1.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].tlm_id,PACKET,249,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_1.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].dr_partition,PACKET,250,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_2.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].cmd_type,PACKET,251,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_2.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].apid,PACKET,252,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_2.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].tlm_id,PACKET,254,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_2.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].dr_partition,PACKET,255,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_3.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].cmd_type,PACKET,256,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_3.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].apid,PACKET,257,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_3.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].tlm_id,PACKET,259,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_3.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].dr_partition,PACKET,260,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_4.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].cmd_type,PACKET,261,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_4.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].apid,PACKET,262,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_4.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].tlm_id,PACKET,264,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_4.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].dr_partition,PACKET,265,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_5.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].cmd_type,PACKET,266,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_5.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].apid,PACKET,267,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_5.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].tlm_id,PACKET,269,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_5.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].dr_partition,PACKET,270,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_6.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].cmd_type,PACKET,271,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_6.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].apid,PACKET,272,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_6.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].tlm_id,PACKET,274,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_6.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].dr_partition,PACKET,275,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_7.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].cmd_type,PACKET,276,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_7.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].apid,PACKET,277,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_7.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].tlm_id,PACKET,279,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_7.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].dr_partition,PACKET,280,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_8.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].cmd_type,PACKET,281,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_8.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].apid,PACKET,282,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_8.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].tlm_id,PACKET,284,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_8.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].dr_partition,PACKET,285,0,8,NONE,,,,,,,,, +,CMD_TABLE.CMDS9_9.CMD_TYPE,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].cmd_type,PACKET,286,0,8,STATUS,,,,,,,0=UNREG@@ 1=GEN_RT_TLM@@ 2=GEN_ST_TLM@@ 3=FW_AS_RT_TLM@@ 4=FW_AS_ST_TLM@@ 5=REPLAY,, +,CMD_TABLE.CMDS9_9.APID,uint16_t,(uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].apid,PACKET,287,0,16,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_9.TLM_ID,uint8_t,(uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].tlm_id,PACKET,289,0,8,HEX,,,,,,,,, +,CMD_TABLE.CMDS9_9.DR_PARTITION,uint8_t,telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].dr_partition,PACKET,290,0,8,NONE,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c b/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c index 8bf81cf3a..b175240f0 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.c @@ -12,7 +12,8 @@ CCP_DEST_TYPE CCP_get_dest_type_from_uint8(uint8_t dest_type) case CCP_DEST_TYPE_TO_ME: // FALL THROUGH case CCP_DEST_TYPE_TO_MOBC: // FALL THROUGH case CCP_DEST_TYPE_TO_AOBC: // FALL THROUGH - case CCP_DEST_TYPE_TO_TOBC: + case CCP_DEST_TYPE_TO_TOBC: // FALL THROUGH + case CCP_DEST_TYPE_TO_APID: return (CCP_DEST_TYPE)dest_type; default: return CCP_DEST_TYPE_TO_UNKOWN; diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h b/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h index 0d59d74ee..60e13ece5 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h @@ -20,18 +20,17 @@ typedef CmdSpacePacket CommonCmdPacket; /** * @enum CCP_DEST_TYPE * @brief コマンドの解釈の宛先を規定 - * @note TO_ME: 自分自身 → 自分自身の TLC や BC として解釈.コマンド実行時に必要に応じて別 OBC へ配送 (この定義は C2A Core で使うため,どんな C2A でも必須) - * @note TO_*: 転送先の TL や BC として解釈 (直接指定 OBC へ配送. GS から来たコマンドを自身のキューにいれない) - * なお,自分自身宛だった場合は,キューに入れる + * @note 詳細は https://github.com/ut-issl/c2a-core/blob/develop/Docs/Core/communication.md を参照 * @note 4bit を想定 */ typedef enum { - CCP_DEST_TYPE_TO_ME = 0, - CCP_DEST_TYPE_TO_MOBC = 1, - CCP_DEST_TYPE_TO_AOBC = 2, - CCP_DEST_TYPE_TO_TOBC = 3, - CCP_DEST_TYPE_TO_UNKOWN = 4 + CCP_DEST_TYPE_TO_ME = 0x0, + CCP_DEST_TYPE_TO_MOBC = 0x1, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_AOBC = 0x2, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_TOBC = 0x3, // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + CCP_DEST_TYPE_TO_UNKOWN = 0xe, + CCP_DEST_TYPE_TO_APID = 0xf } CCP_DEST_TYPE; /** diff --git a/Examples/minimum_user/src/src_user/Settings/TlmCmd/packet_handler_params.h b/Examples/minimum_user/src/src_user/Settings/TlmCmd/packet_handler_params.h index 810c0fcd7..1f6e03e71 100644 --- a/Examples/minimum_user/src/src_user/Settings/TlmCmd/packet_handler_params.h +++ b/Examples/minimum_user/src/src_user/Settings/TlmCmd/packet_handler_params.h @@ -19,7 +19,7 @@ #undef PH_TLC_BC_LIST_MAX #undef PH_TLC_TLM_LIST_MAX #undef PH_TLC_MIS_LIST_MAX -#undef PH_MS_TLM_LIST_MAX +#undef PH_RT_TLM_LIST_MAX #undef PH_ST_TLM_LIST_MAX #undef PH_RP_TLM_LIST_MAX @@ -36,7 +36,7 @@ #ifdef TLCD_ENABLE_MISSION_TL #define PH_TLC_MIS_LIST_MAX (TL_TLM_PAGE_SIZE * 4) // とりあえず TL_DEPLOY_BC, TL_DEPLOY_TLM と同じ長さにした #endif -#define PH_MS_TLM_LIST_MAX (16) +#define PH_RT_TLM_LIST_MAX (16) #ifdef DR_ENABLE #define PH_ST_TLM_LIST_MAX (16) #define PH_RP_TLM_LIST_MAX (16) diff --git a/Examples/minimum_user/src/src_user/Settings/git_revision_config.h b/Examples/minimum_user/src/src_user/Settings/git_revision_config.h new file mode 100644 index 000000000..0a17e3fa3 --- /dev/null +++ b/Examples/minimum_user/src/src_user/Settings/git_revision_config.h @@ -0,0 +1,44 @@ +#ifndef GIT_REVISION_CONFIG_H_ +#define GIT_REVISION_CONFIG_H_ + +/** + * このファイルは自動生成される場合と設定だけを書く場合があります. + * C2A core/userのcommit hashはコマンドラインオプションないしこのファイルでdefineされ, + * 実際の埋め込みについてはsrc_core/Librari/git_revision.hとsrc_core/c2a_core_main.cが制御します. + */ + +#if 1 // このuserはCMakeでビルドするのでこれを使う +/*!< @brief CMakeでビルドする時など,コマンドラインオプションからcommit hashを流し込む場合の設定 + * この場合,以下の定数をコマンドラインオプション(-D)などで設定してください + * GIT_REVISION_C2A_CORE C2A coreのcommit hash(文字列) + * GIT_REVISION_C2A_CORE_SHORT C2A coreのcommit hash short(0xから始まる数値) + * GIT_REVISION_C2A_USER C2A userのcommit hash(文字列) + * GIT_REVISION_C2A_USER_SHORT C2A userのcommit hash short(0xから始まる数値) + */ + +#define C2A_GIT_REVISION_FROM_OPTION +#endif // from option + +#if 0 +/*!< @brief このファイルを自動生成する場合 + * src_user/Script/Git/revision.sh/batが以下のような内容でこのファイルを生成します + */ + +/* This file is generated by src_user/Script/Git/revision.sh */ +#define C2A_GIT_REVISION_GENERATED + +#define GIT_REVISION_C2A_CORE "1234567890123456789012345678901234567890" +#define GIT_REVISION_C2A_CORE_SHORT 0x1234567 +#define GIT_REVISION_C2A_USER "1234567890123456789012345678901234567890" +#define GIT_REVISION_C2A_USER_SHORT 0x1234567 +#endif // generated version + +#if 0 +/*!< @brief commit hashを埋め込まない場合の設定 + * 実際には0が埋め込まれます + */ + +#define C2A_GIT_REVISION_IGNORE +#endif + +#endif // GIT_REVISION_CONFIG_H_ diff --git a/Examples/minimum_user/src/src_user/Test/test/conftest.py b/Examples/minimum_user/src/src_user/Test/test/conftest.py index 5cfd6072c..08f7a12d7 100644 --- a/Examples/minimum_user/src/src_user/Test/test/conftest.py +++ b/Examples/minimum_user/src/src_user/Test/test/conftest.py @@ -37,8 +37,8 @@ def _increase_hk_frequency(): for ti in range(1, 10, 2): ope.send_bl_cmd( ti, - c2a_enum.Cmd_CODE_GENERATE_TLM, - (0x40, c2a_enum.Tlm_CODE_HK, 1), + c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, + (c2a_enum.Tlm_CODE_HK,), ) time.sleep(0.1) diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_event_utility.py b/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_event_utility.py index 72e0121c5..0ce441add 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_event_utility.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_event_utility.py @@ -20,7 +20,7 @@ @pytest.mark.sils def test_event_utility(): tlm_EH = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH ) assert tlm_EH["EH.EVENT_UTIL.IS_ENABLED_EH_EXECUTION"] == "ENABLE" @@ -28,7 +28,7 @@ def test_event_utility(): ope, c2a_enum.Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC, (), c2a_enum.Tlm_CODE_HK ) tlm_EH = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH ) assert tlm_EH["EH.EVENT_UTIL.IS_ENABLED_EH_EXECUTION"] == "DISABLE" @@ -36,7 +36,7 @@ def test_event_utility(): ope, c2a_enum.Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC, (), c2a_enum.Tlm_CODE_HK ) tlm_EH = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH ) assert tlm_EH["EH.EVENT_UTIL.IS_ENABLED_EH_EXECUTION"] == "ENABLE" diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_timeline_command_dispatcher.py b/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_timeline_command_dispatcher.py index 9c370ed5b..2a9821a5e 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_timeline_command_dispatcher.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/Applications/test_timeline_command_dispatcher.py @@ -136,7 +136,7 @@ def test_tlcd_set_id_and_page_for_tlm(): c2a_enum.Tlm_CODE_HK, ) tlm_TL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TL ) assert tlm_TL["TL.LINE_NO"] == target_id assert tlm_TL["TL.PAGE_NO"] == target_page @@ -164,7 +164,7 @@ def test_tlcd_send_and_clear_tl(): clear_tl_gs_and_tl_mis() tlm_TL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TL ) ti_now = tlm_TL["TL.SH.TI"] @@ -250,7 +250,7 @@ def check_registered_tl_cmds(line_no, tis, cmd_id, params): ) tlm_TL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TL ) assert tlm_TL["TL.LINE_NO"] == line_no diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_handler.py b/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_handler.py index fc4c6e8d7..68e52ff66 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_handler.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_handler.py @@ -1785,31 +1785,31 @@ def init_el_and_eh(): def download_eh_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH ) def download_eh_rule_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH_RULE + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH_RULE ) def download_eh_log_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH_LOG + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH_LOG ) def download_eh_index_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EH_INDEX + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EH_INDEX ) def download_el_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL ) @@ -2081,7 +2081,7 @@ def get_latest_event(): print("check_latest_event") tlm_EL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL ) return ( tlm_EL["EL.LATEST_EVENT.GROUP"], diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_logger.py b/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_logger.py index 704442ae4..90c0ffd3c 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_logger.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_logger.py @@ -886,7 +886,7 @@ def update_el_tlm(): ) el_tlm = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL ) g_el_tlm = el_tlm @@ -947,7 +947,7 @@ def update_el_tlog_tlm(): ) el_tlog_tlm = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL_TLOG + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL_TLOG ) g_tlog_em_tlm = el_tlog_tlm @@ -984,7 +984,7 @@ def update_el_clog_tlm(): ) el_clog_tlm = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL_CLOG + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL_CLOG ) g_clog_em_tlm = el_clog_tlm diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/System/ModeManager/test_mode_manager.py b/Examples/minimum_user/src/src_user/Test/test/src_core/System/ModeManager/test_mode_manager.py index 0e86aa7b5..9d9f07585 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/System/ModeManager/test_mode_manager.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/System/ModeManager/test_mode_manager.py @@ -92,7 +92,7 @@ def test_mm_nop(): # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" # tlm_MM = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_MM +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_MM # ) # assert tlm_MM["MM.MODE_LIST_15"] == valid_bc - 0x100 # FIXME: 0x17Eで動くようにする @@ -168,7 +168,7 @@ def test_mm_nop(): # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" # tlm_MM = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_MM +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_MM # ) # # assert tlm_MM["MM.MODE_LIST_15"] == 0x17E # assert ( @@ -194,7 +194,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "ERR" @@ -206,7 +206,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "ERR" @@ -230,7 +230,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" # assert tlm_HK["HK.OBC.MM_OPSMODE"] == "RESERVE_3" @@ -238,7 +238,7 @@ def test_mm_nop(): # time.sleep(5) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.MM_STS"] == "FINISHED" @@ -256,7 +256,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" # assert tlm_HK["HK.OBC.MM_OPSMODE"] == "INITIAL" @@ -264,7 +264,7 @@ def test_mm_nop(): # time.sleep(5) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.MM_STS"] == "FINISHED" @@ -275,7 +275,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" # wings.util.send_cmd_and_confirm( @@ -285,7 +285,7 @@ def test_mm_nop(): # c2a_enum.Tlm_CODE_HK, # ) # tlm_HK = wings.util.generate_and_receive_tlm( -# ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK +# ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK # ) # assert tlm_HK["HK.OBC.GS_CMD.LAST_EXEC.EXEC_STS"] == "SUC" diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/System/TimeManager/test_time_manager.py b/Examples/minimum_user/src/src_user/Test/test/src_core/System/TimeManager/test_time_manager.py index 5c07e4765..941cb8266 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/System/TimeManager/test_time_manager.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/System/TimeManager/test_time_manager.py @@ -34,7 +34,7 @@ def test_tmgr_set_time(): # TL2のテレメループが途切れないように、現在時刻より未来のTIに飛ばす tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) target_ti = tlm_HK["HK.SH.TI"] + 1000 @@ -42,7 +42,7 @@ def test_tmgr_set_time(): ope, c2a_enum.Cmd_CODE_TMGR_SET_TIME, (target_ti,), c2a_enum.Tlm_CODE_HK ) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.SH.TI"] > target_ti assert tlm_HK["HK.SH.TI"] < target_ti + 50 @@ -63,7 +63,7 @@ def test_tmgr_set_unixtime(): ) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) unixtime_at_ti0 = ( current_unixtime @@ -97,7 +97,7 @@ def test_tmgr_set_utl_unixtime_epoch(): ) tlm_MOBC = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_MOBC + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_MOBC ) assert tlm_MOBC["MOBC.TM_UTL_UNIXTIME_EPOCH"] == new_epoch @@ -117,7 +117,7 @@ def test_tmgr_set_and_reset_cycle_correction(): ) tlm_MOBC = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_MOBC + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_MOBC ) assert tlm_MOBC["MOBC.TM_CYCLES_PER_SEC_FIX_RATIO"] == set_value @@ -127,7 +127,7 @@ def test_tmgr_set_and_reset_cycle_correction(): ) tlm_MOBC = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_MOBC + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_MOBC ) assert tlm_MOBC["MOBC.TM_CYCLES_PER_SEC_FIX_RATIO"] == 1.0 @@ -158,8 +158,8 @@ def test_tmgr_utl_cmd(): wings.util.send_utl_cmd( ope, time.time() + 3, - c2a_enum.Cmd_CODE_GENERATE_TLM, - (0x40, c2a_enum.Tlm_CODE_GS, 1), + c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, + (c2a_enum.Tlm_CODE_GS,), ) wings.util.send_utl_cmd( ope, @@ -244,7 +244,7 @@ def check_utl_cmd_with(utl_unixtime_epoch, cycle_correction): # TL_gs に正しく登録されているか確認 tlm_TL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TL ) assert tlm_TL["TL.LINE_NO"] == c2a_enum.TLCD_ID_FROM_GS assert tlm_TL["TL.PAGE_NO"] == 0 diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/System/WatchdogTimer/test_watchdog_timer.py b/Examples/minimum_user/src/src_user/Test/test/src_core/System/WatchdogTimer/test_watchdog_timer.py index 4ff1ebfa1..d476e3d9d 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/System/WatchdogTimer/test_watchdog_timer.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/System/WatchdogTimer/test_watchdog_timer.py @@ -19,28 +19,28 @@ @pytest.mark.sils def test_wdt_at_sils(): tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.WDT.IS_ENABLE"] == "ENA" assert tlm_HK["HK.WDT.IS_CLEAR_ENABLE"] == "ENA" wings.util.send_cmd_and_confirm(ope, c2a_enum.Cmd_CODE_WDT_DISABLE, (), c2a_enum.Tlm_CODE_HK) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.WDT.IS_ENABLE"] == "DIS" assert tlm_HK["HK.WDT.IS_CLEAR_ENABLE"] == "ENA" wings.util.send_cmd_and_confirm(ope, c2a_enum.Cmd_CODE_WDT_ENABLE, (), c2a_enum.Tlm_CODE_HK) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.WDT.IS_ENABLE"] == "ENA" assert tlm_HK["HK.WDT.IS_CLEAR_ENABLE"] == "ENA" wings.util.send_cmd_and_confirm(ope, c2a_enum.Cmd_CODE_WDT_STOP_CLEAR, (), c2a_enum.Tlm_CODE_HK) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.WDT.IS_ENABLE"] == "ENA" assert tlm_HK["HK.WDT.IS_CLEAR_ENABLE"] == "DIS" @@ -50,7 +50,7 @@ def test_wdt_at_sils(): ope, c2a_enum.Cmd_CODE_WDT_START_CLEAR, (), c2a_enum.Tlm_CODE_HK ) tlm_HK = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_HK + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_HK ) assert tlm_HK["HK.WDT.IS_ENABLE"] == "ENA" assert tlm_HK["HK.WDT.IS_CLEAR_ENABLE"] == "ENA" diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_block_command_loader.py b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_block_command_loader.py index 9c732705a..620de1a5f 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_block_command_loader.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_block_command_loader.py @@ -42,7 +42,7 @@ def test_bcl_prepare_param(): c2a_enum.Tlm_CODE_HK, ) tlm_BL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_BL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_BL ) assert tlm_BL["BL.BLOCK_NO"] == c2a_enum.BC_TEST_BCL diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_analyze.py b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_analyze.py index b5292d8dd..81e845359 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_analyze.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_analyze.py @@ -29,7 +29,7 @@ @pytest.mark.sils def test_command_analyze_set_page(): tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.PAGE_NO"] == 0 @@ -37,7 +37,7 @@ def test_command_analyze_set_page(): ope, c2a_enum.Cmd_CODE_CA_SET_PAGE_FOR_TLM, (1,), c2a_enum.Tlm_CODE_HK ) tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.PAGE_NO"] == 1 @@ -55,7 +55,7 @@ def test_command_analyze_add_cmd(): # これから上書きするので,NULL,つまり使われてないものでないとNG tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.CMD0.FUNC"] == "0x00000000" @@ -68,7 +68,7 @@ def test_command_analyze_add_cmd(): ) tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.CMD0.FUNC"] == test_cmd_adr assert tlm_CA["CA.CMD0.PARAM0_SIZE"] == "1BYTE" @@ -88,7 +88,7 @@ def test_command_analyze_add_cmd(): ) tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.CMD0.FUNC"] == test_cmd_adr assert tlm_CA["CA.CMD0.PARAM0_SIZE"] == "NONE" @@ -119,7 +119,7 @@ def test_command_analyze_final_check(): ope, c2a_enum.Cmd_CODE_CA_SET_PAGE_FOR_TLM, (0,), c2a_enum.Tlm_CODE_HK ) tlm_CA = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_CA + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_CA ) assert tlm_CA["CA.PAGE_NO"] == 0 diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_dispatcher.py b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_dispatcher.py index a363ec4fc..ca35d6f46 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_dispatcher.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_command_dispatcher.py @@ -16,73 +16,96 @@ c2a_enum = c2a_enum_utils.get_c2a_enum() ope = wings_utils.get_wings_operation() -# C2Aでのdefine値 -AM_TLM_PAGE_MAX = 4 - @pytest.mark.sils @pytest.mark.real def test_cdis_exec_err(): - # === 以下の4つを無効パラメタでコマンド登録する - # RT Cmd_CODE_TMGR_UPDATE_UNIXTIME - # RT Cmd_CODE_AM_SET_PAGE_FOR_TLM - # TL Cmd_CODE_TMGR_UPDATE_UNIXTIME - # TL Cmd_CODE_AM_SET_PAGE_FOR_TLM + # ===== 以下の 2 コマンドでチェックする ===== + # それぞれを RT/TL で実行する + # 送信するコマンドと想定されるエラーは以下 + # + # Cmd_TMGR_UPDATE_UNIXTIME + # - 無効なパラメタで送信 + # - exec_sts: CCP_EXEC_ILLEGAL_PARAMETER = 2 + # - err_code: 0 + # Cmd_TLCD_DEPLOY_BLOCK + # - 無効な block を展開 + # - exec_sts: CCP_EXEC_ILLEGAL_CONTEXT = 3 + # - err_code: PL_BC_INACTIVE_BLOCK = 8 + + idx_gs_0, idx_tl_0 = check_cdis_exec_err( + c2a_enum.Cmd_CODE_TMGR_UPDATE_UNIXTIME, (-10, 0, 0), c2a_enum.CCP_EXEC_ILLEGAL_PARAMETER, 0 + ) + idx_gs_1, idx_tl_1 = check_cdis_exec_err( + c2a_enum.Cmd_CODE_TLCD_DEPLOY_BLOCK, + (0, c2a_enum.BC_ID_MAX), # BC_ID_MAX は inactive でしょう, という前提 + c2a_enum.CCP_EXEC_ILLEGAL_CONTEXT, + c2a_enum.PL_BC_INACTIVE_BLOCK, + ) - check_cdis_exec_err(c2a_enum.Cmd_CODE_TMGR_UPDATE_UNIXTIME, (-10, 0, 0)) - check_cdis_exec_err(c2a_enum.Cmd_CODE_AM_SET_PAGE_FOR_TLM, (AM_TLM_PAGE_MAX + 100,)) + # 同じ CDIS の場合は同じ idx になることを確認 + assert idx_gs_0 == idx_gs_1 + assert idx_tl_0 == idx_tl_1 - # === 最後にもう一度初期化 + # 最後に EL 初期化 assert "SUC" == wings.util.send_rt_cmd_and_confirm( ope, c2a_enum.Cmd_CODE_EL_INIT, (), c2a_enum.Tlm_CODE_HK ) -def check_cdis_exec_err(cmd_id, params): - # === ELの初期化 +def check_cdis_exec_err(cmd_id, params, exec_sts_expected, err_code_expected): + # === ELの初期化 === assert "SUC" == wings.util.send_rt_cmd_and_confirm( ope, c2a_enum.Cmd_CODE_EL_INIT, (), c2a_enum.Tlm_CODE_HK ) - tlm_EL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL - ) - ti_now = tlm_EL["EL.SH.TI"] - - # === 引数が不正な コマンドチェック - assert "PRM" == wings.util.send_rt_cmd_and_confirm(ope, cmd_id, params, c2a_enum.Tlm_CODE_HK) - wings.util.send_tl_cmd(ope, ti_now + 30, cmd_id, params) - time.sleep(3) - # === ELのチェック - tlm_EL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL + # === TLCD の EL を無効化 === + # EL 初期化で戻ってしまうのでこの位置におく + assert "SUC" == wings.util.send_rt_cmd_and_confirm( + ope, + c2a_enum.Cmd_CODE_EL_DISABLE_LOGGING, + (c2a_enum.EL_CORE_GROUP_TLCD_DEPLOY_BLOCK,), + c2a_enum.Tlm_CODE_HK, ) - # === ELのチェック + # === RT と TL でコマンド送信 === + tlm_HK = ope.get_latest_tlm(c2a_enum.Tlm_CODE_HK)[0] + ti_now = tlm_HK["HK.SH.TI"] + assert "SUC" != wings.util.send_rt_cmd_and_confirm(ope, cmd_id, params, c2a_enum.Tlm_CODE_HK) + wings.util.send_tl_cmd(ope, ti_now + 50, cmd_id, params) + time.sleep(5) + + # === ELのチェック === tlm_EL = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_EL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_EL ) # GS_cmd_dispatcher assert tlm_EL["EL.TLOGS.LOW.EVENTS3.GROUP"] == c2a_enum.EL_CORE_GROUP_CDIS_EXEC_ERR_CODE - assert tlm_EL["EL.TLOGS.LOW.EVENTS3.NOTE"] == 0 + assert tlm_EL["EL.TLOGS.LOW.EVENTS3.LOCAL"] == cmd_id + assert tlm_EL["EL.TLOGS.LOW.EVENTS3.NOTE"] == err_code_expected assert tlm_EL["EL.TLOGS.LOW.EVENTS2.GROUP"] == c2a_enum.EL_CORE_GROUP_CDIS_EXEC_ERR_STS - assert ( - tlm_EL["EL.TLOGS.LOW.EVENTS2.NOTE"] == (cmd_id << 16) | c2a_enum.CCP_EXEC_ILLEGAL_PARAMETER - ) - assert tlm_EL["EL.TLOGS.LOW.EVENTS3.LOCAL"] == tlm_EL["EL.TLOGS.LOW.EVENTS2.LOCAL"] + assert tlm_EL["EL.TLOGS.LOW.EVENTS2.LOCAL"] == cmd_id + idx_gs, r = divmod(tlm_EL["EL.TLOGS.LOW.EVENTS2.NOTE"], 2**24) # 上位 8bit + exec_sts, err_code = divmod(r, 2**16) # 次の 8bit と下位 16bit + assert exec_sts == exec_sts_expected + assert err_code == err_code_expected # TL_cmd_dispatcher assert tlm_EL["EL.TLOGS.LOW.EVENTS1.GROUP"] == c2a_enum.EL_CORE_GROUP_CDIS_EXEC_ERR_CODE - assert tlm_EL["EL.TLOGS.LOW.EVENTS1.NOTE"] == 0 + assert tlm_EL["EL.TLOGS.LOW.EVENTS1.LOCAL"] == cmd_id + assert tlm_EL["EL.TLOGS.LOW.EVENTS1.NOTE"] == err_code_expected assert tlm_EL["EL.TLOGS.LOW.EVENTS0.GROUP"] == c2a_enum.EL_CORE_GROUP_CDIS_EXEC_ERR_STS - assert ( - tlm_EL["EL.TLOGS.LOW.EVENTS0.NOTE"] == (cmd_id << 16) | c2a_enum.CCP_EXEC_ILLEGAL_PARAMETER - ) - assert tlm_EL["EL.TLOGS.LOW.EVENTS1.LOCAL"] == tlm_EL["EL.TLOGS.LOW.EVENTS0.LOCAL"] + assert tlm_EL["EL.TLOGS.LOW.EVENTS0.LOCAL"] == cmd_id + idx_tl, r = divmod(tlm_EL["EL.TLOGS.LOW.EVENTS0.NOTE"], 2**24) # 上位 8bit + exec_sts, err_code = divmod(r, 2**16) # 次の 8bit と下位 16bit + assert exec_sts == exec_sts_expected + assert err_code == err_code_expected + + # GS と TL0 を note で区別できているか + assert idx_gs != idx_tl - # GSとTLをlocalで区別できているか - assert tlm_EL["EL.TLOGS.LOW.EVENTS1.LOCAL"] != tlm_EL["EL.TLOGS.LOW.EVENTS3.LOCAL"] + return [idx_gs, idx_tl] if __name__ == "__main__": diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_common_cmd_packet_util.py b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_common_cmd_packet_util.py index 374737956..26a92be42 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_common_cmd_packet_util.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_common_cmd_packet_util.py @@ -168,7 +168,7 @@ def clear_tl_gs(): def get_latest_tl_tlm(): return wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TL + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TL ) diff --git a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_telemetry_frame.py b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_telemetry_frame.py index c86360281..dbf34a1a0 100644 --- a/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_telemetry_frame.py +++ b/Examples/minimum_user/src/src_user/Test/test/src_core/TlmCmd/test_telemetry_frame.py @@ -29,7 +29,7 @@ def test_telemetry_frame_set_page(): init_tf() tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert tlm_TF["TF.PAGE_NO"] == 0 @@ -37,7 +37,7 @@ def test_telemetry_frame_set_page(): ope, c2a_enum.Cmd_CODE_TF_SET_PAGE_FOR_TLM, (1,), c2a_enum.Tlm_CODE_HK ) tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert tlm_TF["TF.PAGE_NO"] == 1 @@ -45,7 +45,7 @@ def test_telemetry_frame_set_page(): ope, c2a_enum.Cmd_CODE_TF_SET_PAGE_FOR_TLM, (TF_TLM_PAGE_MAX,), c2a_enum.Tlm_CODE_HK ) tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert tlm_TF["TF.PAGE_NO"] == 1 @@ -57,7 +57,7 @@ def test_telemetry_frame_tlm_func(): # 登録されている tlm func の確認 tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert int(tlm_TF["TF.TLM0"], base=16) != 0 # tlm id = 0 は MOBC tlm が普通はある @@ -69,7 +69,7 @@ def test_telemetry_frame_tlm_func(): ope, c2a_enum.Cmd_CODE_TF_SET_PAGE_FOR_TLM, (page,), c2a_enum.Tlm_CODE_HK ) tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert tlm_TF["TF.TLM" + str(offset)] == "0x00000000" @@ -83,7 +83,7 @@ def test_telemetry_frame_tlm_func(): c2a_enum.Tlm_CODE_HK, ) tlm_TF = wings.util.generate_and_receive_tlm( - ope, c2a_enum.Cmd_CODE_GENERATE_TLM, c2a_enum.Tlm_CODE_TF + ope, c2a_enum.Cmd_CODE_TG_GENERATE_RT_TLM, c2a_enum.Tlm_CODE_TF ) assert tlm_TF["TF.TLM" + str(offset)] == func_adr diff --git a/Examples/minimum_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c b/Examples/minimum_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c index 32c7f8ecb..e8e23aae4 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c +++ b/Examples/minimum_user/src/src_user/TlmCmd/NormalBlockCommandDefinition/nbc_start_hk_tlm.c @@ -11,10 +11,8 @@ void BCL_load_start_hk_tlm(void) { - BCL_tool_prepare_param_uint8(0x40); BCL_tool_prepare_param_uint8(Tlm_CODE_HK); - BCL_tool_prepare_param_uint8(1); - BCL_tool_register_cmd(1, Cmd_CODE_GENERATE_TLM); + BCL_tool_register_cmd(1, Cmd_CODE_TG_GENERATE_RT_TLM); BCL_tool_register_deploy (10, BC_HK_CYCLIC_TLM, TLCD_ID_DEPLOY_TLM); } diff --git a/Examples/minimum_user/src/src_user/TlmCmd/block_command_definitions.h b/Examples/minimum_user/src/src_user/TlmCmd/block_command_definitions.h index c599608b4..0399d5d82 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/block_command_definitions.h +++ b/Examples/minimum_user/src/src_user/TlmCmd/block_command_definitions.h @@ -43,16 +43,18 @@ typedef enum // ==== 追加領域 ==== // Telemetry Manager - BC_TLM_MGR0 = 350, - BC_TLM_MGR1 = 351, - BC_TLM_MGR2 = 352, - BC_TLM_MGR3 = 353, - BC_TLM_MGR4 = 354, - BC_TLM_MGR5 = 355, - BC_TLM_MGR6 = 356, - BC_TLM_MGR7 = 357, - BC_TLM_MGR8 = 358, - BC_TLM_MGR9 = 359, + BC_TLM_MGR_MASTER = 348, + BC_TLM_MGR_DEPLOY = 349, + BC_TLM_MGR_0 = 350, + BC_TLM_MGR_1 = 351, + BC_TLM_MGR_2 = 352, + BC_TLM_MGR_3 = 353, + BC_TLM_MGR_4 = 354, + BC_TLM_MGR_5 = 355, + BC_TLM_MGR_6 = 356, + BC_TLM_MGR_7 = 357, + BC_TLM_MGR_8 = 358, + BC_TLM_MGR_9 = 359, // Test BC_TEST_EH_RESPOND = 360, diff --git a/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.c b/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.c index 6639c5e0e..7558b5016 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.c +++ b/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.c @@ -4,7 +4,7 @@ * @brief コマンド定義 * @note このコードは自動生成されています! */ -#include "../../src_core/TlmCmd/command_analyze.h" +#include #include "command_definitions.h" #include "command_source.h" @@ -37,6 +37,14 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_TLCD_SET_ID_FOR_TLM].cmd_func = Cmd_TLCD_SET_ID_FOR_TLM; cmd_table[Cmd_CODE_TLCD_SET_PAGE_FOR_TLM].cmd_func = Cmd_TLCD_SET_PAGE_FOR_TLM; cmd_table[Cmd_CODE_GENERATE_TLM].cmd_func = Cmd_GENERATE_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].cmd_func = Cmd_TG_GENERATE_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_HP_TLM].cmd_func = Cmd_TG_GENERATE_HP_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_RT_TLM].cmd_func = Cmd_TG_GENERATE_RT_TLM; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].cmd_func = Cmd_TG_GENERATE_ST_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].cmd_func = Cmd_TG_FORWARD_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].cmd_func = Cmd_TG_FORWARD_AS_HP_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].cmd_func = Cmd_TG_FORWARD_AS_RT_TLM; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].cmd_func = Cmd_TG_FORWARD_AS_ST_TLM; cmd_table[Cmd_CODE_BCT_CLEAR_BLOCK].cmd_func = Cmd_BCT_CLEAR_BLOCK; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].cmd_func = Cmd_BCT_SET_BLOCK_POSITION; cmd_table[Cmd_CODE_BCT_COPY_BCT].cmd_func = Cmd_BCT_COPY_BCT; @@ -117,24 +125,30 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_TF_SET_PAGE_FOR_TLM].cmd_func = Cmd_TF_SET_PAGE_FOR_TLM; cmd_table[Cmd_CODE_CA_SET_PAGE_FOR_TLM].cmd_func = Cmd_CA_SET_PAGE_FOR_TLM; cmd_table[Cmd_CODE_TLM_MGR_INIT].cmd_func = Cmd_TLM_MGR_INIT; - cmd_table[Cmd_CODE_TLM_MGR_INIT_MASTER_BC].cmd_func = Cmd_TLM_MGR_INIT_MASTER_BC; + cmd_table[Cmd_CODE_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC].cmd_func = Cmd_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC; cmd_table[Cmd_CODE_TLM_MGR_CLEAR_HK_TLM].cmd_func = Cmd_TLM_MGR_CLEAR_HK_TLM; - cmd_table[Cmd_CODE_TLM_MGR_CLEAR_SYSTEM_TLM].cmd_func = Cmd_TLM_MGR_CLEAR_SYSTEM_TLM; + cmd_table[Cmd_CODE_TLM_MGR_CLEAR_HIGH_FREQ_TLM].cmd_func = Cmd_TLM_MGR_CLEAR_HIGH_FREQ_TLM; + cmd_table[Cmd_CODE_TLM_MGR_CLEAR_LOW_FREQ_TLM].cmd_func = Cmd_TLM_MGR_CLEAR_LOW_FREQ_TLM; cmd_table[Cmd_CODE_TLM_MGR_CLEAR_USER_TLM].cmd_func = Cmd_TLM_MGR_CLEAR_USER_TLM; cmd_table[Cmd_CODE_TLM_MGR_START_TLM].cmd_func = Cmd_TLM_MGR_START_TLM; cmd_table[Cmd_CODE_TLM_MGR_STOP_TLM].cmd_func = Cmd_TLM_MGR_STOP_TLM; - cmd_table[Cmd_CODE_TLM_MGR_CLEAR_TLM_TL].cmd_func = Cmd_TLM_MGR_CLEAR_TLM_TL; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HK_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_HK_TLM; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_SYSTEM_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_SYSTEM_TLM; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HIGH_FREQ_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_HIGH_FREQ_TLM; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_LOW_FREQ_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_LOW_FREQ_TLM; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_RT_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_GENERATE_RT_TLM; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_ST_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_GENERATE_ST_TLM; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_REPLAY_TLM].cmd_func = Cmd_TLM_MGR_REGISTER_REPLAY_TLM; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_RT_TLM].cmd_func = Cmd_TLM_MGR_DELETE_GENERATE_RT_TLM; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_ST_TLM].cmd_func = Cmd_TLM_MGR_DELETE_GENERATE_ST_TLM; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_RT_TLM].cmd_func = Cmd_TLM_MGR_DELETE_FORWARD_AS_RT_TLM; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM].cmd_func = Cmd_TLM_MGR_DELETE_FORWARD_AS_ST_TLM; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_REPLAY_TLM].cmd_func = Cmd_TLM_MGR_DELETE_REPLAY_TLM; cmd_table[Cmd_CODE_DCU_ABORT_CMD].cmd_func = Cmd_DCU_ABORT_CMD; cmd_table[Cmd_CODE_DCU_DOWN_ABORT_FLAG].cmd_func = Cmd_DCU_DOWN_ABORT_FLAG; cmd_table[Cmd_CODE_DCU_CLEAR_LOG].cmd_func = Cmd_DCU_CLEAR_LOG; cmd_table[Cmd_CODE_TEST_CCP_REGISTER_TLC_ASAP].cmd_func = Cmd_TEST_CCP_REGISTER_TLC_ASAP; cmd_table[Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO].cmd_func = Cmd_TEST_CCP_GET_RAW_PARAM_INFO; cmd_table[Cmd_CODE_DI_GS_DRIVER_RESET].cmd_func = Cmd_DI_GS_DRIVER_RESET; - cmd_table[Cmd_CODE_DI_GS_SET_MS_FLUSH_INTERVAL].cmd_func = Cmd_DI_GS_SET_MS_FLUSH_INTERVAL; + cmd_table[Cmd_CODE_DI_GS_SET_RT_FLUSH_INTERVAL].cmd_func = Cmd_DI_GS_SET_RT_FLUSH_INTERVAL; cmd_table[Cmd_CODE_DI_GS_SET_RP_FLUSH_INTERVAL].cmd_func = Cmd_DI_GS_SET_RP_FLUSH_INTERVAL; cmd_table[Cmd_CODE_DI_GS_SET_FARM_PW].cmd_func = Cmd_DI_GS_SET_FARM_PW; cmd_table[Cmd_CODE_DI_GS_SET_INFO].cmd_func = Cmd_DI_GS_SET_INFO; @@ -188,6 +202,26 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_GENERATE_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_HP_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_TLM].param_size_infos[2].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_HP_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TG_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_BCT_CLEAR_BLOCK].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_BCT_SET_BLOCK_POSITION].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; @@ -271,25 +305,41 @@ void CA_load_cmd_table(CA_CmdInfo cmd_table[CA_MAX_CMDS]) cmd_table[Cmd_CODE_CA_REGISTER_CMD].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_RAW; cmd_table[Cmd_CODE_TF_SET_PAGE_FOR_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_CA_SET_PAGE_FOR_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HK_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HK_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HK_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_SYSTEM_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_SYSTEM_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_SYSTEM_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HIGH_FREQ_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HIGH_FREQ_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_HIGH_FREQ_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_LOW_FREQ_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_LOW_FREQ_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; - cmd_table[Cmd_CODE_TLM_MGR_REGISTER_LOW_FREQ_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_GENERATE_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_REPLAY_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_REGISTER_REPLAY_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_GENERATE_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_RT_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_RT_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_2BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM].param_size_infos[1].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_REPLAY_TLM].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; + cmd_table[Cmd_CODE_TLM_MGR_DELETE_REPLAY_TLM].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_DCU_ABORT_CMD].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_DCU_DOWN_ABORT_FLAG].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_TEST_CCP_REGISTER_TLC_ASAP].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_4BYTE; cmd_table[Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_2BYTE; cmd_table[Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO].param_size_infos[0].packed_info.bit.second = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO].param_size_infos[1].packed_info.bit.first = CA_PARAM_SIZE_TYPE_RAW; - cmd_table[Cmd_CODE_DI_GS_SET_MS_FLUSH_INTERVAL].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_4BYTE; + cmd_table[Cmd_CODE_DI_GS_SET_RT_FLUSH_INTERVAL].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_4BYTE; cmd_table[Cmd_CODE_DI_GS_SET_RP_FLUSH_INTERVAL].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_4BYTE; cmd_table[Cmd_CODE_DI_GS_SET_FARM_PW].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; cmd_table[Cmd_CODE_DI_GS_SET_INFO].param_size_infos[0].packed_info.bit.first = CA_PARAM_SIZE_TYPE_1BYTE; diff --git a/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.h b/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.h index f60b0e9d0..945326520 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.h +++ b/Examples/minimum_user/src/src_user/TlmCmd/command_definitions.h @@ -35,104 +35,118 @@ typedef enum Cmd_CODE_TLCD_SET_ID_FOR_TLM = 0x0018, Cmd_CODE_TLCD_SET_PAGE_FOR_TLM = 0x0019, Cmd_CODE_GENERATE_TLM = 0x001A, - Cmd_CODE_BCT_CLEAR_BLOCK = 0x001B, - Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x001C, - Cmd_CODE_BCT_COPY_BCT = 0x001D, - Cmd_CODE_BCT_OVERWRITE_CMD = 0x001E, - Cmd_CODE_BCT_FILL_NOP = 0x001F, - Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0020, - Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0021, - Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x0022, - Cmd_CODE_BCE_ROTATE_BLOCK = 0x0023, - Cmd_CODE_BCE_COMBINE_BLOCK = 0x0024, - Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x0025, - Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x0026, - Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x0027, - Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0028, - Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0029, - Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x002A, - Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x002B, - Cmd_CODE_MEM_SET_REGION = 0x002C, - Cmd_CODE_MEM_LOAD = 0x002D, - Cmd_CODE_MEM_SET_DESTINATION = 0x002E, - Cmd_CODE_MEM_COPY_REGION_SEQ = 0x002F, - Cmd_CODE_EL_INIT = 0x0030, - Cmd_CODE_EL_CLEAR_LOG_ALL = 0x0031, - Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x0032, - Cmd_CODE_EL_CLEAR_STATISTICS = 0x0033, - Cmd_CODE_EL_CLEAR_TLOG = 0x0034, - Cmd_CODE_EL_CLEAR_CLOG = 0x0035, - Cmd_CODE_EL_RECORD_EVENT = 0x0036, - Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x0037, - Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x0038, - Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x0039, - Cmd_CODE_EL_ENABLE_LOGGING = 0x003A, - Cmd_CODE_EL_DISABLE_LOGGING = 0x003B, - Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x003C, - Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x003D, - Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x003E, - Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x003F, - Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x0040, - Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x0041, - Cmd_CODE_EH_INIT = 0x0042, - Cmd_CODE_EH_CLEAR_ALL_RULE = 0x0043, - Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x0044, - Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x0045, - Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x0046, - Cmd_CODE_EH_REGISTER_RULE = 0x0047, - Cmd_CODE_EH_DELETE_RULE = 0x0048, - Cmd_CODE_EH_INIT_RULE = 0x0049, - Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x004A, - Cmd_CODE_EH_ACTIVATE_RULE = 0x004B, - Cmd_CODE_EH_INACTIVATE_RULE = 0x004C, - Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x004D, - Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x004E, - Cmd_CODE_EH_SET_RULE_COUNTER = 0x004F, - Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x0050, - Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x0051, - Cmd_CODE_EH_CLEAR_LOG = 0x0052, - Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x0053, - Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x0054, - Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x0055, - Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x0056, - Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x0057, - Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x0058, - Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x0059, - Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x005A, - Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x005B, - Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005C, - Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x005D, - Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x005E, - Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x005F, - Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0060, - Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x0061, - Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x0062, - Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x0063, - Cmd_CODE_TF_INIT = 0x0064, - Cmd_CODE_CA_INIT = 0x0065, - Cmd_CODE_TF_REGISTER_TLM = 0x0066, - Cmd_CODE_CA_REGISTER_CMD = 0x0067, - Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x0068, - Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x0069, - Cmd_CODE_TLM_MGR_INIT = 0x006A, - Cmd_CODE_TLM_MGR_INIT_MASTER_BC = 0x006B, - Cmd_CODE_TLM_MGR_CLEAR_HK_TLM = 0x006C, - Cmd_CODE_TLM_MGR_CLEAR_SYSTEM_TLM = 0x006D, - Cmd_CODE_TLM_MGR_CLEAR_USER_TLM = 0x006E, - Cmd_CODE_TLM_MGR_START_TLM = 0x006F, - Cmd_CODE_TLM_MGR_STOP_TLM = 0x0070, - Cmd_CODE_TLM_MGR_CLEAR_TLM_TL = 0x0071, - Cmd_CODE_TLM_MGR_REGISTER_HK_TLM = 0x0072, - Cmd_CODE_TLM_MGR_REGISTER_SYSTEM_TLM = 0x0073, - Cmd_CODE_TLM_MGR_REGISTER_HIGH_FREQ_TLM = 0x0074, - Cmd_CODE_TLM_MGR_REGISTER_LOW_FREQ_TLM = 0x0075, - Cmd_CODE_DCU_ABORT_CMD = 0x0076, - Cmd_CODE_DCU_DOWN_ABORT_FLAG = 0x0077, - Cmd_CODE_DCU_CLEAR_LOG = 0x0078, - Cmd_CODE_TEST_CCP_REGISTER_TLC_ASAP = 0x0079, - Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO = 0x007A, + Cmd_CODE_TG_GENERATE_TLM = 0x001B, + Cmd_CODE_TG_GENERATE_HP_TLM = 0x001C, + Cmd_CODE_TG_GENERATE_RT_TLM = 0x001D, + Cmd_CODE_TG_GENERATE_ST_TLM = 0x001E, + Cmd_CODE_TG_FORWARD_TLM = 0x001F, + Cmd_CODE_TG_FORWARD_AS_HP_TLM = 0x0020, + Cmd_CODE_TG_FORWARD_AS_RT_TLM = 0x0021, + Cmd_CODE_TG_FORWARD_AS_ST_TLM = 0x0022, + Cmd_CODE_BCT_CLEAR_BLOCK = 0x0023, + Cmd_CODE_BCT_SET_BLOCK_POSITION = 0x0024, + Cmd_CODE_BCT_COPY_BCT = 0x0025, + Cmd_CODE_BCT_OVERWRITE_CMD = 0x0026, + Cmd_CODE_BCT_FILL_NOP = 0x0027, + Cmd_CODE_BCE_ACTIVATE_BLOCK = 0x0028, + Cmd_CODE_BCE_ACTIVATE_BLOCK_BY_ID = 0x0029, + Cmd_CODE_BCE_INACTIVATE_BLOCK_BY_ID = 0x002A, + Cmd_CODE_BCE_ROTATE_BLOCK = 0x002B, + Cmd_CODE_BCE_COMBINE_BLOCK = 0x002C, + Cmd_CODE_BCE_TIMELIMIT_COMBINE_BLOCK = 0x002D, + Cmd_CODE_BCE_RESET_ROTATOR_INFO = 0x002E, + Cmd_CODE_BCE_RESET_COMBINER_INFO = 0x002F, + Cmd_CODE_BCE_SET_ROTATE_INTERVAL = 0x0030, + Cmd_CODE_GSCD_CLEAR_ERR_LOG = 0x0031, + Cmd_CODE_RTCD_CLEAR_ALL_REALTIME = 0x0032, + Cmd_CODE_RTCD_CLEAR_ERR_LOG = 0x0033, + Cmd_CODE_MEM_SET_REGION = 0x0034, + Cmd_CODE_MEM_LOAD = 0x0035, + Cmd_CODE_MEM_SET_DESTINATION = 0x0036, + Cmd_CODE_MEM_COPY_REGION_SEQ = 0x0037, + Cmd_CODE_EL_INIT = 0x0038, + Cmd_CODE_EL_CLEAR_LOG_ALL = 0x0039, + Cmd_CODE_EL_CLEAR_LOG_BY_ERR_LEVEL = 0x003A, + Cmd_CODE_EL_CLEAR_STATISTICS = 0x003B, + Cmd_CODE_EL_CLEAR_TLOG = 0x003C, + Cmd_CODE_EL_CLEAR_CLOG = 0x003D, + Cmd_CODE_EL_RECORD_EVENT = 0x003E, + Cmd_CODE_EL_TLOG_SET_PAGE_FOR_TLM = 0x003F, + Cmd_CODE_EL_CLOG_SET_PAGE_FOR_TLM = 0x0040, + Cmd_CODE_EL_INIT_LOGGING_SETTINGS = 0x0041, + Cmd_CODE_EL_ENABLE_LOGGING = 0x0042, + Cmd_CODE_EL_DISABLE_LOGGING = 0x0043, + Cmd_CODE_EL_ENABLE_LOGGING_ALL = 0x0044, + Cmd_CODE_EL_DISABLE_LOGGING_ALL = 0x0045, + Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE = 0x0046, + Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE = 0x0047, + Cmd_CODE_EL_ENABLE_TLOG_OVERWRITE_ALL = 0x0048, + Cmd_CODE_EL_DISABLE_TLOG_OVERWRITE_ALL = 0x0049, + Cmd_CODE_EH_INIT = 0x004A, + Cmd_CODE_EH_CLEAR_ALL_RULE = 0x004B, + Cmd_CODE_EH_LOAD_DEFAULT_RULE = 0x004C, + Cmd_CODE_EH_SET_REGISTER_RULE_EVENT_PARAM = 0x004D, + Cmd_CODE_EH_SET_REGISTER_RULE_CONDITION_PARAM = 0x004E, + Cmd_CODE_EH_REGISTER_RULE = 0x004F, + Cmd_CODE_EH_DELETE_RULE = 0x0050, + Cmd_CODE_EH_INIT_RULE = 0x0051, + Cmd_CODE_EH_INIT_RULE_FOR_MULTI_LEVEL = 0x0052, + Cmd_CODE_EH_ACTIVATE_RULE = 0x0053, + Cmd_CODE_EH_INACTIVATE_RULE = 0x0054, + Cmd_CODE_EH_ACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0055, + Cmd_CODE_EH_INACTIVATE_RULE_FOR_MULTI_LEVEL = 0x0056, + Cmd_CODE_EH_SET_RULE_COUNTER = 0x0057, + Cmd_CODE_EH_CLEAR_RULE_COUNTER = 0x0058, + Cmd_CODE_EH_CLEAR_RULE_COUNTER_BY_EVENT = 0x0059, + Cmd_CODE_EH_CLEAR_LOG = 0x005A, + Cmd_CODE_EH_SET_MAX_RESPONSE_NUM = 0x005B, + Cmd_CODE_EH_SET_MAX_CHECK_EVENT_NUM = 0x005C, + Cmd_CODE_EH_SET_MAX_MULTI_LEVEL_NUM = 0x005D, + Cmd_CODE_EH_SET_PAGE_OF_RULE_TABLE_FOR_TLM = 0x005E, + Cmd_CODE_EH_SET_PAGE_OF_RULE_SORTED_IDX_FOR_TLM = 0x005F, + Cmd_CODE_EH_SET_PAGE_OF_LOG_TABLE_FOR_TLM = 0x0060, + Cmd_CODE_EH_SET_TARGET_ID_OF_RULE_TABLE_FOR_TLM = 0x0061, + Cmd_CODE_EH_MATCH_EVENT_COUNTER_TO_EL = 0x0062, + Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP = 0x0063, + Cmd_CODE_EH_INIT_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0064, + Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP = 0x0065, + Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP = 0x0066, + Cmd_CODE_EH_ACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0067, + Cmd_CODE_EH_INACTIVATE_RULE_BY_EVENT_GROUP_FOR_MULTI_LEVEL = 0x0068, + Cmd_CODE_EVENT_UTIL_ENABLE_EH_EXEC = 0x0069, + Cmd_CODE_EVENT_UTIL_DISABLE_EH_EXEC = 0x006A, + Cmd_CODE_EVENT_UTIL_EXEC_EH = 0x006B, + Cmd_CODE_TF_INIT = 0x006C, + Cmd_CODE_CA_INIT = 0x006D, + Cmd_CODE_TF_REGISTER_TLM = 0x006E, + Cmd_CODE_CA_REGISTER_CMD = 0x006F, + Cmd_CODE_TF_SET_PAGE_FOR_TLM = 0x0070, + Cmd_CODE_CA_SET_PAGE_FOR_TLM = 0x0071, + Cmd_CODE_TLM_MGR_INIT = 0x0072, + Cmd_CODE_TLM_MGR_INIT_MASTER_AND_DEPLOY_BC = 0x0073, + Cmd_CODE_TLM_MGR_CLEAR_HK_TLM = 0x0074, + Cmd_CODE_TLM_MGR_CLEAR_HIGH_FREQ_TLM = 0x0075, + Cmd_CODE_TLM_MGR_CLEAR_LOW_FREQ_TLM = 0x0076, + Cmd_CODE_TLM_MGR_CLEAR_USER_TLM = 0x0077, + Cmd_CODE_TLM_MGR_START_TLM = 0x0078, + Cmd_CODE_TLM_MGR_STOP_TLM = 0x0079, + Cmd_CODE_TLM_MGR_REGISTER_GENERATE_RT_TLM = 0x007A, + Cmd_CODE_TLM_MGR_REGISTER_GENERATE_ST_TLM = 0x007B, + Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_RT_TLM = 0x007C, + Cmd_CODE_TLM_MGR_REGISTER_FORWARD_AS_ST_TLM = 0x007D, + Cmd_CODE_TLM_MGR_REGISTER_REPLAY_TLM = 0x007E, + Cmd_CODE_TLM_MGR_DELETE_GENERATE_RT_TLM = 0x007F, + Cmd_CODE_TLM_MGR_DELETE_GENERATE_ST_TLM = 0x0080, + Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_RT_TLM = 0x0081, + Cmd_CODE_TLM_MGR_DELETE_FORWARD_AS_ST_TLM = 0x0082, + Cmd_CODE_TLM_MGR_DELETE_REPLAY_TLM = 0x0083, + Cmd_CODE_DCU_ABORT_CMD = 0x0084, + Cmd_CODE_DCU_DOWN_ABORT_FLAG = 0x0085, + Cmd_CODE_DCU_CLEAR_LOG = 0x0086, + Cmd_CODE_TEST_CCP_REGISTER_TLC_ASAP = 0x0087, + Cmd_CODE_TEST_CCP_GET_RAW_PARAM_INFO = 0x0088, Cmd_CODE_DI_GS_DRIVER_RESET = 0x0100, - Cmd_CODE_DI_GS_SET_MS_FLUSH_INTERVAL = 0x0101, + Cmd_CODE_DI_GS_SET_RT_FLUSH_INTERVAL = 0x0101, Cmd_CODE_DI_GS_SET_RP_FLUSH_INTERVAL = 0x0102, Cmd_CODE_DI_GS_SET_FARM_PW = 0x0103, Cmd_CODE_DI_GS_SET_INFO = 0x0104, diff --git a/Examples/minimum_user/src/src_user/TlmCmd/common_tlm_packet.c b/Examples/minimum_user/src/src_user/TlmCmd/common_tlm_packet.c index b557a6e2c..01038cec8 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/common_tlm_packet.c +++ b/Examples/minimum_user/src/src_user/TlmCmd/common_tlm_packet.c @@ -6,6 +6,7 @@ */ #include #include +#include #include @@ -27,6 +28,11 @@ void CTP_set_apid(CommonTlmPacket* packet, APID apid) TSP_set_apid(packet, apid); } +double CTP_get_global_time(const CommonTlmPacket* packet) +{ + return TSP_get_global_time(packet); +} + void CTP_set_global_time(CommonTlmPacket* packet) { // 何を設定するかはユーザー定義 @@ -34,6 +40,18 @@ void CTP_set_global_time(CommonTlmPacket* packet) TSP_set_global_time(packet, 0.0); } +uint32_t CTP_get_on_board_subnet_time(const CommonTlmPacket* packet) +{ + return TSP_get_on_board_subnet_time(packet); +} + +void CTP_set_on_board_subnet_time(CommonTlmPacket* packet) +{ + // 何を設定するかはユーザー定義 + // MOBC では主に TI を,2nd OBC では主に 0xffffffff を + TSP_set_on_board_subnet_time(packet, (uint32_t)TMGR_get_master_total_cycle()); +} + ctp_dest_flags_t CTP_get_dest_flags(const CommonTlmPacket* packet) { return TSP_get_dest_flags(packet); diff --git a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.c b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.c index 7f8162993..b2196ff9c 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.c +++ b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.c @@ -4,13 +4,14 @@ * @brief テレメトリ定義 * @note このコードは自動生成されています! */ -#include "../../src_core/TlmCmd/telemetry_frame.h" +#include #include "telemetry_definitions.h" #include "telemetry_source.h" static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len); static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t* packet, uint16_t* len, uint16_t max_len); -static TF_TLM_FUNC_ACK Tlm_TLM_MGR_(uint8_t* packet, uint16_t* len, uint16_t max_len); +static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t* packet, uint16_t* len, uint16_t max_len); +static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t* packet, uint16_t* len, uint16_t max_len); static TF_TLM_FUNC_ACK Tlm_TL_(uint8_t* packet, uint16_t* len, uint16_t max_len); static TF_TLM_FUNC_ACK Tlm_BL_(uint8_t* packet, uint16_t* len, uint16_t max_len); static TF_TLM_FUNC_ACK Tlm_CA_(uint8_t* packet, uint16_t* len, uint16_t max_len); @@ -31,15 +32,12 @@ static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len) static TF_TLM_FUNC_ACK Tlm_GIT_REV_(uint8_t* packet, uint16_t* len, uint16_t max_len); static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t* packet, uint16_t* len, uint16_t max_len); -// AOBC TLM -static TF_TLM_FUNC_ACK Tlm_AOBC_AOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len); -static TF_TLM_FUNC_ACK Tlm_AOBC_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len); - void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS]) { tlm_table[Tlm_CODE_MOBC].tlm_func = Tlm_MOBC_; tlm_table[Tlm_CODE_MEM].tlm_func = Tlm_MEM_; - tlm_table[Tlm_CODE_TLM_MGR].tlm_func = Tlm_TLM_MGR_; + tlm_table[Tlm_CODE_TLM_MGR1].tlm_func = Tlm_TLM_MGR1_; + tlm_table[Tlm_CODE_TLM_MGR2].tlm_func = Tlm_TLM_MGR2_; tlm_table[Tlm_CODE_TL].tlm_func = Tlm_TL_; tlm_table[Tlm_CODE_BL].tlm_func = Tlm_BL_; tlm_table[Tlm_CODE_CA].tlm_func = Tlm_CA_; @@ -59,10 +57,6 @@ void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS]) tlm_table[Tlm_CODE_HK].tlm_func = Tlm_HK_; tlm_table[Tlm_CODE_GIT_REV].tlm_func = Tlm_GIT_REV_; tlm_table[Tlm_CODE_UART_TEST].tlm_func = Tlm_UART_TEST_; - - // AOBC TLM - tlm_table[Tlm_CODE_AOBC_AOBC].tlm_func = Tlm_AOBC_AOBC_; - tlm_table[Tlm_CODE_AOBC_HK].tlm_func = Tlm_AOBC_HK_; } static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len) @@ -173,10 +167,10 @@ static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t* packet, uint16_t* len, uint16_t max_le TF_copy_u32(&packet[292], ((block_command_table->pos.cmd == 0) ? 0 : (uint32_t)BCT_get_ti(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1)))); TF_copy_u16(&packet[296], (uint16_t)((block_command_table->pos.cmd == 0) ? 0 : BCT_get_id(block_command_table->pos.block, (uint8_t)(block_command_table->pos.cmd-1)))); TF_copy_u8(&packet[298], gs_driver->ccsds_info.buffer_num); - TF_copy_u32(&packet[299], (uint32_t)(DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); + TF_copy_u32(&packet[299], (uint32_t)(DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); TF_copy_u32(&packet[303], (uint32_t)(DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval)); - TF_copy_u32(&packet[307], PL_count_executed_nodes(&PH_ms_tlm_list)); - TF_copy_u8(&packet[311], (uint8_t)(PL_count_active_nodes(&PH_ms_tlm_list))); + TF_copy_u32(&packet[307], PL_count_executed_nodes(&PH_rt_tlm_list)); + TF_copy_u8(&packet[311], (uint8_t)(PL_count_active_nodes(&PH_rt_tlm_list))); TF_copy_u32(&packet[312], PL_count_executed_nodes(&PH_st_tlm_list)); TF_copy_u8(&packet[316], (uint8_t)(PL_count_active_nodes(&PH_st_tlm_list))); TF_copy_u32(&packet[317], PL_count_executed_nodes(&PH_rp_tlm_list)); @@ -209,114 +203,484 @@ static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t* packet, uint16_t* len, uint16_t max_len return TF_TLM_FUNC_ACK_SUCCESS; } -static TF_TLM_FUNC_ACK Tlm_TLM_MGR_(uint8_t* packet, uint16_t* len, uint16_t max_len) +static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t* packet, uint16_t* len, uint16_t max_len) +{ + if (332 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + +#ifndef BUILD_SETTINGS_FAST_BUILD + TF_copy_u16(&packet[26], (uint16_t)telemetry_manager->master_bc_id); + TF_copy_u16(&packet[28], (uint16_t)telemetry_manager->deploy_bc_id); + TF_copy_u8(&packet[30], telemetry_manager->is_inited); + TF_copy_u8(&packet[31], telemetry_manager->register_info.hk.cmd_table_idxes_size); + TF_copy_u8(&packet[32], telemetry_manager->register_info.hk.registered_cmd_num); + TF_copy_u8(&packet[33], telemetry_manager->register_info.hk.cmd_table_idxes[0]); + TF_copy_u8(&packet[34], telemetry_manager->register_info.hk.cmd_table_idxes[1]); + TF_copy_u8(&packet[35], telemetry_manager->register_info.hk.cmd_table_idxes[2]); + TF_copy_u8(&packet[36], telemetry_manager->register_info.hk.cmd_table_idxes[3]); + TF_copy_u8(&packet[37], telemetry_manager->register_info.hk.cmd_table_idxes[4]); + TF_copy_u8(&packet[38], telemetry_manager->register_info.hk.cmd_table_idxes[5]); + TF_copy_u8(&packet[39], telemetry_manager->register_info.hk.cmd_table_idxes[6]); + TF_copy_u8(&packet[40], telemetry_manager->register_info.hk.cmd_table_idxes[7]); + TF_copy_u8(&packet[41], telemetry_manager->register_info.hk.cmd_table_idxes[8]); + TF_copy_u8(&packet[42], telemetry_manager->register_info.hk.cmd_table_idxes[9]); + TF_copy_u8(&packet[43], telemetry_manager->register_info.high_freq.cmd_table_idxes_size); + TF_copy_u8(&packet[44], telemetry_manager->register_info.high_freq.registered_cmd_num); + TF_copy_u8(&packet[45], telemetry_manager->register_info.high_freq.cmd_table_idxes[0]); + TF_copy_u8(&packet[46], telemetry_manager->register_info.high_freq.cmd_table_idxes[1]); + TF_copy_u8(&packet[47], telemetry_manager->register_info.high_freq.cmd_table_idxes[2]); + TF_copy_u8(&packet[48], telemetry_manager->register_info.high_freq.cmd_table_idxes[3]); + TF_copy_u8(&packet[49], telemetry_manager->register_info.high_freq.cmd_table_idxes[4]); + TF_copy_u8(&packet[50], telemetry_manager->register_info.high_freq.cmd_table_idxes[5]); + TF_copy_u8(&packet[51], telemetry_manager->register_info.high_freq.cmd_table_idxes[6]); + TF_copy_u8(&packet[52], telemetry_manager->register_info.high_freq.cmd_table_idxes[7]); + TF_copy_u8(&packet[53], telemetry_manager->register_info.high_freq.cmd_table_idxes[8]); + TF_copy_u8(&packet[54], telemetry_manager->register_info.high_freq.cmd_table_idxes[9]); + TF_copy_u8(&packet[55], telemetry_manager->register_info.low_freq.cmd_table_idxes_size); + TF_copy_u8(&packet[56], telemetry_manager->register_info.low_freq.registered_cmd_num); + TF_copy_u8(&packet[57], telemetry_manager->register_info.low_freq.cmd_table_idxes[0]); + TF_copy_u8(&packet[58], telemetry_manager->register_info.low_freq.cmd_table_idxes[1]); + TF_copy_u8(&packet[59], telemetry_manager->register_info.low_freq.cmd_table_idxes[2]); + TF_copy_u8(&packet[60], telemetry_manager->register_info.low_freq.cmd_table_idxes[3]); + TF_copy_u8(&packet[61], telemetry_manager->register_info.low_freq.cmd_table_idxes[4]); + TF_copy_u8(&packet[62], telemetry_manager->register_info.low_freq.cmd_table_idxes[5]); + TF_copy_u8(&packet[63], telemetry_manager->register_info.low_freq.cmd_table_idxes[6]); + TF_copy_u8(&packet[64], telemetry_manager->register_info.low_freq.cmd_table_idxes[7]); + TF_copy_u8(&packet[65], telemetry_manager->register_info.low_freq.cmd_table_idxes[8]); + TF_copy_u8(&packet[66], telemetry_manager->register_info.low_freq.cmd_table_idxes[9]); + TF_copy_u16(&packet[67], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_id); + TF_copy_u8(&packet[69], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].bc_role); + TF_copy_u8(&packet[70], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].cmd_type); + TF_copy_u16(&packet[71], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].apid); + TF_copy_u8(&packet[73], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].tlm_id); + TF_copy_u8(&packet[74], telemetry_manager->cmd_table.cmd_blocks[0].cmds[0].dr_partition); + TF_copy_u8(&packet[75], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].cmd_type); + TF_copy_u16(&packet[76], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].apid); + TF_copy_u8(&packet[78], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].tlm_id); + TF_copy_u8(&packet[79], telemetry_manager->cmd_table.cmd_blocks[0].cmds[1].dr_partition); + TF_copy_u8(&packet[80], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].cmd_type); + TF_copy_u16(&packet[81], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].apid); + TF_copy_u8(&packet[83], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].tlm_id); + TF_copy_u8(&packet[84], telemetry_manager->cmd_table.cmd_blocks[0].cmds[2].dr_partition); + TF_copy_u8(&packet[85], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].cmd_type); + TF_copy_u16(&packet[86], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].apid); + TF_copy_u8(&packet[88], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].tlm_id); + TF_copy_u8(&packet[89], telemetry_manager->cmd_table.cmd_blocks[0].cmds[3].dr_partition); + TF_copy_u8(&packet[90], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].cmd_type); + TF_copy_u16(&packet[91], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].apid); + TF_copy_u8(&packet[93], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].tlm_id); + TF_copy_u8(&packet[94], telemetry_manager->cmd_table.cmd_blocks[0].cmds[4].dr_partition); + TF_copy_u8(&packet[95], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].cmd_type); + TF_copy_u16(&packet[96], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].apid); + TF_copy_u8(&packet[98], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].tlm_id); + TF_copy_u8(&packet[99], telemetry_manager->cmd_table.cmd_blocks[0].cmds[5].dr_partition); + TF_copy_u8(&packet[100], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].cmd_type); + TF_copy_u16(&packet[101], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].apid); + TF_copy_u8(&packet[103], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].tlm_id); + TF_copy_u8(&packet[104], telemetry_manager->cmd_table.cmd_blocks[0].cmds[6].dr_partition); + TF_copy_u8(&packet[105], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].cmd_type); + TF_copy_u16(&packet[106], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].apid); + TF_copy_u8(&packet[108], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].tlm_id); + TF_copy_u8(&packet[109], telemetry_manager->cmd_table.cmd_blocks[0].cmds[7].dr_partition); + TF_copy_u8(&packet[110], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].cmd_type); + TF_copy_u16(&packet[111], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].apid); + TF_copy_u8(&packet[113], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].tlm_id); + TF_copy_u8(&packet[114], telemetry_manager->cmd_table.cmd_blocks[0].cmds[8].dr_partition); + TF_copy_u8(&packet[115], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].cmd_type); + TF_copy_u16(&packet[116], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].apid); + TF_copy_u8(&packet[118], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].tlm_id); + TF_copy_u8(&packet[119], telemetry_manager->cmd_table.cmd_blocks[0].cmds[9].dr_partition); + TF_copy_u16(&packet[120], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_id); + TF_copy_u8(&packet[122], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].bc_role); + TF_copy_u8(&packet[123], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].cmd_type); + TF_copy_u16(&packet[124], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].apid); + TF_copy_u8(&packet[126], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].tlm_id); + TF_copy_u8(&packet[127], telemetry_manager->cmd_table.cmd_blocks[1].cmds[0].dr_partition); + TF_copy_u8(&packet[128], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].cmd_type); + TF_copy_u16(&packet[129], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].apid); + TF_copy_u8(&packet[131], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].tlm_id); + TF_copy_u8(&packet[132], telemetry_manager->cmd_table.cmd_blocks[1].cmds[1].dr_partition); + TF_copy_u8(&packet[133], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].cmd_type); + TF_copy_u16(&packet[134], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].apid); + TF_copy_u8(&packet[136], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].tlm_id); + TF_copy_u8(&packet[137], telemetry_manager->cmd_table.cmd_blocks[1].cmds[2].dr_partition); + TF_copy_u8(&packet[138], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].cmd_type); + TF_copy_u16(&packet[139], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].apid); + TF_copy_u8(&packet[141], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].tlm_id); + TF_copy_u8(&packet[142], telemetry_manager->cmd_table.cmd_blocks[1].cmds[3].dr_partition); + TF_copy_u8(&packet[143], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].cmd_type); + TF_copy_u16(&packet[144], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].apid); + TF_copy_u8(&packet[146], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].tlm_id); + TF_copy_u8(&packet[147], telemetry_manager->cmd_table.cmd_blocks[1].cmds[4].dr_partition); + TF_copy_u8(&packet[148], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].cmd_type); + TF_copy_u16(&packet[149], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].apid); + TF_copy_u8(&packet[151], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].tlm_id); + TF_copy_u8(&packet[152], telemetry_manager->cmd_table.cmd_blocks[1].cmds[5].dr_partition); + TF_copy_u8(&packet[153], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].cmd_type); + TF_copy_u16(&packet[154], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].apid); + TF_copy_u8(&packet[156], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].tlm_id); + TF_copy_u8(&packet[157], telemetry_manager->cmd_table.cmd_blocks[1].cmds[6].dr_partition); + TF_copy_u8(&packet[158], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].cmd_type); + TF_copy_u16(&packet[159], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].apid); + TF_copy_u8(&packet[161], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].tlm_id); + TF_copy_u8(&packet[162], telemetry_manager->cmd_table.cmd_blocks[1].cmds[7].dr_partition); + TF_copy_u8(&packet[163], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].cmd_type); + TF_copy_u16(&packet[164], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].apid); + TF_copy_u8(&packet[166], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].tlm_id); + TF_copy_u8(&packet[167], telemetry_manager->cmd_table.cmd_blocks[1].cmds[8].dr_partition); + TF_copy_u8(&packet[168], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].cmd_type); + TF_copy_u16(&packet[169], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].apid); + TF_copy_u8(&packet[171], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].tlm_id); + TF_copy_u8(&packet[172], telemetry_manager->cmd_table.cmd_blocks[1].cmds[9].dr_partition); + TF_copy_u16(&packet[173], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_id); + TF_copy_u8(&packet[175], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].bc_role); + TF_copy_u8(&packet[176], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].cmd_type); + TF_copy_u16(&packet[177], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].apid); + TF_copy_u8(&packet[179], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].tlm_id); + TF_copy_u8(&packet[180], telemetry_manager->cmd_table.cmd_blocks[2].cmds[0].dr_partition); + TF_copy_u8(&packet[181], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].cmd_type); + TF_copy_u16(&packet[182], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].apid); + TF_copy_u8(&packet[184], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].tlm_id); + TF_copy_u8(&packet[185], telemetry_manager->cmd_table.cmd_blocks[2].cmds[1].dr_partition); + TF_copy_u8(&packet[186], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].cmd_type); + TF_copy_u16(&packet[187], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].apid); + TF_copy_u8(&packet[189], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].tlm_id); + TF_copy_u8(&packet[190], telemetry_manager->cmd_table.cmd_blocks[2].cmds[2].dr_partition); + TF_copy_u8(&packet[191], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].cmd_type); + TF_copy_u16(&packet[192], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].apid); + TF_copy_u8(&packet[194], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].tlm_id); + TF_copy_u8(&packet[195], telemetry_manager->cmd_table.cmd_blocks[2].cmds[3].dr_partition); + TF_copy_u8(&packet[196], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].cmd_type); + TF_copy_u16(&packet[197], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].apid); + TF_copy_u8(&packet[199], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].tlm_id); + TF_copy_u8(&packet[200], telemetry_manager->cmd_table.cmd_blocks[2].cmds[4].dr_partition); + TF_copy_u8(&packet[201], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].cmd_type); + TF_copy_u16(&packet[202], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].apid); + TF_copy_u8(&packet[204], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].tlm_id); + TF_copy_u8(&packet[205], telemetry_manager->cmd_table.cmd_blocks[2].cmds[5].dr_partition); + TF_copy_u8(&packet[206], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].cmd_type); + TF_copy_u16(&packet[207], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].apid); + TF_copy_u8(&packet[209], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].tlm_id); + TF_copy_u8(&packet[210], telemetry_manager->cmd_table.cmd_blocks[2].cmds[6].dr_partition); + TF_copy_u8(&packet[211], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].cmd_type); + TF_copy_u16(&packet[212], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].apid); + TF_copy_u8(&packet[214], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].tlm_id); + TF_copy_u8(&packet[215], telemetry_manager->cmd_table.cmd_blocks[2].cmds[7].dr_partition); + TF_copy_u8(&packet[216], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].cmd_type); + TF_copy_u16(&packet[217], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].apid); + TF_copy_u8(&packet[219], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].tlm_id); + TF_copy_u8(&packet[220], telemetry_manager->cmd_table.cmd_blocks[2].cmds[8].dr_partition); + TF_copy_u8(&packet[221], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].cmd_type); + TF_copy_u16(&packet[222], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].apid); + TF_copy_u8(&packet[224], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].tlm_id); + TF_copy_u8(&packet[225], telemetry_manager->cmd_table.cmd_blocks[2].cmds[9].dr_partition); + TF_copy_u16(&packet[226], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_id); + TF_copy_u8(&packet[228], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].bc_role); + TF_copy_u8(&packet[229], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].cmd_type); + TF_copy_u16(&packet[230], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].apid); + TF_copy_u8(&packet[232], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].tlm_id); + TF_copy_u8(&packet[233], telemetry_manager->cmd_table.cmd_blocks[3].cmds[0].dr_partition); + TF_copy_u8(&packet[234], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].cmd_type); + TF_copy_u16(&packet[235], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].apid); + TF_copy_u8(&packet[237], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].tlm_id); + TF_copy_u8(&packet[238], telemetry_manager->cmd_table.cmd_blocks[3].cmds[1].dr_partition); + TF_copy_u8(&packet[239], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].cmd_type); + TF_copy_u16(&packet[240], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].apid); + TF_copy_u8(&packet[242], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].tlm_id); + TF_copy_u8(&packet[243], telemetry_manager->cmd_table.cmd_blocks[3].cmds[2].dr_partition); + TF_copy_u8(&packet[244], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].cmd_type); + TF_copy_u16(&packet[245], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].apid); + TF_copy_u8(&packet[247], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].tlm_id); + TF_copy_u8(&packet[248], telemetry_manager->cmd_table.cmd_blocks[3].cmds[3].dr_partition); + TF_copy_u8(&packet[249], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].cmd_type); + TF_copy_u16(&packet[250], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].apid); + TF_copy_u8(&packet[252], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].tlm_id); + TF_copy_u8(&packet[253], telemetry_manager->cmd_table.cmd_blocks[3].cmds[4].dr_partition); + TF_copy_u8(&packet[254], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].cmd_type); + TF_copy_u16(&packet[255], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].apid); + TF_copy_u8(&packet[257], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].tlm_id); + TF_copy_u8(&packet[258], telemetry_manager->cmd_table.cmd_blocks[3].cmds[5].dr_partition); + TF_copy_u8(&packet[259], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].cmd_type); + TF_copy_u16(&packet[260], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].apid); + TF_copy_u8(&packet[262], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].tlm_id); + TF_copy_u8(&packet[263], telemetry_manager->cmd_table.cmd_blocks[3].cmds[6].dr_partition); + TF_copy_u8(&packet[264], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].cmd_type); + TF_copy_u16(&packet[265], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].apid); + TF_copy_u8(&packet[267], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].tlm_id); + TF_copy_u8(&packet[268], telemetry_manager->cmd_table.cmd_blocks[3].cmds[7].dr_partition); + TF_copy_u8(&packet[269], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].cmd_type); + TF_copy_u16(&packet[270], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].apid); + TF_copy_u8(&packet[272], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].tlm_id); + TF_copy_u8(&packet[273], telemetry_manager->cmd_table.cmd_blocks[3].cmds[8].dr_partition); + TF_copy_u8(&packet[274], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].cmd_type); + TF_copy_u16(&packet[275], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].apid); + TF_copy_u8(&packet[277], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].tlm_id); + TF_copy_u8(&packet[278], telemetry_manager->cmd_table.cmd_blocks[3].cmds[9].dr_partition); + TF_copy_u16(&packet[279], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_id); + TF_copy_u8(&packet[281], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].bc_role); + TF_copy_u8(&packet[282], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].cmd_type); + TF_copy_u16(&packet[283], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].apid); + TF_copy_u8(&packet[285], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].tlm_id); + TF_copy_u8(&packet[286], telemetry_manager->cmd_table.cmd_blocks[4].cmds[0].dr_partition); + TF_copy_u8(&packet[287], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].cmd_type); + TF_copy_u16(&packet[288], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].apid); + TF_copy_u8(&packet[290], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].tlm_id); + TF_copy_u8(&packet[291], telemetry_manager->cmd_table.cmd_blocks[4].cmds[1].dr_partition); + TF_copy_u8(&packet[292], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].cmd_type); + TF_copy_u16(&packet[293], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].apid); + TF_copy_u8(&packet[295], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].tlm_id); + TF_copy_u8(&packet[296], telemetry_manager->cmd_table.cmd_blocks[4].cmds[2].dr_partition); + TF_copy_u8(&packet[297], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].cmd_type); + TF_copy_u16(&packet[298], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].apid); + TF_copy_u8(&packet[300], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].tlm_id); + TF_copy_u8(&packet[301], telemetry_manager->cmd_table.cmd_blocks[4].cmds[3].dr_partition); + TF_copy_u8(&packet[302], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].cmd_type); + TF_copy_u16(&packet[303], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].apid); + TF_copy_u8(&packet[305], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].tlm_id); + TF_copy_u8(&packet[306], telemetry_manager->cmd_table.cmd_blocks[4].cmds[4].dr_partition); + TF_copy_u8(&packet[307], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].cmd_type); + TF_copy_u16(&packet[308], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].apid); + TF_copy_u8(&packet[310], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].tlm_id); + TF_copy_u8(&packet[311], telemetry_manager->cmd_table.cmd_blocks[4].cmds[5].dr_partition); + TF_copy_u8(&packet[312], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].cmd_type); + TF_copy_u16(&packet[313], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].apid); + TF_copy_u8(&packet[315], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].tlm_id); + TF_copy_u8(&packet[316], telemetry_manager->cmd_table.cmd_blocks[4].cmds[6].dr_partition); + TF_copy_u8(&packet[317], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].cmd_type); + TF_copy_u16(&packet[318], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].apid); + TF_copy_u8(&packet[320], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].tlm_id); + TF_copy_u8(&packet[321], telemetry_manager->cmd_table.cmd_blocks[4].cmds[7].dr_partition); + TF_copy_u8(&packet[322], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].cmd_type); + TF_copy_u16(&packet[323], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].apid); + TF_copy_u8(&packet[325], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].tlm_id); + TF_copy_u8(&packet[326], telemetry_manager->cmd_table.cmd_blocks[4].cmds[8].dr_partition); + TF_copy_u8(&packet[327], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].cmd_type); + TF_copy_u16(&packet[328], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].apid); + TF_copy_u8(&packet[330], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].tlm_id); + TF_copy_u8(&packet[331], telemetry_manager->cmd_table.cmd_blocks[4].cmds[9].dr_partition); +#endif + + *len = 332; + return TF_TLM_FUNC_ACK_SUCCESS; +} + +static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t* packet, uint16_t* len, uint16_t max_len) { - if (137 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; + if (291 > max_len) return TF_TLM_FUNC_ACK_TOO_SHORT_LEN; #ifndef BUILD_SETTINGS_FAST_BUILD - TF_copy_u16(&packet[26], telemetry_manager->master_bc_id); - TF_copy_u16(&packet[28], telemetry_manager->bc_info[0].bc_id); - TF_copy_u8(&packet[30], (uint8_t)telemetry_manager->bc_info[0].bc_type); - TF_copy_u16(&packet[31], telemetry_manager->bc_info[1].bc_id); - TF_copy_u8(&packet[33], (uint8_t)telemetry_manager->bc_info[1].bc_type); - TF_copy_u16(&packet[34], telemetry_manager->bc_info[2].bc_id); - TF_copy_u8(&packet[36], (uint8_t)telemetry_manager->bc_info[2].bc_type); - TF_copy_u16(&packet[37], telemetry_manager->bc_info[3].bc_id); - TF_copy_u8(&packet[39], (uint8_t)telemetry_manager->bc_info[3].bc_type); - TF_copy_u16(&packet[40], telemetry_manager->bc_info[4].bc_id); - TF_copy_u8(&packet[42], (uint8_t)telemetry_manager->bc_info[4].bc_type); - TF_copy_u16(&packet[43], telemetry_manager->bc_info[5].bc_id); - TF_copy_u8(&packet[45], (uint8_t)telemetry_manager->bc_info[5].bc_type); - TF_copy_u16(&packet[46], telemetry_manager->bc_info[6].bc_id); - TF_copy_u8(&packet[48], (uint8_t)telemetry_manager->bc_info[6].bc_type); - TF_copy_u16(&packet[49], telemetry_manager->bc_info[7].bc_id); - TF_copy_u8(&packet[51], (uint8_t)telemetry_manager->bc_info[7].bc_type); - TF_copy_u16(&packet[52], telemetry_manager->bc_info[8].bc_id); - TF_copy_u8(&packet[54], (uint8_t)telemetry_manager->bc_info[8].bc_type); - TF_copy_u16(&packet[55], telemetry_manager->bc_info[9].bc_id); - TF_copy_u8(&packet[57], (uint8_t)telemetry_manager->bc_info[9].bc_type); - TF_copy_u8(&packet[58], telemetry_manager->register_info.master.bc_info_idx[0]); - TF_copy_u8(&packet[59], telemetry_manager->register_info.master.bc_info_idx[1]); - TF_copy_u8(&packet[60], telemetry_manager->register_info.master.bc_info_idx[2]); - TF_copy_u8(&packet[61], telemetry_manager->register_info.master.bc_info_idx[3]); - TF_copy_u8(&packet[62], telemetry_manager->register_info.master.bc_info_idx[4]); - TF_copy_u8(&packet[63], telemetry_manager->register_info.master.bc_info_idx[5]); - TF_copy_u8(&packet[64], telemetry_manager->register_info.master.bc_info_idx[6]); - TF_copy_u8(&packet[65], telemetry_manager->register_info.master.bc_info_idx[7]); - TF_copy_u8(&packet[66], telemetry_manager->register_info.master.bc_info_idx[8]); - TF_copy_u8(&packet[67], telemetry_manager->register_info.master.bc_info_idx[9]); - TF_copy_u8(&packet[68], telemetry_manager->register_info.master.bc_info_idx_used_num); - TF_copy_u8(&packet[69], telemetry_manager->register_info.master.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[70], telemetry_manager->register_info.master.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[71], telemetry_manager->register_info.hk_tlm.bc_info_idx[0]); - TF_copy_u8(&packet[72], telemetry_manager->register_info.hk_tlm.bc_info_idx[1]); - TF_copy_u8(&packet[73], telemetry_manager->register_info.hk_tlm.bc_info_idx[2]); - TF_copy_u8(&packet[74], telemetry_manager->register_info.hk_tlm.bc_info_idx[3]); - TF_copy_u8(&packet[75], telemetry_manager->register_info.hk_tlm.bc_info_idx[4]); - TF_copy_u8(&packet[76], telemetry_manager->register_info.hk_tlm.bc_info_idx[5]); - TF_copy_u8(&packet[77], telemetry_manager->register_info.hk_tlm.bc_info_idx[6]); - TF_copy_u8(&packet[78], telemetry_manager->register_info.hk_tlm.bc_info_idx[7]); - TF_copy_u8(&packet[79], telemetry_manager->register_info.hk_tlm.bc_info_idx[8]); - TF_copy_u8(&packet[80], telemetry_manager->register_info.hk_tlm.bc_info_idx[9]); - TF_copy_u8(&packet[81], telemetry_manager->register_info.hk_tlm.bc_info_idx_used_num); - TF_copy_u8(&packet[82], telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[83], telemetry_manager->register_info.hk_tlm.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[84], telemetry_manager->register_info.system_tlm.bc_info_idx[0]); - TF_copy_u8(&packet[85], telemetry_manager->register_info.system_tlm.bc_info_idx[1]); - TF_copy_u8(&packet[86], telemetry_manager->register_info.system_tlm.bc_info_idx[2]); - TF_copy_u8(&packet[87], telemetry_manager->register_info.system_tlm.bc_info_idx[3]); - TF_copy_u8(&packet[88], telemetry_manager->register_info.system_tlm.bc_info_idx[4]); - TF_copy_u8(&packet[89], telemetry_manager->register_info.system_tlm.bc_info_idx[5]); - TF_copy_u8(&packet[90], telemetry_manager->register_info.system_tlm.bc_info_idx[6]); - TF_copy_u8(&packet[91], telemetry_manager->register_info.system_tlm.bc_info_idx[7]); - TF_copy_u8(&packet[92], telemetry_manager->register_info.system_tlm.bc_info_idx[8]); - TF_copy_u8(&packet[93], telemetry_manager->register_info.system_tlm.bc_info_idx[9]); - TF_copy_u8(&packet[94], telemetry_manager->register_info.system_tlm.bc_info_idx_used_num); - TF_copy_u8(&packet[95], telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[96], telemetry_manager->register_info.system_tlm.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[97], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[0]); - TF_copy_u8(&packet[98], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[1]); - TF_copy_u8(&packet[99], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[2]); - TF_copy_u8(&packet[100], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[3]); - TF_copy_u8(&packet[101], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[4]); - TF_copy_u8(&packet[102], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[5]); - TF_copy_u8(&packet[103], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[6]); - TF_copy_u8(&packet[104], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[7]); - TF_copy_u8(&packet[105], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[8]); - TF_copy_u8(&packet[106], telemetry_manager->register_info.high_freq_tlm.bc_info_idx[9]); - TF_copy_u8(&packet[107], telemetry_manager->register_info.high_freq_tlm.bc_info_idx_used_num); - TF_copy_u8(&packet[108], telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[109], telemetry_manager->register_info.high_freq_tlm.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[110], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[0]); - TF_copy_u8(&packet[111], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[1]); - TF_copy_u8(&packet[112], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[2]); - TF_copy_u8(&packet[113], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[3]); - TF_copy_u8(&packet[114], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[4]); - TF_copy_u8(&packet[115], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[5]); - TF_copy_u8(&packet[116], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[6]); - TF_copy_u8(&packet[117], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[7]); - TF_copy_u8(&packet[118], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[8]); - TF_copy_u8(&packet[119], telemetry_manager->register_info.low_freq_tlm.bc_info_idx[9]); - TF_copy_u8(&packet[120], telemetry_manager->register_info.low_freq_tlm.bc_info_idx_used_num); - TF_copy_u8(&packet[121], telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[122], telemetry_manager->register_info.low_freq_tlm.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[123], telemetry_manager->register_info.reserve.bc_info_idx[0]); - TF_copy_u8(&packet[124], telemetry_manager->register_info.reserve.bc_info_idx[1]); - TF_copy_u8(&packet[125], telemetry_manager->register_info.reserve.bc_info_idx[2]); - TF_copy_u8(&packet[126], telemetry_manager->register_info.reserve.bc_info_idx[3]); - TF_copy_u8(&packet[127], telemetry_manager->register_info.reserve.bc_info_idx[4]); - TF_copy_u8(&packet[128], telemetry_manager->register_info.reserve.bc_info_idx[5]); - TF_copy_u8(&packet[129], telemetry_manager->register_info.reserve.bc_info_idx[6]); - TF_copy_u8(&packet[130], telemetry_manager->register_info.reserve.bc_info_idx[7]); - TF_copy_u8(&packet[131], telemetry_manager->register_info.reserve.bc_info_idx[8]); - TF_copy_u8(&packet[132], telemetry_manager->register_info.reserve.bc_info_idx[9]); - TF_copy_u8(&packet[133], telemetry_manager->register_info.reserve.bc_info_idx_used_num); - TF_copy_u8(&packet[134], telemetry_manager->register_info.reserve.tlm_register_pointer_to_idx_of_bc_info_idx); - TF_copy_u8(&packet[135], telemetry_manager->register_info.reserve.tlm_register_pointer_to_bc_cmd_idx); - TF_copy_u8(&packet[136], telemetry_manager->is_inited); + TF_copy_u16(&packet[26], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_id); + TF_copy_u8(&packet[28], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].bc_role); + TF_copy_u8(&packet[29], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].cmd_type); + TF_copy_u16(&packet[30], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].apid); + TF_copy_u8(&packet[32], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].tlm_id); + TF_copy_u8(&packet[33], telemetry_manager->cmd_table.cmd_blocks[5].cmds[0].dr_partition); + TF_copy_u8(&packet[34], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].cmd_type); + TF_copy_u16(&packet[35], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].apid); + TF_copy_u8(&packet[37], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].tlm_id); + TF_copy_u8(&packet[38], telemetry_manager->cmd_table.cmd_blocks[5].cmds[1].dr_partition); + TF_copy_u8(&packet[39], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].cmd_type); + TF_copy_u16(&packet[40], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].apid); + TF_copy_u8(&packet[42], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].tlm_id); + TF_copy_u8(&packet[43], telemetry_manager->cmd_table.cmd_blocks[5].cmds[2].dr_partition); + TF_copy_u8(&packet[44], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].cmd_type); + TF_copy_u16(&packet[45], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].apid); + TF_copy_u8(&packet[47], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].tlm_id); + TF_copy_u8(&packet[48], telemetry_manager->cmd_table.cmd_blocks[5].cmds[3].dr_partition); + TF_copy_u8(&packet[49], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].cmd_type); + TF_copy_u16(&packet[50], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].apid); + TF_copy_u8(&packet[52], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].tlm_id); + TF_copy_u8(&packet[53], telemetry_manager->cmd_table.cmd_blocks[5].cmds[4].dr_partition); + TF_copy_u8(&packet[54], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].cmd_type); + TF_copy_u16(&packet[55], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].apid); + TF_copy_u8(&packet[57], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].tlm_id); + TF_copy_u8(&packet[58], telemetry_manager->cmd_table.cmd_blocks[5].cmds[5].dr_partition); + TF_copy_u8(&packet[59], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].cmd_type); + TF_copy_u16(&packet[60], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].apid); + TF_copy_u8(&packet[62], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].tlm_id); + TF_copy_u8(&packet[63], telemetry_manager->cmd_table.cmd_blocks[5].cmds[6].dr_partition); + TF_copy_u8(&packet[64], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].cmd_type); + TF_copy_u16(&packet[65], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].apid); + TF_copy_u8(&packet[67], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].tlm_id); + TF_copy_u8(&packet[68], telemetry_manager->cmd_table.cmd_blocks[5].cmds[7].dr_partition); + TF_copy_u8(&packet[69], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].cmd_type); + TF_copy_u16(&packet[70], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].apid); + TF_copy_u8(&packet[72], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].tlm_id); + TF_copy_u8(&packet[73], telemetry_manager->cmd_table.cmd_blocks[5].cmds[8].dr_partition); + TF_copy_u8(&packet[74], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].cmd_type); + TF_copy_u16(&packet[75], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].apid); + TF_copy_u8(&packet[77], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].tlm_id); + TF_copy_u8(&packet[78], telemetry_manager->cmd_table.cmd_blocks[5].cmds[9].dr_partition); + TF_copy_u16(&packet[79], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_id); + TF_copy_u8(&packet[81], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].bc_role); + TF_copy_u8(&packet[82], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].cmd_type); + TF_copy_u16(&packet[83], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].apid); + TF_copy_u8(&packet[85], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].tlm_id); + TF_copy_u8(&packet[86], telemetry_manager->cmd_table.cmd_blocks[6].cmds[0].dr_partition); + TF_copy_u8(&packet[87], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].cmd_type); + TF_copy_u16(&packet[88], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].apid); + TF_copy_u8(&packet[90], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].tlm_id); + TF_copy_u8(&packet[91], telemetry_manager->cmd_table.cmd_blocks[6].cmds[1].dr_partition); + TF_copy_u8(&packet[92], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].cmd_type); + TF_copy_u16(&packet[93], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].apid); + TF_copy_u8(&packet[95], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].tlm_id); + TF_copy_u8(&packet[96], telemetry_manager->cmd_table.cmd_blocks[6].cmds[2].dr_partition); + TF_copy_u8(&packet[97], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].cmd_type); + TF_copy_u16(&packet[98], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].apid); + TF_copy_u8(&packet[100], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].tlm_id); + TF_copy_u8(&packet[101], telemetry_manager->cmd_table.cmd_blocks[6].cmds[3].dr_partition); + TF_copy_u8(&packet[102], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].cmd_type); + TF_copy_u16(&packet[103], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].apid); + TF_copy_u8(&packet[105], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].tlm_id); + TF_copy_u8(&packet[106], telemetry_manager->cmd_table.cmd_blocks[6].cmds[4].dr_partition); + TF_copy_u8(&packet[107], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].cmd_type); + TF_copy_u16(&packet[108], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].apid); + TF_copy_u8(&packet[110], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].tlm_id); + TF_copy_u8(&packet[111], telemetry_manager->cmd_table.cmd_blocks[6].cmds[5].dr_partition); + TF_copy_u8(&packet[112], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].cmd_type); + TF_copy_u16(&packet[113], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].apid); + TF_copy_u8(&packet[115], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].tlm_id); + TF_copy_u8(&packet[116], telemetry_manager->cmd_table.cmd_blocks[6].cmds[6].dr_partition); + TF_copy_u8(&packet[117], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].cmd_type); + TF_copy_u16(&packet[118], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].apid); + TF_copy_u8(&packet[120], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].tlm_id); + TF_copy_u8(&packet[121], telemetry_manager->cmd_table.cmd_blocks[6].cmds[7].dr_partition); + TF_copy_u8(&packet[122], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].cmd_type); + TF_copy_u16(&packet[123], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].apid); + TF_copy_u8(&packet[125], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].tlm_id); + TF_copy_u8(&packet[126], telemetry_manager->cmd_table.cmd_blocks[6].cmds[8].dr_partition); + TF_copy_u8(&packet[127], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].cmd_type); + TF_copy_u16(&packet[128], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].apid); + TF_copy_u8(&packet[130], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].tlm_id); + TF_copy_u8(&packet[131], telemetry_manager->cmd_table.cmd_blocks[6].cmds[9].dr_partition); + TF_copy_u16(&packet[132], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_id); + TF_copy_u8(&packet[134], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].bc_role); + TF_copy_u8(&packet[135], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].cmd_type); + TF_copy_u16(&packet[136], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].apid); + TF_copy_u8(&packet[138], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].tlm_id); + TF_copy_u8(&packet[139], telemetry_manager->cmd_table.cmd_blocks[7].cmds[0].dr_partition); + TF_copy_u8(&packet[140], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].cmd_type); + TF_copy_u16(&packet[141], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].apid); + TF_copy_u8(&packet[143], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].tlm_id); + TF_copy_u8(&packet[144], telemetry_manager->cmd_table.cmd_blocks[7].cmds[1].dr_partition); + TF_copy_u8(&packet[145], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].cmd_type); + TF_copy_u16(&packet[146], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].apid); + TF_copy_u8(&packet[148], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].tlm_id); + TF_copy_u8(&packet[149], telemetry_manager->cmd_table.cmd_blocks[7].cmds[2].dr_partition); + TF_copy_u8(&packet[150], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].cmd_type); + TF_copy_u16(&packet[151], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].apid); + TF_copy_u8(&packet[153], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].tlm_id); + TF_copy_u8(&packet[154], telemetry_manager->cmd_table.cmd_blocks[7].cmds[3].dr_partition); + TF_copy_u8(&packet[155], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].cmd_type); + TF_copy_u16(&packet[156], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].apid); + TF_copy_u8(&packet[158], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].tlm_id); + TF_copy_u8(&packet[159], telemetry_manager->cmd_table.cmd_blocks[7].cmds[4].dr_partition); + TF_copy_u8(&packet[160], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].cmd_type); + TF_copy_u16(&packet[161], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].apid); + TF_copy_u8(&packet[163], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].tlm_id); + TF_copy_u8(&packet[164], telemetry_manager->cmd_table.cmd_blocks[7].cmds[5].dr_partition); + TF_copy_u8(&packet[165], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].cmd_type); + TF_copy_u16(&packet[166], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].apid); + TF_copy_u8(&packet[168], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].tlm_id); + TF_copy_u8(&packet[169], telemetry_manager->cmd_table.cmd_blocks[7].cmds[6].dr_partition); + TF_copy_u8(&packet[170], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].cmd_type); + TF_copy_u16(&packet[171], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].apid); + TF_copy_u8(&packet[173], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].tlm_id); + TF_copy_u8(&packet[174], telemetry_manager->cmd_table.cmd_blocks[7].cmds[7].dr_partition); + TF_copy_u8(&packet[175], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].cmd_type); + TF_copy_u16(&packet[176], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].apid); + TF_copy_u8(&packet[178], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].tlm_id); + TF_copy_u8(&packet[179], telemetry_manager->cmd_table.cmd_blocks[7].cmds[8].dr_partition); + TF_copy_u8(&packet[180], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].cmd_type); + TF_copy_u16(&packet[181], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].apid); + TF_copy_u8(&packet[183], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].tlm_id); + TF_copy_u8(&packet[184], telemetry_manager->cmd_table.cmd_blocks[7].cmds[9].dr_partition); + TF_copy_u16(&packet[185], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_id); + TF_copy_u8(&packet[187], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].bc_role); + TF_copy_u8(&packet[188], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].cmd_type); + TF_copy_u16(&packet[189], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].apid); + TF_copy_u8(&packet[191], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].tlm_id); + TF_copy_u8(&packet[192], telemetry_manager->cmd_table.cmd_blocks[8].cmds[0].dr_partition); + TF_copy_u8(&packet[193], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].cmd_type); + TF_copy_u16(&packet[194], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].apid); + TF_copy_u8(&packet[196], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].tlm_id); + TF_copy_u8(&packet[197], telemetry_manager->cmd_table.cmd_blocks[8].cmds[1].dr_partition); + TF_copy_u8(&packet[198], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].cmd_type); + TF_copy_u16(&packet[199], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].apid); + TF_copy_u8(&packet[201], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].tlm_id); + TF_copy_u8(&packet[202], telemetry_manager->cmd_table.cmd_blocks[8].cmds[2].dr_partition); + TF_copy_u8(&packet[203], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].cmd_type); + TF_copy_u16(&packet[204], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].apid); + TF_copy_u8(&packet[206], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].tlm_id); + TF_copy_u8(&packet[207], telemetry_manager->cmd_table.cmd_blocks[8].cmds[3].dr_partition); + TF_copy_u8(&packet[208], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].cmd_type); + TF_copy_u16(&packet[209], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].apid); + TF_copy_u8(&packet[211], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].tlm_id); + TF_copy_u8(&packet[212], telemetry_manager->cmd_table.cmd_blocks[8].cmds[4].dr_partition); + TF_copy_u8(&packet[213], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].cmd_type); + TF_copy_u16(&packet[214], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].apid); + TF_copy_u8(&packet[216], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].tlm_id); + TF_copy_u8(&packet[217], telemetry_manager->cmd_table.cmd_blocks[8].cmds[5].dr_partition); + TF_copy_u8(&packet[218], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].cmd_type); + TF_copy_u16(&packet[219], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].apid); + TF_copy_u8(&packet[221], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].tlm_id); + TF_copy_u8(&packet[222], telemetry_manager->cmd_table.cmd_blocks[8].cmds[6].dr_partition); + TF_copy_u8(&packet[223], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].cmd_type); + TF_copy_u16(&packet[224], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].apid); + TF_copy_u8(&packet[226], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].tlm_id); + TF_copy_u8(&packet[227], telemetry_manager->cmd_table.cmd_blocks[8].cmds[7].dr_partition); + TF_copy_u8(&packet[228], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].cmd_type); + TF_copy_u16(&packet[229], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].apid); + TF_copy_u8(&packet[231], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].tlm_id); + TF_copy_u8(&packet[232], telemetry_manager->cmd_table.cmd_blocks[8].cmds[8].dr_partition); + TF_copy_u8(&packet[233], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].cmd_type); + TF_copy_u16(&packet[234], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].apid); + TF_copy_u8(&packet[236], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].tlm_id); + TF_copy_u8(&packet[237], telemetry_manager->cmd_table.cmd_blocks[8].cmds[9].dr_partition); + TF_copy_u16(&packet[238], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_id); + TF_copy_u8(&packet[240], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].bc_role); + TF_copy_u8(&packet[241], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].cmd_type); + TF_copy_u16(&packet[242], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].apid); + TF_copy_u8(&packet[244], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].tlm_id); + TF_copy_u8(&packet[245], telemetry_manager->cmd_table.cmd_blocks[9].cmds[0].dr_partition); + TF_copy_u8(&packet[246], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].cmd_type); + TF_copy_u16(&packet[247], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].apid); + TF_copy_u8(&packet[249], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].tlm_id); + TF_copy_u8(&packet[250], telemetry_manager->cmd_table.cmd_blocks[9].cmds[1].dr_partition); + TF_copy_u8(&packet[251], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].cmd_type); + TF_copy_u16(&packet[252], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].apid); + TF_copy_u8(&packet[254], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].tlm_id); + TF_copy_u8(&packet[255], telemetry_manager->cmd_table.cmd_blocks[9].cmds[2].dr_partition); + TF_copy_u8(&packet[256], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].cmd_type); + TF_copy_u16(&packet[257], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].apid); + TF_copy_u8(&packet[259], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].tlm_id); + TF_copy_u8(&packet[260], telemetry_manager->cmd_table.cmd_blocks[9].cmds[3].dr_partition); + TF_copy_u8(&packet[261], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].cmd_type); + TF_copy_u16(&packet[262], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].apid); + TF_copy_u8(&packet[264], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].tlm_id); + TF_copy_u8(&packet[265], telemetry_manager->cmd_table.cmd_blocks[9].cmds[4].dr_partition); + TF_copy_u8(&packet[266], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].cmd_type); + TF_copy_u16(&packet[267], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].apid); + TF_copy_u8(&packet[269], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].tlm_id); + TF_copy_u8(&packet[270], telemetry_manager->cmd_table.cmd_blocks[9].cmds[5].dr_partition); + TF_copy_u8(&packet[271], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].cmd_type); + TF_copy_u16(&packet[272], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].apid); + TF_copy_u8(&packet[274], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].tlm_id); + TF_copy_u8(&packet[275], telemetry_manager->cmd_table.cmd_blocks[9].cmds[6].dr_partition); + TF_copy_u8(&packet[276], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].cmd_type); + TF_copy_u16(&packet[277], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].apid); + TF_copy_u8(&packet[279], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].tlm_id); + TF_copy_u8(&packet[280], telemetry_manager->cmd_table.cmd_blocks[9].cmds[7].dr_partition); + TF_copy_u8(&packet[281], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].cmd_type); + TF_copy_u16(&packet[282], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].apid); + TF_copy_u8(&packet[284], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].tlm_id); + TF_copy_u8(&packet[285], telemetry_manager->cmd_table.cmd_blocks[9].cmds[8].dr_partition); + TF_copy_u8(&packet[286], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].cmd_type); + TF_copy_u16(&packet[287], (uint16_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].apid); + TF_copy_u8(&packet[289], (uint8_t)telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].tlm_id); + TF_copy_u8(&packet[290], telemetry_manager->cmd_table.cmd_blocks[9].cmds[9].dr_partition); #endif - *len = 137; + *len = 291; return TF_TLM_FUNC_ACK_SUCCESS; } @@ -3176,9 +3540,9 @@ static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t* packet, uint16_t* len, uint16_t max_len) TF_copy_u8(&packet[86], gs_validate_info->lockout_flag); TF_copy_u8(&packet[87], gs_validate_info->retransmit_flag); TF_copy_u8(&packet[88], gs_validate_info->positive_window_width); - TF_copy_u32(&packet[89], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); - TF_copy_u32(&packet[93], (uint32_t)DI_GS_ms_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); - TF_copy_u32(&packet[97], (uint32_t)DI_GS_ms_tlm_packet_handler->vcdu_counter); + TF_copy_u32(&packet[89], (uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); + TF_copy_u32(&packet[93], (uint32_t)DI_GS_rt_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); + TF_copy_u32(&packet[97], (uint32_t)DI_GS_rt_tlm_packet_handler->vcdu_counter); TF_copy_u32(&packet[101], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.flush_interval); TF_copy_u32(&packet[105], (uint32_t)DI_GS_rp_tlm_packet_handler->tc_packet_to_m_pdu.last_updated); TF_copy_u32(&packet[109], (uint32_t)DI_GS_rp_tlm_packet_handler->vcdu_counter); @@ -3448,14 +3812,4 @@ static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t* packet, uint16_t* len, uint16_t m return TF_TLM_FUNC_ACK_SUCCESS; } -static TF_TLM_FUNC_ACK Tlm_AOBC_AOBC_(uint8_t* packet, uint16_t* len, uint16_t max_len) -{ - return AOBC_pick_up_tlm_buffer(aobc_driver, AOBC_Tlm_CODE_AOBC_AOBC, packet, len, max_len); -} - -static TF_TLM_FUNC_ACK Tlm_AOBC_HK_(uint8_t* packet, uint16_t* len, uint16_t max_len) -{ - return AOBC_pick_up_tlm_buffer(aobc_driver, AOBC_Tlm_CODE_AOBC_HK, packet, len, max_len); -} - #pragma section diff --git a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.h b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.h index 7b63decc7..36c0e4b59 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.h +++ b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_definitions.h @@ -10,7 +10,8 @@ typedef enum { Tlm_CODE_MOBC = 0x00, Tlm_CODE_MEM = 0x10, - Tlm_CODE_TLM_MGR = 0x19, + Tlm_CODE_TLM_MGR1 = 0x18, + Tlm_CODE_TLM_MGR2 = 0x19, Tlm_CODE_TL = 0x20, Tlm_CODE_BL = 0x21, Tlm_CODE_CA = 0x25, @@ -31,14 +32,6 @@ typedef enum Tlm_CODE_GIT_REV = 0xf1, Tlm_CODE_UART_TEST = 0xf8, - // AOBC TLM - Tlm_CODE_AOBC_AOBC = 0x90, - Tlm_CODE_AOBC_HK = 0x91, - - // FIXME: - // 他OBCのTLMをまとめたため,IDが昇順となっていない - // TLM_CODE_MAX が意味をなさなくなってしまうが,他で使われていないため,一旦このままにする(今後解決する実装) - TLM_CODE_MAX } TLM_CODE; diff --git a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_source.h b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_source.h index 0d50aabd7..6a79dd1d8 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/telemetry_source.h +++ b/Examples/minimum_user/src/src_user/TlmCmd/telemetry_source.h @@ -6,6 +6,7 @@ #define TELEMETRY_SOURCE_H_ #include "string.h" // for memcpy +#include #include #include #include @@ -15,7 +16,6 @@ #include #include #include "../Applications/app_headers.h" -#include "../Library/git_revision.h" #include "../Drivers/Aocs/aobc_telemetry_buffer.h" #include "../Drivers/Com/gs_validate.h" #include "../Settings/build_settings.h" diff --git a/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.c b/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.c index 08fbafe63..0d22ef806 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.c +++ b/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.c @@ -32,18 +32,39 @@ void PH_user_init(void) PH_ACK PH_user_analyze_cmd(const CommonCmdPacket* packet) { - switch (CCP_get_dest_type(packet)) + CCP_DEST_TYPE dest_type = CCP_get_dest_type(packet); + APID apid = CCP_get_apid(packet); + + if (dest_type == CCP_DEST_TYPE_TO_APID) { - case CCP_DEST_TYPE_TO_AOBC: - return (PH_add_aobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; - case CCP_DEST_TYPE_TO_TOBC: - return (PH_add_tobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; - default: - // CCP_DEST_TYPE_TO_ME - // CCP_DEST_TYPE_TO_MOBC (自分) - // 宛先不明 - // はここに - return PH_ACK_UNKNOWN; + switch (apid) + { + case APID_AOBC_CMD: + return (PH_add_aobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; + case APID_TOBC_CMD: + return (PH_add_tobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; + default: + // APID_MOBC_CMD + // 不正な APID + // はここに + return PH_ACK_UNKNOWN; + } + } + else + { + switch (dest_type) + { + case CCP_DEST_TYPE_TO_AOBC: // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + return (PH_add_aobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; + case CCP_DEST_TYPE_TO_TOBC: // CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + return (PH_add_tobc_cmd_(packet) == PH_ACK_SUCCESS) ? PH_ACK_FORWARDED : PH_ACK_PL_LIST_FULL; + default: + // CCP_DEST_TYPE_TO_ME + // CCP_DEST_TYPE_TO_MOBC などの自分宛.なお, CCP_DEST_TYPE_TO_APID の追加に伴い deprecated + // 宛先不明 + // はここに + return PH_ACK_UNKNOWN; + } } } @@ -66,6 +87,22 @@ CCP_CmdRet PH_user_cmd_router(const CommonCmdPacket* packet) } +TF_TLM_FUNC_ACK PH_user_telemetry_router(APID apid, + TLM_CODE tlm_id, + uint8_t* packet, + uint16_t* len, + uint16_t max_len) +{ + switch (apid) + { + case APID_AOBC_TLM: + return AOBC_pick_up_tlm_buffer(aobc_driver, (AOBC_TLM_CODE)tlm_id, packet, len, max_len); + default: + return TF_TLM_FUNC_ACK_NOT_DEFINED; + } +} + + static PH_ACK PH_add_aobc_cmd_(const CommonCmdPacket* packet) { PL_ACK ack = PL_push_back(&PH_aobc_cmd_list, packet); diff --git a/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.h b/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.h index 568bed004..f146244c5 100644 --- a/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.h +++ b/Examples/minimum_user/src/src_user/TlmCmd/user_packet_handler.h @@ -9,6 +9,9 @@ #include #include #include +#include +#include "telemetry_definitions.h" +#include "../Settings/TlmCmd/Ccsds/apid_define.h" extern PacketList PH_aobc_cmd_list; extern PacketList PH_tobc_cmd_list; @@ -48,4 +51,19 @@ PH_ACK PH_user_analyze_cmd(const CommonCmdPacket* packet); */ CCP_CmdRet PH_user_cmd_router(const CommonCmdPacket* packet); +/** + * @brief 2nd OBC のテレメを転送するために, APID からテレメを判定してルーティングする // FIXME: 命名, router ではない? + * @param[in] apid: 2nd OBC の Tlm APID + * @param[in] tlm_id: 2nd OBC の Tlm ID + * @param[out] packet: テレメを作る uint8_t にシリアライズされた packet へのポインタ + * @param[out] len: 転送するテレメのパケット長 + * @param[in] max_len: 許容できる最大テレメパケット長 + * @return TF_TLM_FUNC_ACK + */ +TF_TLM_FUNC_ACK PH_user_telemetry_router(APID apid, + TLM_CODE tlm_id, + uint8_t* packet, + uint16_t* len, + uint16_t max_len); + #endif diff --git a/Examples/minimum_user/src/src_user/c2a_main.c b/Examples/minimum_user/src/src_user/c2a_main.c index 572d664be..403a69a16 100644 --- a/Examples/minimum_user/src/src_user/c2a_main.c +++ b/Examples/minimum_user/src/src_user/c2a_main.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -59,6 +60,8 @@ static void C2A_main_(void) // Printf内部で WDT_clear_wdt(); が呼ばれてることに注意! static void C2A_init_(void) { + Printf("C2A_init: user revision = %s\n", GIT_REV_USER); + WDT_init(); TMGR_init(); // Time Manager // AM_initialize_all_apps での時間計測のためにここで初期化 diff --git a/Library/git_revision.h b/Library/git_revision.h new file mode 100644 index 000000000..9222ff323 --- /dev/null +++ b/Library/git_revision.h @@ -0,0 +1,63 @@ +/** + * @file git_revision.h + * @brief git revisionをコードに埋め込むための準備をする + */ +#ifndef GIT_REVISION_H_ +#define GIT_REVISION_H_ + +#include + +#include //!< 設定ないしcommit hashを読み込む + +/*!< @brief コンパイルオプションないしuserの設定で定義されたcommit hashを読み込んで埋め込みます + * git revisionの埋め込みは,以下の定数を通して行われます(経緯: #82). + * GIT_REVISION_C2A_CORE C2A coreのcommit hash(文字列) + * GIT_REVISION_C2A_CORE_SHORT C2A coreのcommit hash short(0xから始まる数値) + * GIT_REVISION_C2A_USER C2A userのcommit hash(文字列) + * GIT_REVISION_C2A_USER_SHORT C2A userのcommit hash short(0xから始まる数値) + * これらの定数は,Cコンパイラの引数からdefine(-Dなど)してもよいですし, + * src_user/Settings/git_revision_config.hでdefineしてもよいです. + */ + +/** + * @note CMakeを使う場合はコマンドラインオプションからのdefineを推奨します. + * この場合,src_user/Settings/git_revision_config.hでC2A_GIT_REVISION_FROM_OPTIONをdefineしてください(他には何も要りません). + */ + +/** + * @note コマンドラインオプションからのdefineが開発環境の都合などにより困難な場合は, + * src_user/Script/Git/revision.sh/batをビルドパイプライン上で実行するようにします. + * このスクリプトは上記の定数群をdefineしたsrc_user/Settings/git_revision_config.hを自動生成します. + * この場合,src_user/Settings/git_revision_config.hはcommit・ビルドの度に変更されるため,gitignoreしておいた方がよいでしょう. + */ + +/** + * @note ビルドパイプラインをうまく組めないなど,上記2つの手段が使えない,かつ,revisionを埋め込まなくてもよい場合は, + * src_user/Settings/git_revision_config.hでC2A_GIT_REVISION_IGNOREをdefineしてください. + * こうすると,0が埋め込まれます. + */ + +#ifdef C2A_GIT_REVISION_IGNORE +// commit hashを埋め込まない場合 + +#define GIT_REVISION_C2A_CORE "0000000000000000000000000000000000000000" +#define GIT_REVISION_C2A_CORE_SHORT 0x0000000 +#define GIT_REVISION_C2A_USER "0000000000000000000000000000000000000000" +#define GIT_REVISION_C2A_USER_SHORT 0x0000000 + +#else + +// commit hashを埋め込むはずなのにsrc_user/Settings/git_revision_config.hで設定されていない +#if !defined(C2A_GIT_REVISION_FROM_OPTION) && !defined(C2A_GIT_REVISION_GENERATED) +#error "please specify git revision config in src_user/Settings/git_revision_config.h" +#endif // error + +#endif // C2A_GIT_REVISION_IGNORE + +// これをc2a_core_main.cで埋め込む +extern const char GIT_REV_CORE[41]; +extern const uint32_t GIT_REV_CORE_SHORT; +extern const char GIT_REV_USER[41]; +extern const uint32_t GIT_REV_USER_SHORT; + +#endif // GIT_REVISION_H_ diff --git a/README.md b/README.md index 8b25dff41..528189a6b 100644 --- a/README.md +++ b/README.md @@ -59,19 +59,28 @@ C2A Core の採用実績のある衛星 OBC や動作実績のあるボードの [^1]: Ryo Suzumoto, et al. Improvement of C2A (Command-Centric Architecture) Reusability for Multiple Types of OBCs and Development of Continuous Integration Environment for Reliability of Flight Software. _33rd International Symposium on Space Technology and Science_, 2022-f-58, 2022. -## 関連リポジトリ +## 関連リンク ### C2A 関連ツール - https://github.com/ut-issl/tlm-cmd-db - https://github.com/ut-issl/c2a-tlm-cmd-code-generator - https://github.com/ut-issl/python-wings-interface - https://github.com/ut-issl/c2a-enum-loader - https://github.com/ut-issl/s2e-user-for-c2a-core +- https://github.com/arkedge/c2a-tlmcmddb +- https://github.com/arkedge/workflows-c2a ### User 実装例 - https://github.com/arkedge/c2a-user-for-raspi +### 関連 crate +- https://crates.io/crates/c2a-core (本リポジトリを crate 化したもの) +- https://crates.io/crates/tlmcmddb +- https://crates.io/crates/tlmcmddb-cli +- https://crates.io/crates/tlmcmddb-csv + + ## 協力 [ArkEdge Space Inc.](https://arkedgespace.com/) diff --git a/Script/Git/revision.bat b/Script/Git/revision.bat new file mode 100644 index 000000000..4b7f55af6 --- /dev/null +++ b/Script/Git/revision.bat @@ -0,0 +1,11 @@ +@ECHO OFF +REM print C2A core Git revision as C header + +REM current directory(src_core/Script/Git)Ɉړ +cd /d %~dp0 + +for /f "usebackq" %%a in (`"git log --pretty=format:%%H -1"`) do set git_rev_core=%%a +for /f "usebackq" %%a in (`"git log --pretty=format:%%h -1"`) do set git_rev_core_short=%%a + +echo #define GIT_REVISION_C2A_CORE "%git_rev_core%" +echo #define GIT_REVISION_C2A_CORE_SHORT 0x%git_rev_core_short% diff --git a/Script/Git/revision.sh b/Script/Git/revision.sh new file mode 100755 index 000000000..23c4b70a4 --- /dev/null +++ b/Script/Git/revision.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# print C2A core Git revision as C header + +cd $(dirname $0) # src_core/Script/Git +#cd ../../ # src_core + +git_rev_core=$(git log --pretty=format:%H -1) +git_rev_core_short=$(git log --pretty=format:%h -1) + +cat << EOS +#define GIT_REVISION_C2A_CORE "${git_rev_core}" +#define GIT_REVISION_C2A_CORE_SHORT 0x${git_rev_core_short} +EOS diff --git a/Script/GitHooks/pre-commit b/Script/GitHooks/pre-commit index 76635da3e..5c6be0519 100755 --- a/Script/GitHooks/pre-commit +++ b/Script/GitHooks/pre-commit @@ -13,12 +13,10 @@ my @Targets = ( "Examples/minimum_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_MOBC_TLM_DB.xlsm", "Examples/minimum_user/src/src_user/Settings/sils_define.h", "Examples/minimum_user/src/src_user/Settings/build_settings.h", - "Examples/minimum_user/src/src_user/Library/git_revision.c", "Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/CMD_DB/SAMPLE_AOBC_CMD_DB.xlsm", "Examples/2nd_obc_user/src/src_user/Settings/TlmCmd/DataBase/TLM_DB/SAMPLE_AOBC_TLM_DB.xlsm", "Examples/2nd_obc_user/src/src_user/Settings/sils_define.h", "Examples/2nd_obc_user/src/src_user/Settings/build_settings.h", - "Examples/2nd_obc_user/src/src_user/Library/git_revision.c" ); print "[] pwd\n" if $DEBUG; diff --git a/System/EventManager/event_logger.h b/System/EventManager/event_logger.h index a9eea556a..0e77bd3cc 100644 --- a/System/EventManager/event_logger.h +++ b/System/EventManager/event_logger.h @@ -415,7 +415,7 @@ void EL_initialize(void); * @note C2A 上の任意の場所から発行可能 * @param group: EL_Event.group * @param local: EL_Event.local - * @param err_level: EL_Event.err_level EL_ERROR_LEVEL_EL は禁止 + * @param err_level: EL_Event.err_level (EL_ERROR_LEVEL_EL は禁止) * @param note: EL_Event.note * @return EL_ACK */ diff --git a/System/TaskManager/task_dispatcher.c b/System/TaskManager/task_dispatcher.c index b891f0940..047754322 100644 --- a/System/TaskManager/task_dispatcher.c +++ b/System/TaskManager/task_dispatcher.c @@ -15,6 +15,7 @@ #include "../../TlmCmd/common_cmd_packet_util.h" #include "../ModeManager/mode_manager.h" #include "../TimeManager/time_manager.h" +#include "../TimeManager/obc_time_config.h" #include "../EventManager/event_logger.h" #include #include diff --git a/System/TimeManager/obc_time.c b/System/TimeManager/obc_time.c index e5b83d294..080963606 100644 --- a/System/TimeManager/obc_time.c +++ b/System/TimeManager/obc_time.c @@ -4,6 +4,7 @@ * @brief OBCの時刻情報の定義と演算 */ #include "obc_time.h" +#include "obc_time_config.h" #include "../../Library/print.h" ObcTime OBCT_create(cycle_t total_cycle, diff --git a/System/TimeManager/obc_time.h b/System/TimeManager/obc_time.h index e45923775..e5dbf660e 100644 --- a/System/TimeManager/obc_time.h +++ b/System/TimeManager/obc_time.h @@ -7,14 +7,6 @@ #include -// step, cycleについてはTimeManagerを参照のこと -#define OBCT_STEP_IN_MSEC (1) //!< 1 step で何 ms か -#define OBCT_STEPS_PER_CYCLE (100) //!< 何 step で 1 cycle か -#define OBCT_CYCLES_PER_SEC (1000 / OBCT_STEP_IN_MSEC / OBCT_STEPS_PER_CYCLE) //!< 1 s で何 cycle か -#define OBCT_MAX_CYCLE (0xfffffff0u) //!< 最大 cycle 数.つまり TI がいくつでオーバーフローするか - -#include - typedef uint32_t cycle_t; typedef uint32_t step_t; diff --git a/System/TimeManager/obc_time_config.h b/System/TimeManager/obc_time_config.h new file mode 100644 index 000000000..342adcf98 --- /dev/null +++ b/System/TimeManager/obc_time_config.h @@ -0,0 +1,14 @@ +#ifndef OBC_TIME_CONFIG_H_ +#define OBC_TIME_CONFIG_H_ + +// step, cycleについてはTimeManagerを参照のこと +// デフォルト設定 +#define OBCT_STEP_IN_MSEC (1) //!< 1 step で何 ms か +#define OBCT_STEPS_PER_CYCLE (100) //!< 何 step で 1 cycle か +#define OBCT_CYCLES_PER_SEC (1000 / OBCT_STEP_IN_MSEC / OBCT_STEPS_PER_CYCLE) //!< 1 s で何 cycle か +#define OBCT_MAX_CYCLE (0xfffffff0u) //!< 最大 cycle 数.つまり TI がいくつでオーバーフローするか + +// user 設定 +#include + +#endif // OBC_TIME_CONFIG_H_ diff --git a/System/TimeManager/time_manager.c b/System/TimeManager/time_manager.c index 70be48dbe..0360f8647 100644 --- a/System/TimeManager/time_manager.c +++ b/System/TimeManager/time_manager.c @@ -4,6 +4,7 @@ * @brief OBC時刻のカウントアップと,各種衛星時刻関連処理 */ #include "time_manager.h" +#include "obc_time_config.h" #include #include "../../Library/c2a_round.h" #include "../TaskManager/task_dispatcher.h" diff --git a/TlmCmd/Ccsds/tlm_space_packet.c b/TlmCmd/Ccsds/tlm_space_packet.c index 62762eac1..2281dce24 100644 --- a/TlmCmd/Ccsds/tlm_space_packet.c +++ b/TlmCmd/Ccsds/tlm_space_packet.c @@ -260,10 +260,11 @@ uint8_t* TSP_get_user_data_head(const TlmSpacePacket* tsp) // FIXME: TCP 時代の len と変わってることに注意!!!!!! // これを呼ぶ関数でなおす!!!! -void TSP_setup_primary_hdr(TlmSpacePacket* tsp, APID apid, uint16_t packet_len) +void TSP_setup_primary_hdr(TlmSpacePacket* tsp, APID apid, uint16_t seq_count, uint16_t packet_len) { TSP_set_common_hdr(tsp); TSP_set_apid(tsp, apid); + TSP_set_seq_count(tsp, seq_count); TSP_set_packet_len(tsp, packet_len); } @@ -278,9 +279,6 @@ void TSP_set_common_hdr(TlmSpacePacket* tsp) TSP_set_2nd_hdr_flag(tsp, SP_2ND_HDR_FLAG_PRESENT); // ここでは Sequence Flag は Standalone Packet に固定 // FIXME: きちんとやる TSP_set_seq_flag(tsp, SP_SEQ_FLAG_SINGLE); - // FIXME: 一時的に Cmd_GENERATE_TLM で適当にやってるので,後で直す - // // ここでは Sequence Count は 0 固定 // FIXME: きちんとやる - // TSP_set_seq_count(tsp, 0); } @@ -295,6 +293,7 @@ void TSP_setup_fill_packet(TlmSpacePacket* tsp, uint16_t fill_size) // Fill領域に ピッタリハマる Fill Packet を生成する TSP_setup_primary_hdr(tsp, APID_FILL_PKT, + 0, // FIXME: これでいいのか確認 (uint16_t)fill_size); } else @@ -303,6 +302,7 @@ void TSP_setup_fill_packet(TlmSpacePacket* tsp, uint16_t fill_size) // 領域ピッタリの Fill Packet の生成は不可能なので,データ長 1 のFill Packetを生成する。 TSP_setup_primary_hdr(tsp, APID_FILL_PKT, + 0, // FIXME: これでいいのか確認 SP_PRM_HDR_LEN + 1); } } diff --git a/TlmCmd/Ccsds/tlm_space_packet.h b/TlmCmd/Ccsds/tlm_space_packet.h index 2fffac82c..a0ec014a2 100644 --- a/TlmCmd/Ccsds/tlm_space_packet.h +++ b/TlmCmd/Ccsds/tlm_space_packet.h @@ -345,10 +345,11 @@ uint8_t* TSP_get_user_data_head(const TlmSpacePacket* tsp); * @brief Primary Header を構築 * @param[in,out] tsp: TlmSpacePacket * @param[in] apid: APID + * @param[in] seq_count: Sequence Count * @param[in] packet_len: Packet Length * @return void */ -void TSP_setup_primary_hdr(TlmSpacePacket* tsp, APID apid, uint16_t packet_len); +void TSP_setup_primary_hdr(TlmSpacePacket* tsp, APID apid, uint16_t seq_count, uint16_t packet_len); /** * @brief 共通部分の Header を構築 diff --git a/TlmCmd/command_dispatcher.c b/TlmCmd/command_dispatcher.c index 2e579929d..feed11a90 100644 --- a/TlmCmd/command_dispatcher.c +++ b/TlmCmd/command_dispatcher.c @@ -35,6 +35,10 @@ static void CDIS_clear_exec_info_(CDIS_ExecInfo* exec_info); CommandDispatcher CDIS_init(PacketList* pl) { CommandDispatcher cdis; + static uint8_t init_counter = 0; + + cdis.idx = init_counter; + init_counter++; // コマンド実行情報を初期化 CDIS_clear_exec_info_(&cdis.prev); @@ -128,15 +132,17 @@ void CDIS_dispatch_command(CommandDispatcher* cdis) if (cdis->prev.cmd_ret.exec_sts != CCP_EXEC_SUCCESS) { uint32_t note; - // 実行時エラー情報をELにも記録. エラー発生場所(GSCD,TLCDなど)はcdisのポインタアドレスで区別 + // 実行時エラー情報をELにも記録. エラー発生場所(GSCD,TLCDなど)は cdis の idx で区別 // より重要な EL_CORE_GROUP_CDIS_EXEC_ERR_STS があとに来るように EL 発行 EL_record_event((EL_GROUP)EL_CORE_GROUP_CDIS_EXEC_ERR_CODE, - (uint32_t)cdis, + (uint32_t)cdis->prev.code, EL_ERROR_LEVEL_LOW, cdis->prev.cmd_ret.err_code); - note = ((0x0000ffff & cdis->prev.code) << 16) | (0x0000ffff & cdis->prev.cmd_ret.exec_sts); + note = ((0X000000ff & cdis->idx) << 24) + | ((0x000000ff & cdis->prev.cmd_ret.exec_sts) << 16) + | (0x0000ffff & cdis->prev.cmd_ret.err_code); EL_record_event((EL_GROUP)EL_CORE_GROUP_CDIS_EXEC_ERR_STS, - (uint32_t)cdis, + (uint32_t)cdis->prev.code, EL_ERROR_LEVEL_LOW, note); diff --git a/TlmCmd/command_dispatcher.h b/TlmCmd/command_dispatcher.h index ccaa67ac2..302f4d6d5 100644 --- a/TlmCmd/command_dispatcher.h +++ b/TlmCmd/command_dispatcher.h @@ -28,6 +28,7 @@ typedef struct */ typedef struct { + uint8_t idx; //!< CDIS のインデックス. EL で用いる CDIS_ExecInfo prev; //!< 前回のコマンド実行情報 CDIS_ExecInfo prev_err; //!< 最後にエラーが出たコマンド実行情報 uint32_t error_counter; //!< エラーカウンタ diff --git a/TlmCmd/common_cmd_packet.h b/TlmCmd/common_cmd_packet.h index 818e3aa03..322726479 100644 --- a/TlmCmd/common_cmd_packet.h +++ b/TlmCmd/common_cmd_packet.h @@ -10,15 +10,19 @@ #include // ここで CCP_DEST_TYPE を定義する -// 詳細は /Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h 参照 +// 詳細は +// - /Examples/minimum_user/src/src_user/Settings/TlmCmd/common_cmd_packet_define.h +// - https://github.com/ut-issl/c2a-core/blob/develop/Docs/Core/communication.md +// を参照 /* 例 typedef enum { - CCP_DEST_TYPE_TO_ME = 0, - CCP_DEST_TYPE_TO_MOBC = 1, - CCP_DEST_TYPE_TO_AOBC = 2, - CCP_DEST_TYPE_TO_TOBC = 3, - CCP_DEST_TYPE_TO_UNKOWN = 4 + CCP_DEST_TYPE_TO_ME = 0x0, + CCP_DEST_TYPE_TO_MOBC = 0x1, + CCP_DEST_TYPE_TO_AOBC = 0x2, + CCP_DEST_TYPE_TO_TOBC = 0x3, + CCP_DEST_TYPE_TO_UNKOWN = 0xe, + CCP_DEST_TYPE_TO_APID = 0xf } CCP_DEST_TYPE; */ // さらに, CCP_APID_TO_ME, CCP_MAX_LEN, CommonCmdPacket として使うパケット型を指定する diff --git a/TlmCmd/common_cmd_packet_util.c b/TlmCmd/common_cmd_packet_util.c index a0aab8c4b..66890200e 100644 --- a/TlmCmd/common_cmd_packet_util.c +++ b/TlmCmd/common_cmd_packet_util.c @@ -345,6 +345,18 @@ CCP_CmdRet CCP_form_and_exec_rtc(CMD_CODE cmd_id, const uint8_t* param, uint16_t } +CCP_CmdRet CCP_form_and_exec_rtc_to_other_obc(APID apid, CMD_CODE cmd_id, const uint8_t* param, uint16_t len) +{ + CCP_UTIL_ACK ret = CCP_form_rtc_to_other_obc(&CCP_util_packet_, apid, cmd_id, param, len); + if (ret != CCP_UTIL_ACK_OK) + { + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_PACKET_FMT_ERR); + } + + return PH_dispatch_command(&CCP_util_packet_); +} + + CCP_CmdRet CCP_form_and_exec_block_deploy_cmd(TLCD_ID tl_no, bct_id_t block_no) { CCP_UTIL_ACK ret = CCP_form_block_deploy_cmd(&CCP_util_packet_, tl_no, block_no); diff --git a/TlmCmd/common_cmd_packet_util.h b/TlmCmd/common_cmd_packet_util.h index 59c65f40d..4775d3b16 100644 --- a/TlmCmd/common_cmd_packet_util.h +++ b/TlmCmd/common_cmd_packet_util.h @@ -78,8 +78,8 @@ CCP_UTIL_ACK CCP_form_tlc(CommonCmdPacket* packet, cycle_t ti, CMD_CODE cmd_id, * @brief 他の OBC のコマンドを RT として生成 * @note 本OBC で RT として処理されたあと 他の OBC に送られ RT として実行される * @note param チェックは未実装 - * @param[in] apid: どの OBC かを指定する APID - * @param[in] cmd_id: CMD_CODE + * @param[in] apid: 宛先 OBC のコマンドの APID + * @param[in] cmd_id: 宛先 OBC の CMD_CODE * @param[in] param: パラメタ * @param[in] len: パラメタ長 * @return CCP_UTIL_ACK @@ -91,8 +91,8 @@ CCP_UTIL_ACK CCP_form_rtc_to_other_obc(CommonCmdPacket* packet, APID apid, CMD_C * @note 本OBC で TL として処理されたあと 他の OBC に送られ RT として実行される * @note param チェックは未実装 * @param[in] ti: TI - * @param[in] apid: どの OBC かを指定する APID - * @param[in] cmd_id: CMD_CODE + * @param[in] apid: 宛先 OBC のコマンドの APID + * @param[in] cmd_id: 宛先 OBC の CMD_CODE * @param[in] param: パラメタ * @param[in] len: パラメタ長 * @return CCP_UTIL_ACK @@ -163,6 +163,18 @@ PH_ACK CCP_register_tlc_asap(cycle_t ti, TLCD_ID tlcd_id, CMD_CODE cmd_id, const */ CCP_CmdRet CCP_form_and_exec_rtc(CMD_CODE cmd_id, const uint8_t* param, uint16_t len); +/** + * @brief 他の OBC のコマンドを RT として生成し,即時実行する + * @note 生成される command は RTC だが,キューイングされずに即時実行されるため RTC Dispatcher にはログは残らない + * @param[in] apid: 宛先 OBC のコマンドの APID + * @param[in] cmd_id: 宛先 OBC の CMD_CODE + * @param[in] param: パラメタ + * @param[in] len: パラメタ長 + * @retval CCP_CmdRet{CCP_EXEC_PACKET_FMT_ERR, *}: 引数が不正なとき + * @retval それ以外: PH_dispatch_command の返り値 + */ +CCP_CmdRet CCP_form_and_exec_rtc_to_other_obc(APID apid, CMD_CODE cmd_id, const uint8_t* param, uint16_t len); + /** * @brief BC展開 command を生成し,即時実行する * @param[in] tl_no: Timeline no diff --git a/TlmCmd/common_tlm_packet.h b/TlmCmd/common_tlm_packet.h index f2f61b9ef..845a28137 100644 --- a/TlmCmd/common_tlm_packet.h +++ b/TlmCmd/common_tlm_packet.h @@ -26,10 +26,10 @@ typedef uint8_t ctp_dest_flags_t; //!< CTP_DEST_FLAG の & をとったフ */ typedef enum { - CTP_DEST_FLAG_HK = 0x01, //!< 00000001b: Housekeeping Telemetry - CTP_DEST_FLAG_MS = 0x02, //!< 00000010b: Mission Telemetry - CTP_DEST_FLAG_ST = 0x04, //!< 00000100b: Stored Telemetry - CTP_DEST_FLAG_RP = 0x08, //!< 00001000b: Replay Telemetry + CTP_DEST_FLAG_HP_TLM = 0x01, //!< 00000001b: High Priority Realtime Telemetry + CTP_DEST_FLAG_RT_TLM = 0x02, //!< 00000010b: Realtime Telemetry + CTP_DEST_FLAG_ST_TLM = 0x04, //!< 00000100b: Stored Telemetry + CTP_DEST_FLAG_RP_TLM = 0x08, //!< 00001000b: Replay Telemetry CTP_DEST_FLAG_RESERVE1 = 0x10, //!< 00010000b: 将来拡張用の確保領域 CTP_DEST_FLAG_RESERVE2 = 0x20, //!< 00100000b: 将来拡張用の確保領域 CTP_DEST_FLAG_RESERVE3 = 0x40, //!< 01000000b: 将来拡張用の確保領域 @@ -63,13 +63,37 @@ APID CTP_get_apid(const CommonTlmPacket* packet); void CTP_set_apid(CommonTlmPacket* packet, APID apid); /** - * @brief 現在の global_time を設定 + * @brief Global Time を取得 + * @note 何が設定されているかは user 定義 + * @param packet: CTP + * @return Global Time + */ +double CTP_get_global_time(const CommonTlmPacket* packet); + +/** + * @brief 現在の Global Time を設定 * @note 何を設定するかは user 定義 * @param[in,out] packet: CTP * @return void */ void CTP_set_global_time(CommonTlmPacket* packet); +/** + * @brief On-Board Subnetwork Time を取得 + * @note 何が設定されているかは user 定義 + * @param packet: CTP + * @return On-Board Subnetwork Time + */ +uint32_t CTP_get_on_board_subnet_time(const CommonTlmPacket* packet); + +/** + * @brief 現在の On-Board Subnetwork Time を設定 + * @note 何を設定するかは user 定義 + * @param[in,out] packet: CTP + * @return void + */ +void CTP_set_on_board_subnet_time(CommonTlmPacket* packet); + /** * @brief CTP_DEST_FLAG の & を取った flags を取得 * @param packet: CTP diff --git a/TlmCmd/packet_handler.c b/TlmCmd/packet_handler.c index 35460a3e4..cf086284d 100644 --- a/TlmCmd/packet_handler.c +++ b/TlmCmd/packet_handler.c @@ -17,7 +17,7 @@ PacketList PH_gs_cmd_list; PacketList PH_rt_cmd_list; PacketList PH_tl_cmd_list[TLCD_ID_MAX]; -PacketList PH_ms_tlm_list; +PacketList PH_rt_tlm_list; #ifdef DR_ENABLE PacketList PH_st_tlm_list; PacketList PH_rp_tlm_list; @@ -31,7 +31,7 @@ static PL_Node PH_tl_cmd_tlm_stock_[PH_TLC_TLM_LIST_MAX]; #ifdef TLCD_ENABLE_MISSION_TL static PL_Node PH_tl_cmd_mis_stock_[PH_TLC_MIS_LIST_MAX]; #endif -static PL_Node PH_ms_tlm_stock_[PH_MS_TLM_LIST_MAX]; +static PL_Node PH_rt_tlm_stock_[PH_RT_TLM_LIST_MAX]; #ifdef DR_ENABLE static PL_Node PH_st_tlm_stock_[PH_ST_TLM_LIST_MAX]; static PL_Node PH_rp_tlm_stock_[PH_RP_TLM_LIST_MAX]; @@ -45,7 +45,7 @@ static CommonCmdPacket PH_tl_cmd_tlm_ccp_stock_[PH_TLC_TLM_LIST_MAX]; #ifdef TLCD_ENABLE_MISSION_TL static CommonCmdPacket PH_tl_cmd_mis_ccp_stock_[PH_TLC_MIS_LIST_MAX]; #endif -static CommonTlmPacket PH_ms_tlm_ctp_stock_[PH_MS_TLM_LIST_MAX]; +static CommonTlmPacket PH_rt_tlm_ctp_stock_[PH_RT_TLM_LIST_MAX]; #ifdef DR_ENABLE static CommonTlmPacket PH_st_tlm_ctp_stock_[PH_ST_TLM_LIST_MAX]; static CommonTlmPacket PH_rp_tlm_ctp_stock_[PH_RP_TLM_LIST_MAX]; @@ -64,7 +64,8 @@ static PH_ACK PH_add_tl_cmd_(TLCD_ID id, * @return PH_ACK */ static PH_ACK PH_add_utl_cmd_(TLCD_ID id, const CommonCmdPacket* packet); -static PH_ACK PH_add_ms_tlm_(const CommonTlmPacket* packet); +static PH_ACK PH_add_tlm_to_pl(const CommonTlmPacket* packet, PacketList* pl, CTP_DEST_FLAG dest_flag); +static PH_ACK PH_add_rt_tlm_(const CommonTlmPacket* packet); #ifdef DR_ENABLE static PH_ACK PH_add_st_tlm_(const CommonTlmPacket* packet); static PH_ACK PH_add_rp_tlm_(const CommonTlmPacket* packet); @@ -83,7 +84,7 @@ void PH_init(void) PL_initialize_with_ccp(PH_tl_cmd_mis_stock_, PH_tl_cmd_mis_ccp_stock_, PH_TLC_TLM_LIST_MAX, &PH_tl_cmd_list[TLCD_ID_FROM_GS_FOR_MISSION]); #endif - PL_initialize_with_ctp(PH_ms_tlm_stock_, PH_ms_tlm_ctp_stock_, PH_MS_TLM_LIST_MAX, &PH_ms_tlm_list); + PL_initialize_with_ctp(PH_rt_tlm_stock_, PH_rt_tlm_ctp_stock_, PH_RT_TLM_LIST_MAX, &PH_rt_tlm_list); #ifdef DR_ENABLE PL_initialize_with_ctp(PH_st_tlm_stock_, PH_st_tlm_ctp_stock_, PH_ST_TLM_LIST_MAX, &PH_st_tlm_list); PL_initialize_with_ctp(PH_rp_tlm_stock_, PH_rp_tlm_ctp_stock_, PH_RP_TLM_LIST_MAX, &PH_rp_tlm_list); @@ -130,9 +131,10 @@ PH_ACK PH_analyze_cmd_packet(const CommonCmdPacket* packet) } // ここまで来たら自分宛て - // 例えば以下のどちらか - // - CCP_DEST_TYPE_TO_ME - // - CCP_DEST_TYPE_TO_MOBC (自分) + // 例えば以下のどれか + // - CCP_DEST_TYPE_TO_ME + // - CCP_DEST_TYPE_TO_APID でかつ, APID が自分宛てのもの + // - CCP_DEST_TYPE_TO_MOBC などの自分宛 // 統一するため上書きする CCP_set_dest_type((CommonCmdPacket*)packet, CCP_DEST_TYPE_TO_ME); // const_cast @@ -207,18 +209,18 @@ PH_ACK PH_analyze_tlm_packet(const CommonTlmPacket* packet) // FIXME: flag の match は関数化したい - // Housekeeping Telemetry - if (flags & CTP_DEST_FLAG_HK) PH_add_ms_tlm_(packet); // hk_tlm のフラグが立っていても,MS_TLMとして処理する方針にした + // High Priority Realtime Telemetry + if (flags & CTP_DEST_FLAG_HP_TLM) PH_add_rt_tlm_(packet); // hp_tlm のフラグが立っていても,RT_TLMとして処理する方針にした - // Mission Telemetry - if (flags & CTP_DEST_FLAG_MS) PH_add_ms_tlm_(packet); + // Realtime Telemetry + if (flags & CTP_DEST_FLAG_RT_TLM) PH_add_rt_tlm_(packet); #ifdef DR_ENABLE // Stored Telemetry - if (flags & CTP_DEST_FLAG_ST) PH_add_st_tlm_(packet); + if (flags & CTP_DEST_FLAG_ST_TLM) PH_add_st_tlm_(packet); // Replay Telemetry - if (flags & CTP_DEST_FLAG_RP) PH_add_rp_tlm_(packet); + if (flags & CTP_DEST_FLAG_RP_TLM) PH_add_rp_tlm_(packet); #endif // [TODO] 要検討:各Queue毎の登録エラー判定は未実装 @@ -311,24 +313,34 @@ static PH_ACK PH_add_utl_cmd_(TLCD_ID id, const CommonCmdPacket* packet) } -static PH_ACK PH_add_ms_tlm_(const CommonTlmPacket* packet) +static PH_ACK PH_add_tlm_to_pl(const CommonTlmPacket* packet, PacketList* pl, CTP_DEST_FLAG dest_flag) { - PL_ACK ack = PL_push_back(&PH_ms_tlm_list, packet); + PL_Node* tail; + PL_ACK ack = PL_push_back(pl, packet); if (ack != PL_SUCCESS) return PH_ACK_PL_LIST_FULL; + // 複数の配送先に配送されるパケットの分岐は終わっているため, dest flag を配送先のもののみにする. + // こうすることで, GS SW 側でのデータベース格納の処理がシンプルになる. + // PL_SUCCESS の場合,かならず tail に格納した packet がある. + // TODO: メモリコピーをなくすためにだいぶやんちゃな実装なので,ぱっといい方法が思いつくなら直す + tail = (PL_Node*)PL_get_tail(pl); // const_cast + CTP_set_dest_flags((CommonTlmPacket*)(tail->packet), (ctp_dest_flags_t)dest_flag); + return PH_ACK_SUCCESS; } -#ifdef DR_ENABLE -static PH_ACK PH_add_st_tlm_(const CommonTlmPacket* packet) +static PH_ACK PH_add_rt_tlm_(const CommonTlmPacket* packet) { - PL_ACK ack = PL_push_back(&PH_st_tlm_list, packet); + return PH_add_tlm_to_pl(packet, &PH_rt_tlm_list, CTP_DEST_FLAG_RT_TLM); +} - if (ack != PL_SUCCESS) return PH_ACK_PL_LIST_FULL; - return PH_ACK_SUCCESS; +#ifdef DR_ENABLE +static PH_ACK PH_add_st_tlm_(const CommonTlmPacket* packet) +{ + return PH_add_tlm_to_pl(packet, &PH_st_tlm_list, CTP_DEST_FLAG_ST_TLM); } #endif @@ -336,11 +348,7 @@ static PH_ACK PH_add_st_tlm_(const CommonTlmPacket* packet) #ifdef DR_ENABLE static PH_ACK PH_add_rp_tlm_(const CommonTlmPacket* packet) { - PL_ACK ack = PL_push_back(&PH_rp_tlm_list, packet); - - if (ack != PL_SUCCESS) return PH_ACK_PL_LIST_FULL; - - return PH_ACK_SUCCESS; + return PH_add_tlm_to_pl(packet, &PH_rp_tlm_list, CTP_DEST_FLAG_RP_TLM); } #endif diff --git a/TlmCmd/packet_handler.h b/TlmCmd/packet_handler.h index 0e93c9a2d..6ef225cc6 100644 --- a/TlmCmd/packet_handler.h +++ b/TlmCmd/packet_handler.h @@ -19,7 +19,7 @@ #define PH_TLC_BC_LIST_MAX (TL_TLM_PAGE_SIZE * 4) #define PH_TLC_TLM_LIST_MAX (TL_TLM_PAGE_SIZE * 4) #define PH_TLC_MIS_LIST_MAX (TL_TLM_PAGE_SIZE * 4) // とりあえず TL1,2 と同じ長さにした -#define PH_MS_TLM_LIST_MAX (16) +#define PH_RT_TLM_LIST_MAX (16) #define PH_ST_TLM_LIST_MAX (16) #define PH_RP_TLM_LIST_MAX (16) @@ -45,10 +45,10 @@ typedef enum PH_ACK_PL_LIST_FULL, //!< PL が一杯だった PH_ACK_PACKET_NOT_FOUND, //!< パケットが無い PH_ACK_INVALID_PACKET, //!< 無効な Packet - PH_ACK_TLC_SUCCESS, //!< TL に登録された - PH_ACK_TLC_PAST_TIME, //!< 既に実行時間を過ぎている + PH_ACK_TLC_SUCCESS, //!< TL 登録に成功した + PH_ACK_TLC_PAST_TIME, //!< 既に実行時刻を過ぎている PH_ACK_TLC_ALREADY_EXISTS, //!< 同 TI に既に packet がいる - PH_ACK_BC_SUCCESS, //!< BC 展開に成功した + PH_ACK_BC_SUCCESS, //!< BC 登録に成功した PH_ACK_BC_INVALID_BLOCK_NO, //!< 無効な BC 番号だった PH_ACK_BC_ISORATED_CMD, //!< 飛ばして BC 登録しようとした PH_ACK_BC_CMD_TOO_LONG, //!< CMD が BC には長すぎる @@ -58,8 +58,8 @@ typedef enum extern PacketList PH_gs_cmd_list; extern PacketList PH_rt_cmd_list; extern PacketList PH_tl_cmd_list[TLCD_ID_MAX]; -// extern PacketList PH_hk_tlm_list; // 現在は MS TLM に統合されている( TODO: 今後また分離させても良いかも.要検討) -extern PacketList PH_ms_tlm_list; +// extern PacketList PH_hp_tlm_list; // 現在は RT_TLM に統合されている( TODO: 今後また分離させても良いかも.要検討) +extern PacketList PH_rt_tlm_list; #ifdef DR_ENABLE extern PacketList PH_st_tlm_list; extern PacketList PH_rp_tlm_list; diff --git a/TlmCmd/packet_list.c b/TlmCmd/packet_list.c index ad58b201e..8c54e996b 100644 --- a/TlmCmd/packet_list.c +++ b/TlmCmd/packet_list.c @@ -147,15 +147,15 @@ int PL_is_full(const PacketList* pl) } -const PL_Node* PL_get_head(const PacketList* pli) +const PL_Node* PL_get_head(const PacketList* pl) { - return pli->active_list_head_; + return pl->active_list_head_; } -const PL_Node* PL_get_tail(const PacketList* pli) +const PL_Node* PL_get_tail(const PacketList* pl) { - return pli->active_list_tail_; + return pl->active_list_tail_; } diff --git a/TlmCmd/telemetry_generator.c b/TlmCmd/telemetry_generator.c index 9bffbcb50..f2f41787c 100644 --- a/TlmCmd/telemetry_generator.c +++ b/TlmCmd/telemetry_generator.c @@ -9,17 +9,56 @@ #include "common_cmd_packet.h" #include "common_cmd_packet_util.h" #include +#include #include #include "./Ccsds/tlm_space_packet.h" // FIXME: TSP 依存性はNGなので, TCP → SP 大工事終わったら直す -static uint8_t TG_get_next_adu_counter_(void); + +/** + * @brief 自身のテレメを生成 + * @note 2nd OBC のテレメは生成できない + * @param[in] tlm_id: Tlm ID + * @param[in] dest_flags: Dest Flags + * @param[in] dest_info: Dest Info + * @param[in] dump_num: テレメ送出回数 + * @return CCP_CmdRet + */ +static CCP_CmdRet TG_generate_tlm_(TLM_CODE tlm_id, + ctp_dest_flags_t dest_flags, + uint8_t dest_info, + uint8_t num_dumps); + +/** + * @brief 2nd OBC のテレメを転送 + * @note 自身の OBC のテレメは転送できない + * @param[in] apid: 転送する 2nd OBC tlm の APID + * @param[in] tlm_id: Tlm ID + * @param[in] dest_flags: Dest Flags + * @param[in] dest_info: Dest Info + * @param[in] dump_num: テレメ送出回数 + * @return CCP_CmdRet + */ +static CCP_CmdRet TG_forward_tlm_(APID apid, + TLM_CODE tlm_id, + ctp_dest_flags_t dest_flags, + uint8_t dest_info, + uint8_t dump_num); + +/** + * @brief 次のパケットで用いる Sequence Count を取得 + * @param void + * @return Sequence Count + */ +static uint16_t TG_get_next_seq_count_(void); + +static CommonTlmPacket TG_ctp_; // FIXME: 現在のコードは,MOBC と 2nd OBC の Tlm id がユニークであることを想定している // 本来被っても良いはず +// DEPRECATED!!!!! CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) { - static CommonTlmPacket ctp_; uint8_t category = CCP_get_param_from_packet(packet, 0, uint8_t); TLM_CODE id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); uint8_t num_dumps = CCP_get_param_from_packet(packet, 2, uint8_t); @@ -39,14 +78,14 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) } // ctp の ヘッダ部分の APID をクリア - // この後で, APID_is_other_obc_tlm_apid で配送元 OBC を割り出せるように - CTP_set_apid(&ctp_, APID_UNKNOWN); + // この後で, 配送元 OBC が自身か 2nd obc かを割り出せるように + CTP_set_apid(&TG_ctp_, (APID)(APID_UNKNOWN & 0x7ff)); // FIXME: APID_UNKNOWN = APID_FILL_PKT + 1 だと 11 bit から溢れてる... // ADU生成 // ADU分割が発生しない場合に限定したコードになっている。 // TLM定義シート上で定義するADUはADU長をADU分割が発生しない長さに制限する。 ack = TF_generate_contents(id, - ctp_.packet, + TG_ctp_.packet, &len, TSP_MAX_LEN); @@ -55,7 +94,7 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) if (ack != TF_TLM_FUNC_ACK_SUCCESS) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_CONTEXT); // Header - if (APID_is_other_obc_tlm_apid(CTP_get_apid(&ctp_))) + if ((APID)(CTP_get_apid(&TG_ctp_) & 0x7ff) != (APID)(APID_UNKNOWN & 0x7ff)) // FIXME: APID_UNKNOWN = APID_FILL_PKT + 1 だと 11 bit から溢れてる... { // 2nd OBC で生成された TLM の primary header, secondary header の board time はそのまま維持 } @@ -63,16 +102,15 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) { // Primary Header // FIXME: Space Packet 依存を直す - TSP_setup_primary_hdr(&ctp_, CTP_APID_FROM_ME, len); - TSP_set_seq_count(&ctp_, TG_get_next_adu_counter_()); + TSP_setup_primary_hdr(&TG_ctp_, CTP_APID_FROM_ME, TG_get_next_seq_count_(), len); // Secondary Header - TSP_set_board_time(&ctp_, (uint32_t)(TMGR_get_master_total_cycle())); + TSP_set_board_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); } // FIXME: 他の時刻も入れる - CTP_set_global_time(&ctp_); - TSP_set_on_board_subnet_time(&ctp_, (uint32_t)(TMGR_get_master_total_cycle())); // FIXME: 暫定 + CTP_set_global_time(&TG_ctp_); + TSP_set_on_board_subnet_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); // FIXME: 暫定 // FIXME: 他 OBC からのパケットは別処理する // FIXME: 一旦雑に category を処理してるが後でちゃんと直す @@ -80,28 +118,218 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) dest_flags = (uint8_t)( (category & dest_flags_mask) >> 5 ); if (dest_flags == 0) { - dest_flags = CTP_DEST_FLAG_RP; + dest_flags = CTP_DEST_FLAG_RP_TLM; } - TSP_set_dest_flags(&ctp_, dest_flags); - TSP_set_dest_info(&ctp_, dr_partition); // FIXME: もはや dr partition ですらない - TSP_set_tlm_id(&ctp_, id); + TSP_set_dest_flags(&TG_ctp_, dest_flags); + TSP_set_dest_info(&TG_ctp_, dr_partition); // FIXME: もはや dr partition ですらない + TSP_set_tlm_id(&TG_ctp_, id); + TSP_set_2nd_hdr_ver(&TG_ctp_, TSP_2ND_HDR_VER_1); // 生成したパケットを指定された回数配送処理へ渡す while (num_dumps != 0) { - PH_analyze_tlm_packet(&ctp_); + PH_analyze_tlm_packet(&TG_ctp_); --num_dumps; } return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); } -// FIXME: space packet 大工事でビット幅が変わってるので直す! -static uint8_t TG_get_next_adu_counter_(void) + +CCP_CmdRet Cmd_TG_GENERATE_TLM(const CommonCmdPacket* packet) +{ + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 0, uint8_t); + ctp_dest_flags_t dest_flags = (ctp_dest_flags_t)CCP_get_param_from_packet(packet, 1, uint8_t); + uint8_t dest_info = CCP_get_param_from_packet(packet, 2, uint8_t); + uint8_t dump_num = CCP_get_param_from_packet(packet, 3, uint8_t); + + return TG_generate_tlm_(tlm_id, dest_flags, dest_info, dump_num); +} + + +CCP_CmdRet Cmd_TG_GENERATE_HP_TLM(const CommonCmdPacket* packet) +{ + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 0, uint8_t); + + return TG_generate_tlm_(tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_HP_TLM, 0, 1); +} + + +CCP_CmdRet Cmd_TG_GENERATE_RT_TLM(const CommonCmdPacket* packet) +{ + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 0, uint8_t); + + return TG_generate_tlm_(tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_RT_TLM, 0, 1); +} + + +CCP_CmdRet Cmd_TG_GENERATE_ST_TLM(const CommonCmdPacket* packet) +{ + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 0, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 1, uint8_t); + + return TG_generate_tlm_(tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_ST_TLM, dr_partition, 1); +} + + +CCP_CmdRet Cmd_TG_FORWARD_TLM(const CommonCmdPacket* packet) +{ + APID apid = APID_get_apid_from_uint16(CCP_get_param_from_packet(packet, 0, uint16_t)); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + ctp_dest_flags_t dest_flags = (ctp_dest_flags_t)CCP_get_param_from_packet(packet, 2, uint8_t); + uint8_t dest_info = CCP_get_param_from_packet(packet, 3, uint8_t); + uint8_t dump_num = CCP_get_param_from_packet(packet, 4, uint8_t); + + return TG_forward_tlm_(apid, tlm_id, dest_flags, dest_info, dump_num); +} + + +CCP_CmdRet Cmd_TG_FORWARD_AS_HP_TLM(const CommonCmdPacket* packet) +{ + APID apid = APID_get_apid_from_uint16(CCP_get_param_from_packet(packet, 0, uint16_t)); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + + return TG_forward_tlm_(apid, tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_HP_TLM, 0, 1); +} + + +CCP_CmdRet Cmd_TG_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet) +{ + APID apid = APID_get_apid_from_uint16(CCP_get_param_from_packet(packet, 0, uint16_t)); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + + return TG_forward_tlm_(apid, tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_RT_TLM, 0, 1); +} + + +CCP_CmdRet Cmd_TG_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet) +{ + APID apid = APID_get_apid_from_uint16(CCP_get_param_from_packet(packet, 0, uint16_t)); + TLM_CODE tlm_id = (TLM_CODE)CCP_get_param_from_packet(packet, 1, uint8_t); + uint8_t dr_partition = CCP_get_param_from_packet(packet, 2, uint8_t); + + return TG_forward_tlm_(apid, tlm_id, (ctp_dest_flags_t)CTP_DEST_FLAG_ST_TLM, dr_partition, 1); +} + + +static CCP_CmdRet TG_generate_tlm_(TLM_CODE tlm_id, + ctp_dest_flags_t dest_flags, + uint8_t dest_info, + uint8_t dump_num) +{ + TF_TLM_FUNC_ACK ack; + uint16_t packet_len; + + if (dump_num >= 8) + { + // FIXME: 要検討? + // パケット生成回数の上限は 8 回とする。 + // 32 kbpsでの DL 時に 8 VCDU / sec で 1 秒分の通信量。 + // これを超える場合は複数回コマンドを送信して対応する。 + return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_PARAMETER, TLM_CODE_MAX); + } + + // ADU 生成 + // ADU 分割が発生しない場合に限定したコードになっている + // TLM 定義シート上で定義する ADU は ADU 長を ADU 分割が発生しない長さに制限する + // FIXME: ↑ ADU,今の TSP では存在しない? 文面見直してなおす + // https://github.com/ut-issl/c2a-core/issues/222 + ack = TF_generate_contents(tlm_id, + TG_ctp_.packet, + &packet_len, + TSP_MAX_LEN); + + // 範囲外のTLM IDを除外 + if (ack == TF_TLM_FUNC_ACK_NOT_DEFINED) return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_PARAMETER, tlm_id); + if (ack != TF_TLM_FUNC_ACK_SUCCESS) return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); + + // 自身の OBC のテレメ生成を前提としているので, Cmd_GENERATE_TLM のように 2nd OBC 判定はいれない + + // Primary Header + TSP_setup_primary_hdr(&TG_ctp_, CTP_APID_FROM_ME, TG_get_next_seq_count_(), packet_len); + + // Secondary Header + TSP_set_2nd_hdr_ver(&TG_ctp_, TSP_2ND_HDR_VER_1); + TSP_set_board_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); + TSP_set_tlm_id(&TG_ctp_, tlm_id); + // FIXME: 他の時刻も入れる + CTP_set_global_time(&TG_ctp_); + CTP_set_on_board_subnet_time(&TG_ctp_); + TSP_set_dest_flags(&TG_ctp_, dest_flags); + TSP_set_dest_info(&TG_ctp_, dest_info); + + // 生成したパケットを指定された回数配送処理へ渡す + while (dump_num != 0) + { + PH_analyze_tlm_packet(&TG_ctp_); + --dump_num; + } + + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); +} + + +static CCP_CmdRet TG_forward_tlm_(APID apid, + TLM_CODE tlm_id, + ctp_dest_flags_t dest_flags, + uint8_t dest_info, + uint8_t dump_num) +{ + TF_TLM_FUNC_ACK ack; + uint16_t packet_len; + + if (dump_num >= 8) + { + // FIXME: TG_generate_tlm_ とともに要検討 + return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_PARAMETER, 0); + } + + ack = PH_user_telemetry_router(apid, + tlm_id, + TG_ctp_.packet, + &packet_len, + TSP_MAX_LEN); + + if (ack == TF_TLM_FUNC_ACK_NOT_DEFINED) return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_PARAMETER, ( ((uint16_t)apid << 16) | (0x0000ffff & tlm_id) )); + if (ack != TF_TLM_FUNC_ACK_SUCCESS) return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); + + // 2nd OBC なので, Header は可能な限り維持 + // Primary Header → 維持 + + // Secondary Header + // FIXME: 方針を決めて直す(また, `(uint64_t)` へのキャストは不適切そう) + // if ((uint64_t)TSP_get_global_time(&TG_ctp_) == 0xffffffffffffffffULL) + // { + // CTP_set_global_time(&TG_ctp_); + // } + if (CTP_get_on_board_subnet_time(&TG_ctp_) == 0xffffffff) + { + // FIXME: 本当は Driver で受信時に上書きするべき? 一応 CTP_get_ctp_from_dssc でも対応 + // MOBC - 2nd OBC - 3rd OBC というとき, 2nd OBC でも 0xffffffff ができるようにしている + CTP_set_on_board_subnet_time(&TG_ctp_); + } + + TSP_set_dest_flags(&TG_ctp_, dest_flags); + TSP_set_dest_info(&TG_ctp_, dest_info); + + // 生成したパケットを指定された回数配送処理へ渡す + while (dump_num != 0) + { + PH_analyze_tlm_packet(&TG_ctp_); + --dump_num; + } + + return CCP_make_cmd_ret_without_err_code(CCP_EXEC_SUCCESS); +} + + +static uint16_t TG_get_next_seq_count_(void) { - // インクリメントした値を返すため初期値は0xffとする - static uint8_t adu_counter_ = 0xff; - return ++adu_counter_; + // インクリメントした値を返すため初期値は 0xffff とする + static uint16_t adu_counter_ = 0xffff; + ++adu_counter_; + // Sequence Count は 14 bit + return 0x3fff & adu_counter_; } #pragma section diff --git a/TlmCmd/telemetry_generator.h b/TlmCmd/telemetry_generator.h index 9f4751d03..a0754a9c6 100644 --- a/TlmCmd/telemetry_generator.h +++ b/TlmCmd/telemetry_generator.h @@ -3,6 +3,55 @@ #include "common_cmd_packet.h" +// deprecated CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet); +/** + * @brief 自身の OBC のテレメを生成 + */ +CCP_CmdRet Cmd_TG_GENERATE_TLM(const CommonCmdPacket* packet); + +/** + * @brief HP テレメを生成 + * @note Cmd_TG_GENERATE_TLM の Destination Flags が High Priority Realtime Telemetry のエイリアス + */ +CCP_CmdRet Cmd_TG_GENERATE_HP_TLM(const CommonCmdPacket* packet); + +/** + * @brief RT テレメを生成 + * @note Cmd_TG_GENERATE_TLM の Destination Flags が Realtime Telemetry のエイリアス + */ +CCP_CmdRet Cmd_TG_GENERATE_RT_TLM(const CommonCmdPacket* packet); + +/** + * @brief ST テレメを生成 + * @note Cmd_TG_GENERATE_TLM の Destination Flags が Stored Telemetry のエイリアス + * @note Data Recorder のどのパーティションに配送されるかも引数で受ける + */ +CCP_CmdRet Cmd_TG_GENERATE_ST_TLM(const CommonCmdPacket* packet); + +/** + * @brief 2nd OBC のテレメを転送 + */ +CCP_CmdRet Cmd_TG_FORWARD_TLM(const CommonCmdPacket* packet); + +/** + * @brief HP テレメとして 2nd OBC のテレメを転送 + * @note Cmd_TG_FORWARD_TLM の Destination Flags が High Priority Realtime Telemetry のエイリアス + */ +CCP_CmdRet Cmd_TG_FORWARD_AS_HP_TLM(const CommonCmdPacket* packet); + +/** + * @brief RT テレメとして 2nd OBC のテレメを転送 + * @note Cmd_TG_FORWARD_TLM の Destination Flags が Realtime Telemetry のエイリアス + */ +CCP_CmdRet Cmd_TG_FORWARD_AS_RT_TLM(const CommonCmdPacket* packet); + +/** + * @brief ST テレメとして 2nd OBC のテレメを転送 + * @note Cmd_TG_FORWARD_TLM の Destination Flags が Stored Telemetry のエイリアス + * @note Data Recorder のどのパーティションに配送されるかも引数で受ける + */ +CCP_CmdRet Cmd_TG_FORWARD_AS_ST_TLM(const CommonCmdPacket* packet); + #endif diff --git a/build.rs b/build.rs new file mode 100644 index 000000000..94598a675 --- /dev/null +++ b/build.rs @@ -0,0 +1,124 @@ +use std::collections::HashMap; +use std::env; + +use semver::Version; + +use clang::{token::TokenKind::Punctuation, Clang, Index}; + +fn main() { + println!("cargo:source_dir={}", env!("CARGO_MANIFEST_DIR")); + + let ver = env!("CARGO_PKG_VERSION"); + let ver = Version::parse(ver).unwrap(); + dbg!(&ver); + + let header_ver = get_core_version_from_header(); + dbg!(&header_ver); + + assert_eq!(ver, header_ver); +} + +fn get_core_version_from_header() -> Version { + let macros = get_definitions("c2a_core_main.h"); + + let major: u64 = macros + .get("C2A_CORE_VER_MAJOR") + .expect("failed to get major ver") + .as_ref() + .unwrap() + .parse() + .expect("failed to parse as u64"); + let minor: u64 = macros + .get("C2A_CORE_VER_MINOR") + .expect("failed to get minor ver") + .as_ref() + .unwrap() + .parse() + .expect("failed to parse as u64"); + let patch: u64 = macros + .get("C2A_CORE_VER_PATCH") + .expect("failed to get patch ver") + .as_ref() + .unwrap() + .parse() + .expect("failed to parse as u64"); + let pre = macros + .get("C2A_CORE_VER_PRE") + .expect("failed to get pre ver") + .as_ref() + .unwrap(); + let pre = semver::Prerelease::new(&pre).expect("failed to parse as pre release"); + + Version { + major, + minor, + patch, + pre, + build: semver::BuildMetadata::EMPTY, + } +} + +fn get_definitions(src_file: &str) -> HashMap> { + let mut macros = HashMap::new(); + + let clang = Clang::new().expect("failed to acquire clang instance"); + let index = Index::new(&clang, false, false); + + let tu = index + .parser(src_file) + .detailed_preprocessing_record(true) + .parse() + .expect("failed to parse c2a-core main header"); + let entity = tu.get_entity(); + + let childlen = entity.get_children().into_iter(); + + for cursor in childlen { + match cursor.get_kind() { + clang::EntityKind::MacroDefinition => { + let location = cursor.get_location().unwrap().get_file_location(); + if let Some(file) = location.file { + let file = file.get_path(); + let _f = file.to_str().unwrap(); + } else { + continue; + } + + let name = cursor.get_display_name().unwrap(); + let mut token = cursor.get_range().unwrap().tokenize(); + token.remove(0); // remove macro Identifier token + if token.is_empty() { + macros.insert(name, None); + continue; // remove define only + } + + let first = token.first().unwrap(); + let last = token.last().unwrap(); + if first.get_kind() == Punctuation && last.get_kind() == Punctuation { + if first.get_spelling() == "(" && last.get_spelling() == ")" { + token.remove(0); + token.remove(token.len() - 1); + } + } + + if token.len() == 1 { + let value = token[0].get_spelling(); + + let value = if value.starts_with("\"") && value.ends_with("\"") { + let value = value.strip_prefix("\"").unwrap(); + value.strip_suffix("\"").unwrap().to_string() + } else { + value + }; + macros.insert(name, Some(value)); + } else { + // 単純な値ではなかった(ex: 関数マクロ) + dbg!(token); + } + } + _ => {} + } + } + + macros +} diff --git a/c2a_core_main.c b/c2a_core_main.c index 3540a82b1..1f76a9d12 100644 --- a/c2a_core_main.c +++ b/c2a_core_main.c @@ -1,6 +1,7 @@ #pragma section REPRO #include "c2a_core_main.h" +#include "./Library/git_revision.h" #include "./Library/print.h" #include "./System/TaskManager/task_dispatcher.h" #include "./System/ApplicationManager/app_manager.h" @@ -15,6 +16,12 @@ #include +// git revisionをコードに埋め込む +const char GIT_REV_CORE[41] = GIT_REVISION_C2A_CORE; +const uint32_t GIT_REV_CORE_SHORT = GIT_REVISION_C2A_CORE_SHORT; +const char GIT_REV_USER[41] = GIT_REVISION_C2A_USER; +const uint32_t GIT_REV_USER_SHORT = GIT_REVISION_C2A_USER_SHORT; + void C2A_core_init(void) { CA_initialize(); // Cmd Analyze diff --git a/c2a_core_main.h b/c2a_core_main.h index 7ed2b683e..c835c5ddd 100644 --- a/c2a_core_main.h +++ b/c2a_core_main.h @@ -8,7 +8,7 @@ void C2A_core_main(void); // これらの番号は,リリース時に手動で合わせる // 詳細: Docs/General/release.md #define C2A_CORE_VER_MAJOR (3) -#define C2A_CORE_VER_MINOR (8) +#define C2A_CORE_VER_MINOR (9) #define C2A_CORE_VER_PATCH (0) #define C2A_CORE_VER_PRE ("") diff --git a/common.cmake b/common.cmake index ee8b3ea61..5ff62b2df 100644 --- a/common.cmake +++ b/common.cmake @@ -2,16 +2,20 @@ if(BUILD_C2A_AS_CXX) # memo: set_source_files_properties() must be set before add_library/add_executable on Visual Studio CMake set_source_files_properties(${C2A_SRCS} PROPERTIES LANGUAGE CXX) # C++ else() - if (CMAKE_C_COMPILER_ID STREQUAL "Clang") - # TODO: remove this! - # -Wno-commentが`std=c90`の後に来る必要があるのでC89のうちはこうするしかない - target_compile_options(${PROJECT_NAME} PUBLIC "-std=c90") + if(BUILD_C2A_AS_C99) + set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 99) # C99 else() - set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 90) # C89 - # TODO: set always! - # GNU拡張を禁止すると1行コメントがエラーになる - if(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU") - set_target_properties(${PROJECT_NAME} PROPERTIES C_EXTENSIONS FALSE) # no extensions(GNU) + if (CMAKE_C_COMPILER_ID STREQUAL "Clang") + # TODO: remove this! + # -Wno-commentが`std=c90`の後に来る必要があるのでC89のうちはこうするしかない + target_compile_options(${PROJECT_NAME} PUBLIC "-std=c90") + else() + set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 90) # C89 + # TODO: set always! + # GNU拡張を禁止すると1行コメントがエラーになる + if(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU") + set_target_properties(${PROJECT_NAME} PROPERTIES C_EXTENSIONS FALSE) # no extensions(GNU) + endif() endif() endif() endif() diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 000000000..93e0c161c --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,6 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(feature = "export-src")] +pub fn source_dir() -> std::path::PathBuf { + std::path::Path::new(env!("CARGO_MANIFEST_DIR")).to_path_buf() +}