C2A_Core
|
task list に設定されたタスクを実行する主体 [詳解]
#include "../../TlmCmd/block_command_table.h"
#include "../../TlmCmd/command_dispatcher.h"
#include "../ApplicationManager/app_info.h"
データ構造 | |
struct | TaskDsipatcher |
TaskDispatcherの状態 [詳解] | |
列挙型 | |
enum | TDSP_ACK { TDSP_SUCCESS , TDSP_DEPLOY_FAILED , TDSP_CYCLE_OVERRUN , TDSP_STEP_OVERRUN , TDSP_TASK_EXEC_FAILED , TDSP_INVAILD_BCT_ID , TDSP_INACTIVE_BCT_ID , TDSP_EMPTY_BC , TDSP_UNKNOWN } |
TDSPのエラーステータス [詳解] | |
関数 | |
void | TDSP_initialize (void) |
タスク管理を行うTaskDsipatcher構造体(TaskDsipatcher_)の初期化 [詳解] | |
TDSP_ACK | TDSP_set_task_list_id (bct_id_t id) |
指定した BC を TaskList に展開するものとして登録 [詳解] | |
void | TDSP_execute_pl_as_task_list (void) |
現在時刻に応じて、TaskList から Cmd を一つ実行する or TaskList を再展開する [詳解] | |
void | TDSP_resync_internal_counter (void) |
タスクリストの展開時サイクル数を現在のサイクル数に強制的に合わせる [詳解] | |
CCP_CmdRet | Cmd_TDSP_SET_TASK_LIST (const CommonCmdPacket *packet) |
指定したブロックコマンドを、次にタスクリストに展開するものとして登録するコマンド [詳解] | |
変数 | |
const TaskDsipatcher *const | task_dispatcher |
task list に設定されたタスクを実行する主体
task_dispatcher.h に定義があります。
enum TDSP_ACK |
TDSPのエラーステータス
task_dispatcher.h の 30 行目に定義があります。
CCP_CmdRet Cmd_TDSP_SET_TASK_LIST | ( | const CommonCmdPacket * | packet | ) |
void TDSP_execute_pl_as_task_list | ( | void | ) |
現在時刻に応じて、TaskList から Cmd を一つ実行する or TaskList を再展開する
展開されているタスクリストの実行時刻 (cycle レベル) を比較し, task_list_ に登録されているタスクを順番に実行する. 1つタスクを消化すると return する. (while(1) で回っているのですぐ戻ってくる.) 実行 cycle が現在だった場合, 各タスクの step によって実行する, しないを switch に合わせて処理する. 実際にタスクを処理する場合, CDIS_dispatch_command -> PH_dispatch_command -> CA_execute_cmd の順に実行される(真の Executer は CA_execute_cmd).
task_dispatcher.c の 93 行目に定義があります。
void TDSP_initialize | ( | void | ) |
タスク管理を行うTaskDsipatcher構造体(TaskDsipatcher_)の初期化
task_dispatcher.c の 48 行目に定義があります。
void TDSP_resync_internal_counter | ( | void | ) |
指定した BC を TaskList に展開するものとして登録
[in] | id | BC の id |
src_user\Settings\Modes\TaskLists\tl_initial.c
などを参照. task_dispatcher.c の 62 行目に定義があります。
|
extern |
task_dispatcher.c の 26 行目に定義があります。