C2A_Core
task_dispatcher.h
[詳解]
1 
7 #ifndef TASK_DISPATCHER_H_
8 #define TASK_DISPATCHER_H_
9 
10 #include "../../TlmCmd/block_command_table.h"
11 #include "../../TlmCmd/command_dispatcher.h"
12 #include "../ApplicationManager/app_info.h"
13 
18 typedef struct
19 {
24 
30 typedef enum
31 {
42 
43 extern const TaskDsipatcher* const task_dispatcher;
44 
49 void TDSP_initialize(void);
50 
58 
68 
73 
78 
79 // debug_apps にあるべき & 今はつわかないので無効化
80 #if 0
81 AppInfo TDSP_print_tdsp_status(void);
82 #endif
83 
84 #endif
uint16_t bct_id_t
uint32_t cycle_t
Definition: obc_time.h:10
コマンド返り値
Space Packet (コマンド用)
CommandDispatcher の Info 構造体
TaskDispatcherの状態
bct_id_t task_list_id
タスクリストに展開するブロックコマンドのID
CommandDispatcher tskd
タスクリストへのポインタと、その他実行情報を保存する構造体
cycle_t activated_at
ブロックコマンドがタスクリストに展開された時のサイクル数
TDSP_ACK
TDSPのエラーステータス
@ TDSP_STEP_OVERRUN
コマンドが実行予定のステップ数を過ぎている
@ TDSP_DEPLOY_FAILED
ブロックコマンドのタスクリストへの展開時にエラーが発生
@ TDSP_TASK_EXEC_FAILED
コマンド実行時にエラーが発生
@ TDSP_UNKNOWN
@ TDSP_CYCLE_OVERRUN
1サイクル以内にすべてのコマンドを実行し終えなかった
@ TDSP_SUCCESS
@ TDSP_INVAILD_BCT_ID
実行する BCT_ID が無効だった
@ TDSP_INACTIVE_BCT_ID
実行する BCT_ID が無効化されている
@ TDSP_EMPTY_BC
実行する BC が空だった
void TDSP_resync_internal_counter(void)
タスクリストの展開時サイクル数を現在のサイクル数に強制的に合わせる
void TDSP_initialize(void)
タスク管理を行うTaskDsipatcher構造体(TaskDsipatcher_)の初期化
void TDSP_execute_pl_as_task_list(void)
現在時刻に応じて、TaskList から Cmd を一つ実行する or TaskList を再展開する
TDSP_ACK TDSP_set_task_list_id(bct_id_t id)
指定した BC を TaskList に展開するものとして登録
const TaskDsipatcher *const task_dispatcher
CCP_CmdRet Cmd_TDSP_SET_TASK_LIST(const CommonCmdPacket *packet)
指定したブロックコマンドを、次にタスクリストに展開するものとして登録するコマンド