From 13b07897d28c90b077a2609cd4e1d9ef070d0a18 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 07:02:46 +0900 Subject: [PATCH 01/11] feat: secondary header to obc reboot counter --- TlmCmd/telemetry_generator.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/TlmCmd/telemetry_generator.c b/TlmCmd/telemetry_generator.c index f2f41787c..66e0ea090 100644 --- a/TlmCmd/telemetry_generator.c +++ b/TlmCmd/telemetry_generator.c @@ -12,6 +12,7 @@ #include #include #include "./Ccsds/tlm_space_packet.h" // FIXME: TSP 依存性はNGなので, TCP → SP 大工事終わったら直す +#include // FIXME: RTI 依存性はNGなのでいつか直すべき /** @@ -123,7 +124,7 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) 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); + TSP_set_2nd_hdr_ver(&TG_ctp_, record_ti->startup_counter); // 生成したパケットを指定された回数配送処理へ渡す while (num_dumps != 0) @@ -249,7 +250,7 @@ static CCP_CmdRet TG_generate_tlm_(TLM_CODE tlm_id, 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_2nd_hdr_ver(&TG_ctp_, record_ti->startup_counter); TSP_set_board_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); TSP_set_tlm_id(&TG_ctp_, tlm_id); // FIXME: 他の時刻も入れる From ad4549f72d17b353c49d35f434b9016ea2a60a27 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 07:23:42 +0900 Subject: [PATCH 02/11] chore: update conversion --- TlmCmd/telemetry_generator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TlmCmd/telemetry_generator.c b/TlmCmd/telemetry_generator.c index 66e0ea090..e6143205b 100644 --- a/TlmCmd/telemetry_generator.c +++ b/TlmCmd/telemetry_generator.c @@ -124,7 +124,7 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) 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_, record_ti->startup_counter); + TSP_set_2nd_hdr_ver(&TG_ctp_, (uint8_t)(record_ti->startup_counter)); // 生成したパケットを指定された回数配送処理へ渡す while (num_dumps != 0) @@ -250,7 +250,7 @@ static CCP_CmdRet TG_generate_tlm_(TLM_CODE tlm_id, 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_, record_ti->startup_counter); + TSP_set_2nd_hdr_ver(&TG_ctp_, (uint8_t)(record_ti->startup_counter)); TSP_set_board_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); TSP_set_tlm_id(&TG_ctp_, tlm_id); // FIXME: 他の時刻も入れる From 74e85b42f26e811328f02900b1996a40618ee3ef Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 07:55:02 +0900 Subject: [PATCH 03/11] chore: add include --- TlmCmd/common_cmd_packet.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TlmCmd/common_cmd_packet.h b/TlmCmd/common_cmd_packet.h index 322726479..5ce24fd53 100644 --- a/TlmCmd/common_cmd_packet.h +++ b/TlmCmd/common_cmd_packet.h @@ -35,6 +35,8 @@ typedef enum // TL_MIS を有効にするかどうか #include +#include + /** * @enum CCP_EXEC_STS * @brief コマンド実行結果コード From 829a0671b563f63ba05b990e7afa18160b2941a0 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 08:09:06 +0900 Subject: [PATCH 04/11] chore: update telemetry_generator --- TlmCmd/common_cmd_packet.h | 2 -- TlmCmd/telemetry_generator.c | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/TlmCmd/common_cmd_packet.h b/TlmCmd/common_cmd_packet.h index 5ce24fd53..322726479 100644 --- a/TlmCmd/common_cmd_packet.h +++ b/TlmCmd/common_cmd_packet.h @@ -35,8 +35,6 @@ typedef enum // TL_MIS を有効にするかどうか #include -#include - /** * @enum CCP_EXEC_STS * @brief コマンド実行結果コード diff --git a/TlmCmd/telemetry_generator.c b/TlmCmd/telemetry_generator.c index e6143205b..5a9b18b50 100644 --- a/TlmCmd/telemetry_generator.c +++ b/TlmCmd/telemetry_generator.c @@ -12,7 +12,7 @@ #include #include #include "./Ccsds/tlm_space_packet.h" // FIXME: TSP 依存性はNGなので, TCP → SP 大工事終わったら直す -#include // FIXME: RTI 依存性はNGなのでいつか直すべき +#include // FIXME: RTI 依存性はNGなのでいつか直すべき /** @@ -124,7 +124,7 @@ CCP_CmdRet Cmd_GENERATE_TLM(const CommonCmdPacket* packet) 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_, (uint8_t)(record_ti->startup_counter)); + TSP_set_2nd_hdr_ver(&TG_ctp_, (uint8_t)(mram->cdh.obc_startup_counter)); // 生成したパケットを指定された回数配送処理へ渡す while (num_dumps != 0) @@ -250,7 +250,7 @@ static CCP_CmdRet TG_generate_tlm_(TLM_CODE tlm_id, 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_, (uint8_t)(record_ti->startup_counter)); + TSP_set_2nd_hdr_ver(&TG_ctp_, (uint8_t)(mram->cdh.obc_startup_counter)); TSP_set_board_time(&TG_ctp_, (uint32_t)(TMGR_get_master_total_cycle())); TSP_set_tlm_id(&TG_ctp_, tlm_id); // FIXME: 他の時刻も入れる From 936c0ebcd0ad7338d43dd500376aba9828f08096 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 08:15:37 +0900 Subject: [PATCH 05/11] chore: update type --- TlmCmd/Ccsds/tlm_space_packet.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/TlmCmd/Ccsds/tlm_space_packet.c b/TlmCmd/Ccsds/tlm_space_packet.c index 2281dce24..21b83a333 100644 --- a/TlmCmd/Ccsds/tlm_space_packet.c +++ b/TlmCmd/Ccsds/tlm_space_packet.c @@ -132,10 +132,9 @@ TSP_2ND_HDR_VER TSP_get_2nd_hdr_ver(const TlmSpacePacket* tsp) } -void TSP_set_2nd_hdr_ver(TlmSpacePacket* tsp, TSP_2ND_HDR_VER ver) +void TSP_set_2nd_hdr_ver(TlmSpacePacket* tsp, uint8_t ver) { - uint8_t tmp = (uint8_t)ver; - SP_insert_param_to_packet(TSP_CAST_TO_NON_CONST_SP(tsp), &TSP_pei_2nd_hdr_ver_, &tmp); + SP_insert_param_to_packet(TSP_CAST_TO_NON_CONST_SP(tsp), &TSP_pei_2nd_hdr_ver_, &ver); } From b84f1ba1b07707950def46b877e96fc9cb7937a4 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 08:18:14 +0900 Subject: [PATCH 06/11] chore: update header file --- TlmCmd/Ccsds/tlm_space_packet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TlmCmd/Ccsds/tlm_space_packet.h b/TlmCmd/Ccsds/tlm_space_packet.h index a0ec014a2..0c521dbe8 100644 --- a/TlmCmd/Ccsds/tlm_space_packet.h +++ b/TlmCmd/Ccsds/tlm_space_packet.h @@ -211,7 +211,7 @@ TSP_2ND_HDR_VER TSP_get_2nd_hdr_ver(const TlmSpacePacket* tsp); * @param[in] id: TSP_2ND_HDR_VER * @return void */ -void TSP_set_2nd_hdr_ver(TlmSpacePacket* tsp, TSP_2ND_HDR_VER ver); +void TSP_set_2nd_hdr_ver(TlmSpacePacket* tsp, uint8_t ver); /** * @brief Board Time を取得 From 6731ea3202260b032611ab496b856c3f8bde4048 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 10 May 2024 08:18:36 +0900 Subject: [PATCH 07/11] chore: update comment --- TlmCmd/Ccsds/tlm_space_packet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TlmCmd/Ccsds/tlm_space_packet.h b/TlmCmd/Ccsds/tlm_space_packet.h index 0c521dbe8..9b4c825d6 100644 --- a/TlmCmd/Ccsds/tlm_space_packet.h +++ b/TlmCmd/Ccsds/tlm_space_packet.h @@ -208,7 +208,7 @@ TSP_2ND_HDR_VER TSP_get_2nd_hdr_ver(const TlmSpacePacket* tsp); /** * @brief Secondary Header Version No を設定 * @param[in,out] tsp: TlmSpacePacket - * @param[in] id: TSP_2ND_HDR_VER + * @param[in] id: uint8_t * @return void */ void TSP_set_2nd_hdr_ver(TlmSpacePacket* tsp, uint8_t ver); From ca2ef0f899801ddae1b51a681534c4a61d37e8b2 Mon Sep 17 00:00:00 2001 From: flap1 Date: Mon, 27 May 2024 02:41:53 +0900 Subject: [PATCH 08/11] feat: Add 64_t support --- TlmCmd/telemetry_frame.c | 10 ++++++++++ TlmCmd/telemetry_frame.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/TlmCmd/telemetry_frame.c b/TlmCmd/telemetry_frame.c index d1b1405b0..4e6c1f887 100644 --- a/TlmCmd/telemetry_frame.c +++ b/TlmCmd/telemetry_frame.c @@ -74,6 +74,11 @@ void TF_copy_u32(uint8_t* ptr, uint32_t data) ENDIAN_memcpy(ptr, &data, 4); } +void TF_copy_u64(uint8_t* ptr, uint64_t data) +{ + ENDIAN_memcpy(ptr, &data, 8); +} + void TF_copy_i8(uint8_t* ptr, int8_t data) { ptr[0] = (uint8_t)data; @@ -89,6 +94,11 @@ void TF_copy_i32(uint8_t* ptr, int32_t data) ENDIAN_memcpy(ptr, &data, 4); } +void TF_copy_i64(uint8_t* ptr, int64_t data) +{ + ENDIAN_memcpy(ptr, &data, 8); +} + void TF_copy_float(uint8_t* ptr, float data) { ENDIAN_memcpy(ptr, &data, sizeof(float)); diff --git a/TlmCmd/telemetry_frame.h b/TlmCmd/telemetry_frame.h index 15574901b..c44dcca2c 100644 --- a/TlmCmd/telemetry_frame.h +++ b/TlmCmd/telemetry_frame.h @@ -90,12 +90,16 @@ void TF_copy_u16(uint8_t* ptr, uint16_t data); void TF_copy_u32(uint8_t* ptr, uint32_t data); +void TF_copy_u64(uint8_t* ptr, uint64_t data); + void TF_copy_i8(uint8_t* ptr, int8_t data); void TF_copy_i16(uint8_t* ptr, int16_t data); void TF_copy_i32(uint8_t* ptr, int32_t data); +void TF_copy_i64(uint8_t* ptr, int64_t data); + void TF_copy_float(uint8_t* ptr, float data); void TF_copy_double(uint8_t* ptr, double data); From 6b42b303a77ebce3cd5a2b30a360a650e038c913 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 31 May 2024 05:16:07 +0900 Subject: [PATCH 09/11] feat: Add bc_exec_status --- Applications/timeline_command_dispatcher.c | 11 ++++++++++- Applications/timeline_command_dispatcher.h | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Applications/timeline_command_dispatcher.c b/Applications/timeline_command_dispatcher.c index 69090e42d..7929b79ca 100644 --- a/Applications/timeline_command_dispatcher.c +++ b/Applications/timeline_command_dispatcher.c @@ -9,6 +9,8 @@ static TimelineCommandDispatcher timeline_command_dispatcher_; const TimelineCommandDispatcher* const timeline_command_dispatcher = &timeline_command_dispatcher_; +static BCExecStatus bc_exec_status_; +const BCExecStatus* const bc_exec_status = &bc_exec_status_; static CommonCmdPacket TLCD_null_packet_; static void TLCD_gs_init_(void); @@ -247,6 +249,7 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) { TLCD_ID id = (TLCD_ID)CCP_get_param_from_packet(packet, 0, uint8_t); bct_id_t block_no = CCP_get_param_from_packet(packet, 1, bct_id_t); + cycle_t exec_time = TMGR_get_master_total_cycle(); PL_ACK ack; if (CCP_get_param_len(packet) != (1 + SIZE_OF_BCT_ID_T)) @@ -268,7 +271,7 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_PARAMETER); } - ack = PL_deploy_block_cmd(&(PH_tl_cmd_list[id]), block_no, TMGR_get_master_total_cycle()); + ack = PL_deploy_block_cmd(&(PH_tl_cmd_list[id]), block_no, exec_time); if (ack == PL_BC_LIST_CLEARED) { @@ -286,6 +289,9 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) (uint32_t)( ((0x000000ff & id) << 24) | (0x00ffffff & block_no) )); if (ack == PL_BC_TIME_ADJUSTED) { + bc_exec_status_.last_exec_block_type = id; + bc_exec_status_.last_exec_block = block_no; + bc_exec_status_.last_exec_time = exec_time; return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } else @@ -294,6 +300,9 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) } } + bc_exec_status_.last_exec_block_type = id; + bc_exec_status_.last_exec_block = block_no; + bc_exec_status_.last_exec_time = exec_time; return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } diff --git a/Applications/timeline_command_dispatcher.h b/Applications/timeline_command_dispatcher.h index 07c808d7a..26658e4a8 100644 --- a/Applications/timeline_command_dispatcher.h +++ b/Applications/timeline_command_dispatcher.h @@ -23,8 +23,15 @@ typedef struct } tlm_info_; } TimelineCommandDispatcher; -extern const TimelineCommandDispatcher* const timeline_command_dispatcher; +typedef struct { + TLCD_ID last_exec_block_type; + bct_id_t last_exec_block; + cycle_t last_exec_time; +} BCExecStatus; + +extern const TimelineCommandDispatcher* const timeline_command_dispatcher; +extern const BCExecStatus* const bc_exec_status; /** * @brief TL0 (GS から登録されるバス用の Timeline) の実行 App を作成する * @param void From 1dbfe6aca11865248c6c655411e9b2497bbb2a17 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 31 May 2024 05:30:51 +0900 Subject: [PATCH 10/11] imprv: not record deploy_tlm --- Applications/timeline_command_dispatcher.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Applications/timeline_command_dispatcher.c b/Applications/timeline_command_dispatcher.c index 7929b79ca..f5d5c6195 100644 --- a/Applications/timeline_command_dispatcher.c +++ b/Applications/timeline_command_dispatcher.c @@ -289,9 +289,12 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) (uint32_t)( ((0x000000ff & id) << 24) | (0x00ffffff & block_no) )); if (ack == PL_BC_TIME_ADJUSTED) { - bc_exec_status_.last_exec_block_type = id; - bc_exec_status_.last_exec_block = block_no; - bc_exec_status_.last_exec_time = exec_time; + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_exec_block_type = id; + bc_exec_status_.last_exec_block = block_no; + bc_exec_status_.last_exec_time = exec_time; + } return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } else @@ -300,9 +303,12 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) } } - bc_exec_status_.last_exec_block_type = id; - bc_exec_status_.last_exec_block = block_no; - bc_exec_status_.last_exec_time = exec_time; + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_exec_block_type = id; + bc_exec_status_.last_exec_block = block_no; + bc_exec_status_.last_exec_time = exec_time; + } return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } From 73edd41262cb4a81de811ad07f3c7b1ea6ed5bd5 Mon Sep 17 00:00:00 2001 From: flap1 Date: Fri, 31 May 2024 08:30:38 +0900 Subject: [PATCH 11/11] imprv: Add err bc --- Applications/timeline_command_dispatcher.c | 47 ++++++++++++++++++++++ Applications/timeline_command_dispatcher.h | 6 +++ 2 files changed, 53 insertions(+) diff --git a/Applications/timeline_command_dispatcher.c b/Applications/timeline_command_dispatcher.c index f5d5c6195..4368f1708 100644 --- a/Applications/timeline_command_dispatcher.c +++ b/Applications/timeline_command_dispatcher.c @@ -55,6 +55,15 @@ static void TLCD_gs_init_(void) timeline_command_dispatcher_.tlm_info_.page_no = 0; timeline_command_dispatcher_.tlm_info_.updated_at = 0; + bc_exec_status_.last_exec_block_type = TLCD_ID_MAX; + bc_exec_status_.last_exec_block = 0; + bc_exec_status_.last_exec_time = 0; + bc_exec_status_.last_exec_status = CCP_EXEC_SUCCESS; + bc_exec_status_.last_err_block_type = TLCD_ID_MAX; + bc_exec_status_.last_err_block = 0; + bc_exec_status_.last_err_time = 0; + bc_exec_status_.last_err_status = CCP_EXEC_SUCCESS; + memset(&TLCD_null_packet_, 0, sizeof(TLCD_null_packet_)); TLCD_update_tl_list_for_tlm(TLCD_ID_FROM_GS); } @@ -256,18 +265,40 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) { // パラメータはTLライン番号(1Byte)とブロック番号。 // 一致しない場合は異常判定。 + + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_err_block_type = id; + bc_exec_status_.last_err_block = block_no; + bc_exec_status_.last_err_time = exec_time; + bc_exec_status_.last_err_status = CCP_EXEC_ILLEGAL_LENGTH; + } return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_LENGTH); } if (id >= TLCD_ID_MAX) { // 指定されたライン番号が存在しない場合は異常判定 + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_err_block_type = id; + bc_exec_status_.last_err_block = block_no; + bc_exec_status_.last_err_time = exec_time; + bc_exec_status_.last_err_status = CCP_EXEC_ILLEGAL_PARAMETER; + } return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_PARAMETER); } if (block_no >= BCT_MAX_BLOCKS) { // 指定されたブロック番号が存在しない場合は異常判定 + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_err_block_type = id; + bc_exec_status_.last_err_block = block_no; + bc_exec_status_.last_err_time = exec_time; + bc_exec_status_.last_err_status = CCP_EXEC_ILLEGAL_PARAMETER; + } return CCP_make_cmd_ret_without_err_code(CCP_EXEC_ILLEGAL_PARAMETER); } @@ -279,6 +310,13 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) (uint32_t)PL_BC_LIST_CLEARED, EL_ERROR_LEVEL_HIGH, (uint32_t)( ((0x000000ff & id) << 24) | (0x00ffffff & block_no) )); + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_exec_block_type = id; + bc_exec_status_.last_exec_block = block_no; + bc_exec_status_.last_exec_time = exec_time; + bc_exec_status_.last_exec_status = CCP_EXEC_ILLEGAL_CONTEXT; + } return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); } else if (ack != PL_SUCCESS) @@ -294,11 +332,19 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) bc_exec_status_.last_exec_block_type = id; bc_exec_status_.last_exec_block = block_no; bc_exec_status_.last_exec_time = exec_time; + bc_exec_status_.last_exec_status = CCP_EXEC_SUCCESS; } return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } else { + if (id != TLCD_ID_DEPLOY_TLM) + { + bc_exec_status_.last_err_block_type = id; + bc_exec_status_.last_err_block = block_no; + bc_exec_status_.last_err_time = exec_time; + bc_exec_status_.last_err_status = CCP_EXEC_ILLEGAL_CONTEXT; + } return CCP_make_cmd_ret(CCP_EXEC_ILLEGAL_CONTEXT, (uint32_t)ack); } } @@ -308,6 +354,7 @@ CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket* packet) bc_exec_status_.last_exec_block_type = id; bc_exec_status_.last_exec_block = block_no; bc_exec_status_.last_exec_time = exec_time; + bc_exec_status_.last_exec_status = CCP_EXEC_SUCCESS; } return CCP_make_cmd_ret(CCP_EXEC_SUCCESS, (uint32_t)ack); } diff --git a/Applications/timeline_command_dispatcher.h b/Applications/timeline_command_dispatcher.h index 26658e4a8..64d8ec3bb 100644 --- a/Applications/timeline_command_dispatcher.h +++ b/Applications/timeline_command_dispatcher.h @@ -28,6 +28,12 @@ typedef struct { TLCD_ID last_exec_block_type; bct_id_t last_exec_block; cycle_t last_exec_time; + CCP_EXEC_STS last_exec_status; + TLCD_ID last_err_block_type; + bct_id_t last_err_block; + cycle_t last_err_time; + CCP_EXEC_STS last_err_status; + } BCExecStatus; extern const TimelineCommandDispatcher* const timeline_command_dispatcher;