15 #include "../TlmCmd/packet_handler.h"
16 #include "../TlmCmd/common_cmd_packet_util.h"
17 #include "../System/TimeManager/time_manager.h"
18 #include "../System/EventManager/event_logger.h"
144 for (i = sort_key; i > 0; --i)
AppInfo AI_create_app_info(const char *name, void(*initializer)(void), void(*entry_point)(void))
AppInfo を作る
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
CCP_UTIL_ACK CCP_form_rtc(CommonCmdPacket *packet, CMD_CODE cmd_id, const uint8_t *param, uint16_t len)
Realtime command を生成
CCP_UTIL_ACK
CCP Utility の汎用返り値
#define CCP_get_param_from_packet(packet, n, type)
CCP packet から,n番目のコマンド引数を取得する
void DCU_abort_cmd(CMD_CODE cmd_code)
実行中の分割コマンドを外部から強制的に中断させる
static void DCU_move_to_front_in_log_(CMD_CODE cmd_code)
該当コマンドのログを,ログの先頭に出す
static void DCU_clear_log_(void)
ログクリア
void DCU_report_err(CMD_CODE cmd_code, CCP_EXEC_STS last_exec_sts)
DCUに,途中でエラーが発生したことを伝える
CCP_CmdRet Cmd_DCU_ABORT_CMD(const CommonCmdPacket *packet)
実行中の分割コマンドを停止する
static DCU_LOG_ACK DCU_search_log_(CMD_CODE cmd_code, uint8_t *log_idx, uint8_t *sort_key)
該当コマンドのログを検索し取得する
CCP_CmdRet Cmd_DCU_CLEAR_LOG(const CommonCmdPacket *packet)
ログをクリアする
static CommonCmdPacket DCU_packet_
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)
static DividedCmdUtility divided_cmd_utility_
void DCU_donw_abort_flag(CMD_CODE cmd_code)
エラー,またはコマンドによって中断ステータスとなっているコマンドを,実行可能状態に戻す
static void DCU_create_log_on_front_(CMD_CODE cmd_code)
先頭に該当コマンドのログをつくる
DCU_STATUS DCU_check_in(CMD_CODE cmd_code, uint16_t *exec_counter)
DCUにチェックインする.分割コマンド実行時,最初に呼び出す関数.
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に,分割コマンドが実行終了したことを伝える
static void DCU_clear_log_element_(uint8_t log_idx, CMD_CODE cmd_code)
ログクリア(1要素)
static void DCU_init_(void)
App初期化関数
#define DCU_LOG_MAX
保存するログの最大数
@ DCU_LOG_ACK_NOT_FOUND
指定ログが見つからず
@ DCU_STATUS_ABORTED_BY_ERR
エラーにより中断
@ DCU_STATUS_ABORTED_BY_CMD
コマンドにより中断
@ DCU_STATUS_FINISHED
実行終了 or 未実行
EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note)
イベント (EL_Event) を記録
EL_GROUP
event_logger の Event Group の user 定義部分
ObcTime OBCT_create(cycle_t total_cycle, cycle_t mode_cycle, step_t step)
引数から ObcTime を作成する
PH_ACK PH_analyze_cmd_packet(const CommonCmdPacket *packet)
CCP を解析する
ObcTime last_exec_time
最終実行時刻
CCP_EXEC_STS last_exec_sts
最終実行結果
uint16_t exec_counter
実行カウンタ.何度目の実行か?
DividedCmdUtility の AppInfo 構造体
DCU_ExecStatus exec_logs[DCU_LOG_MAX]
実行ログ.[exec_log_order[0]] が最も新しい.古いものは捨てられていく.
uint8_t exec_log_order[DCU_LOG_MAX]
実行ログのソートキー. exec_logs を最新順に並べ替えるために使う.
ObcTime TMGR_get_master_clock(void)
現在の master_clock_ を取得する