10 #include "../TimeManager/time_manager.h"
11 #include "../TaskManager/task_dispatcher.h"
12 #include "../EventManager/event_logger.h"
13 #include "../../TlmCmd/block_command_executor.h"
14 #include "../../TlmCmd/common_cmd_packet_util.h"
16 #include "../../TlmCmd/packet_handler.h"
17 #include "../../Applications/timeline_command_dispatcher_id_define.h"
18 #include "../../Library/endian.h"
139 unsigned char from, to;
uint8_t BCE_is_active(const bct_id_t block)
BCT の length の getter
#define SIZE_OF_BCT_ID_T
bct_id_t の型サイズ.メモリインパクトがそれなりにあるので,可変に
@ CCP_EXEC_ILLEGAL_LENGTH
コマンド実行時のコマンド引数長エラー
@ CCP_EXEC_ILLEGAL_CONTEXT
コマンド実行時のその他のエラー
uint16_t CCP_get_param_len(const CommonCmdPacket *packet)
CMD パラメタ長を取得
const uint8_t * CCP_get_param_head(const CommonCmdPacket *packet)
先頭のパラメタのポインタを取得
CCP_CmdRet CCP_form_and_exec_block_deploy_cmd(TLCD_ID tl_no, bct_id_t block_no)
BC展開 command を生成し,即時実行する
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
void * ENDIAN_memcpy(void *dest, const void *src, size_t size)
エンディアンを考慮した memcpy
EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note)
イベント (EL_Event) を記録
@ EL_CORE_GROUP_MODE_MANAGER
EL_GROUP
event_logger の Event Group の user 定義部分
void MD_load_transition_table(void)
void MD_load_mode_list(void)
CCP_CmdRet Cmd_MM_SET_MODE_LIST(const CommonCmdPacket *packet)
モード遷移後にタスクリストとして実行するブロックコマンドを設定するコマンド
CCP_CmdRet Cmd_MM_FINISH_TRANSITION(const CommonCmdPacket *packet)
モード遷移終了を示すコマンド モード遷移のブロックコマンドの最後に入れて使う 入っていない場合、タスクリストが遷移先のモードに置き換わらないので注意
CCP_CmdRet Cmd_MM_UPDATE_TRANSITION_TABLE_FOR_TLM(const CommonCmdPacket *packet)
static MM_ACK MM_finish_transition_(void)
Cmd_MM_FINISH_TRANSITIONの実体
MM_ACK MM_set_mode_list(MD_MODEID mode, bct_id_t bc_index)
Cmd_MM_SET_MODE_LISTの実体
static void MM_deploy_block_cmd_(bct_id_t index)
(モード遷移に対応する)ブロックコマンドのタイムラインへの展開を行う
CCP_CmdRet Cmd_MM_START_TRANSITION(const CommonCmdPacket *packet)
モード遷移を開始するコマンド
const ModeManager *const mode_manager
static void MM_clear_transition_table_(void)
モード遷移テーブルをすべて未定義に初期化する
void MM_initialize(void)
モード遷移を管理する ModeManager 構造体 (mode_manager_) の初期化
static ModeManager mode_manager_
CCP_CmdRet Cmd_MM_SET_TRANSITION_TABLE(const CommonCmdPacket *packet)
モード遷移時に実行するブロックコマンドを設定するコマンド
MM_ACK MM_set_transition_table(MD_MODEID from, MD_MODEID to, bct_id_t bc_index)
Cmd_MM_SET_TRANSITION_TABLEの実体
static MM_ACK MM_start_transition_(MD_MODEID id)
Cmd_MM_START_TRANSITIONの実体
uint16_t MM_update_transition_table_for_tlm(void)
TLM 用情報の生成
bct_id_t MM_get_tasklist_id_of_mode(MD_MODEID mode)
mode に対応した TL の BCT ID を取得する
@ MM_STATUS_FINISHED
モード遷移終了
@ MM_STATUS_IN_PROGRESS
モード遷移実行中
MM_ACK
ModeManager 関連関数の返り値
@ MM_TL_LOAD_FAILED
Task List へのモード BC 登録失敗
@ MM_BAD_BC_INDEX
モード用の BC の ID 異常
@ MM_INACTIVE_BLOCK
モード用 BC が 無効
@ MM_NOT_IN_PROGRESS
モード遷移中ではない
@ MM_ILLEGAL_MOVE
モード遷移用の BC が存在しない
bct_id_t bc_index
モード遷移に該当する bc id
MM_TransitionEdge transition_table_for_tlm[MD_MODEID_MODE_MAX *MD_MODEID_MODE_MAX]
テレメ用のテーブル
MD_MODEID current_id
現在のモードID
bct_id_t transition_table[MD_MODEID_MODE_MAX][MD_MODEID_MODE_MAX]
各モード遷移(あるモードIDからあるモードIDへの遷移)に対応するブロックコマンドを保存する
bct_id_t mode_list[MD_MODEID_MODE_MAX]
各モードIDに対応するブロックコマンドIDを保存する
MD_MODEID previous_id
ひとつ前のモードID
TDSP_ACK TDSP_set_task_list_id(bct_id_t id)
指定した BC を TaskList に展開するものとして登録
void TMGR_clear_master_mode_cycle(void)
master_clock_ の mode_cycle をゼロにする