C2A_Core
|
task list に設定されたタスクを実行する主体 [詳解]
#include "task_dispatcher.h"
#include <stdlib.h>
#include <string.h>
#include "../../TlmCmd/packet_list_util.h"
#include "../../TlmCmd/block_command_executor.h"
#include "../../TlmCmd/common_cmd_packet_util.h"
#include "../ModeManager/mode_manager.h"
#include "../TimeManager/time_manager.h"
#include "../TimeManager/obc_time_config.h"
#include "../EventManager/event_logger.h"
#include <src_user/TlmCmd/block_command_definitions.h>
#include <src_user/TlmCmd/command_definitions.h>
マクロ定義 | |
#define | TDSP_TASK_MAX BCT_MAX_CMD_NUM |
関数 | |
static void | TDSP_deploy_block_as_task_list_ (void) |
task_dispatcher_.task_list_id に登録された BC を TaskListに展開. [詳解] | |
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) |
指定したブロックコマンドを、次にタスクリストに展開するものとして登録するコマンド [詳解] | |
変数 | |
static TaskDsipatcher | task_dispatcher_ |
const TaskDsipatcher *const | task_dispatcher = &task_dispatcher_ |
static PacketList | TDSP_task_list_ |
task list に設定されたタスクを実行する主体
task_dispatcher.c に定義があります。
#define TDSP_TASK_MAX BCT_MAX_CMD_NUM |
task_dispatcher.c の 23 行目に定義があります。
CCP_CmdRet Cmd_TDSP_SET_TASK_LIST | ( | const CommonCmdPacket * | packet | ) |
|
static |
task_dispatcher_.task_list_id
に登録された BC を TaskListに展開.
PL_ACK PL_deploy_block_cmd(args)
task_dispatcher.c の 73 行目に定義があります。
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 行目に定義があります。
const TaskDsipatcher* const task_dispatcher = &task_dispatcher_ |
task_dispatcher.c の 26 行目に定義があります。
|
static |
task_dispatcher.c の 25 行目に定義があります。
|
static |
task_dispatcher.c の 29 行目に定義があります。