Skip to content

Commit

Permalink
imprv: Add err bc
Browse files Browse the repository at this point in the history
  • Loading branch information
flap1 committed May 30, 2024
1 parent 1dbfe6a commit 73edd41
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
47 changes: 47 additions & 0 deletions Applications/timeline_command_dispatcher.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
}

Expand All @@ -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)
Expand All @@ -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);
}
}
Expand All @@ -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);
}
Expand Down
6 changes: 6 additions & 0 deletions Applications/timeline_command_dispatcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 73edd41

Please sign in to comment.