C2A_Core
divided_cmd_utility.h
[詳解]
1 
13 #ifndef DIVIDED_CMD_UTILITY_H_
14 #define DIVIDED_CMD_UTILITY_H_
15 
16 #include "../System/ApplicationManager/app_info.h"
17 #include "../TlmCmd/common_cmd_packet.h"
18 #include "../System/TimeManager/obc_time.h"
20 
21 #define DCU_LOG_MAX (16)
22 
24 
25 // key が uint8_t なので,それ以下を要請する
26 #if DCU_LOG_MAX > 255
27 #error "err at divided_cmd_utility"
28 #endif
29 
35 typedef enum
36 {
37  DCU_ACK_OK = 0,
40 
41 
47 typedef enum
48 {
54 
55 
61 typedef enum
62 {
66 
67 
72 typedef struct
73 {
76  uint16_t exec_counter;
80 
81 
86 typedef struct
87 {
89  uint8_t exec_log_order[DCU_LOG_MAX];
91 
92 extern const DividedCmdUtility* const divided_cmd_utility;
93 
95 
96 
106 DCU_STATUS DCU_check_in(CMD_CODE cmd_code, uint16_t* exec_counter);
107 
115 DCU_ACK DCU_register_next(CMD_CODE cmd_code, const uint8_t* param, uint16_t len);
116 
123 void DCU_report_finish(CMD_CODE cmd_code, CCP_EXEC_STS last_exec_sts);
124 
132 void DCU_report_err(CMD_CODE cmd_code, CCP_EXEC_STS last_exec_sts);
133 
139 void DCU_donw_abort_flag(CMD_CODE cmd_code);
140 
148 void DCU_abort_cmd(CMD_CODE cmd_code);
149 
158 DCU_LOG_ACK DCU_search_and_get_log(CMD_CODE cmd_code, const DCU_ExecStatus* exec_log);
159 
165 
171 
176 
177 #endif
コマンド定義
CCP_EXEC_STS
コマンド実行結果コード
void DCU_abort_cmd(CMD_CODE cmd_code)
実行中の分割コマンドを外部から強制的に中断させる
#define DCU_LOG_MAX
保存するログの最大数
void DCU_report_err(CMD_CODE cmd_code, CCP_EXEC_STS last_exec_sts)
DCUに,途中でエラーが発生したことを伝える
CCP_CmdRet Cmd_DCU_ABORT_CMD(const CommonCmdPacket *packet)
実行中の分割コマンドを停止する
CCP_CmdRet Cmd_DCU_CLEAR_LOG(const CommonCmdPacket *packet)
ログをクリアする
DCU_LOG_ACK
ログ操作の返り値
@ DCU_LOG_ACK_NOT_FOUND
指定ログが見つからず
@ DCU_LOG_ACK_OK
正常終了
DCU_ACK
汎用返り値
@ DCU_ACK_OK
正常終了
@ DCU_ACK_ERR
エラー
DCU_ACK DCU_register_next(CMD_CODE cmd_code, const uint8_t *param, uint16_t len)
次の分割の実行を登録
const DividedCmdUtility *const divided_cmd_utility
AppInfo DCU_create_app(void)
void DCU_donw_abort_flag(CMD_CODE cmd_code)
エラー,またはコマンドによって中断ステータスとなっているコマンドを,実行可能状態に戻す
DCU_STATUS DCU_check_in(CMD_CODE cmd_code, uint16_t *exec_counter)
DCUにチェックインする.分割コマンド実行時,最初に呼び出す関数.
DCU_STATUS
実行状況
@ DCU_STATUS_ABORTED_BY_ERR
エラーにより中断
@ DCU_STATUS_PROGRESS
実行中
@ DCU_STATUS_ABORTED_BY_CMD
コマンドにより中断
@ DCU_STATUS_FINISHED
実行終了 or 未実行
DCU_LOG_ACK DCU_search_and_get_log(CMD_CODE cmd_code, const DCU_ExecStatus *exec_log)
ログを探して,指定したコマンドログを取得する
CCP_CmdRet Cmd_DCU_DOWN_ABORT_FLAG(const CommonCmdPacket *packet)
エラー,またはコマンドによって中断ステータスとなっているコマンドを,実行可能状態に戻す
void DCU_report_finish(CMD_CODE cmd_code, CCP_EXEC_STS last_exec_sts)
DCUに,分割コマンドが実行終了したことを伝える
DCU の CoreApp パラメタのオーバーライド用ヘッダー
コマンド返り値
Space Packet (コマンド用)
CMD_CODE cmd_code
実行コマンド
ObcTime last_exec_time
最終実行時刻
CCP_EXEC_STS last_exec_sts
最終実行結果
uint16_t exec_counter
実行カウンタ.何度目の実行か?
DCU_STATUS status
実行状況
DividedCmdUtility の AppInfo 構造体
OBCの時刻情報を保持する構造体
Definition: obc_time.h:18