C2A_Core
mode_manager.h
[詳解]
1 
5 #ifndef MODE_MANAGER_H_
6 #define MODE_MANAGER_H_
7 
8 #include "../TimeManager/obc_time.h"
10 #include "../../TlmCmd/common_cmd_packet.h"
11 #include "../../TlmCmd/block_command_table.h"
12 
13 #define MM_NOT_DEFINED (BCT_MAX_BLOCKS)
14 
16 
22 typedef enum
23 {
33 
39 typedef enum
40 {
44 
50 typedef struct
51 {
52  uint8_t from;
53  uint8_t to;
56 
61 typedef struct
62 {
69 
71 } ModeManager;
72 
73 extern const ModeManager* const mode_manager;
74 
80 void MM_initialize(void);
81 
89 
97 
106 
114 
120 
121 #endif
uint16_t bct_id_t
モード定義とモード遷移定義
MD_MODEID
@ MD_MODEID_MODE_MAX
MM_STATUS
モード遷移状態
Definition: mode_manager.h:40
@ MM_STATUS_FINISHED
モード遷移終了
Definition: mode_manager.h:41
@ MM_STATUS_IN_PROGRESS
モード遷移実行中
Definition: mode_manager.h:42
CCP_CmdRet Cmd_MM_SET_MODE_LIST(const CommonCmdPacket *packet)
モード遷移後にタスクリストとして実行するブロックコマンドを設定するコマンド
Definition: mode_manager.c:85
CCP_CmdRet Cmd_MM_FINISH_TRANSITION(const CommonCmdPacket *packet)
モード遷移終了を示すコマンド モード遷移のブロックコマンドの最後に入れて使う 入っていない場合、タスクリストが遷移先のモードに置き換わらないので注意
Definition: mode_manager.c:251
CCP_CmdRet Cmd_MM_UPDATE_TRANSITION_TABLE_FOR_TLM(const CommonCmdPacket *packet)
Definition: mode_manager.c:299
MM_ACK MM_set_mode_list(MD_MODEID mode, bct_id_t bc_index)
Cmd_MM_SET_MODE_LISTの実体
Definition: mode_manager.c:109
CCP_CmdRet Cmd_MM_START_TRANSITION(const CommonCmdPacket *packet)
モード遷移を開始するコマンド
Definition: mode_manager.c:192
const ModeManager *const mode_manager
Definition: mode_manager.c:48
MM_ACK
ModeManager 関連関数の返り値
Definition: mode_manager.h:23
@ MM_TL_LOAD_FAILED
Task List へのモード BC 登録失敗
Definition: mode_manager.h:31
@ MM_BAD_BC_INDEX
モード用の BC の ID 異常
Definition: mode_manager.h:26
@ MM_INACTIVE_BLOCK
モード用 BC が 無効
Definition: mode_manager.h:27
@ MM_NOT_IN_PROGRESS
モード遷移中ではない
Definition: mode_manager.h:30
@ MM_OVERWRITE
別のモード遷移実行中
Definition: mode_manager.h:28
@ MM_SUCCESS
成功
Definition: mode_manager.h:24
@ MM_BAD_ID
モード番号異常
Definition: mode_manager.h:25
@ MM_ILLEGAL_MOVE
モード遷移用の BC が存在しない
Definition: mode_manager.h:29
void MM_initialize(void)
モード遷移を管理する ModeManager 構造体 (mode_manager_) の初期化
Definition: mode_manager.c:50
CCP_CmdRet Cmd_MM_SET_TRANSITION_TABLE(const CommonCmdPacket *packet)
モード遷移時に実行するブロックコマンドを設定するコマンド
Definition: mode_manager.c:137
MM_ACK MM_set_transition_table(MD_MODEID from, MD_MODEID to, bct_id_t bc_index)
Cmd_MM_SET_TRANSITION_TABLEの実体
Definition: mode_manager.c:162
uint16_t MM_update_transition_table_for_tlm(void)
TLM 用情報の生成
Definition: mode_manager.c:307
bct_id_t MM_get_tasklist_id_of_mode(MD_MODEID mode)
mode に対応した TL の BCT ID を取得する
Definition: mode_manager.c:330
ModeMangaer のパラメーターオーバーライト
コマンド返り値
Space Packet (コマンド用)
MM TLM 用の構造体
Definition: mode_manager.h:51
uint8_t to
モード遷移先
Definition: mode_manager.h:53
uint8_t from
モード遷移元
Definition: mode_manager.h:52
bct_id_t bc_index
モード遷移に該当する bc id
Definition: mode_manager.h:54
ModeManager 本体
Definition: mode_manager.h:62
MD_MODEID current_id
現在のモードID
Definition: mode_manager.h:67
MD_MODEID previous_id
ひとつ前のモードID
Definition: mode_manager.h:66
MM_STATUS stat
モード遷移状態
Definition: mode_manager.h:65
MM_ACK mm_ack
エラー情報保存用
Definition: mode_manager.h:68