3 #include "../TlmCmd/packet_handler.h"
4 #include "../System/TimeManager/time_manager.h"
5 #include "../System/EventManager/event_logger.h"
6 #include "../TlmCmd/common_cmd_packet_util.h"
20 #ifdef TLCD_ENABLE_MISSION_TL
21 static void TLCD_mis_init_(
void);
22 static void TLCD_mis_dispatch_(
void);
95 #ifdef TLCD_ENABLE_MISSION_TL
96 AppInfo TLCD_mis_create_app(
void)
101 static void TLCD_mis_init_(
void)
106 static void TLCD_mis_dispatch_(
void)
176 for (i = 0; pos != NULL; ++i)
230 for (i = 0; i < active_nodes_num; ++i)
240 current = current->
next;
278 (uint32_t)( ((0x000000ff &
id) << 24) | (0x00ffffff & block_no) ));
286 (uint32_t)( ((0x000000ff &
id) << 24) | (0x00ffffff & block_no) ));
326 if ((flag != 0) && (flag != 1))
348 if ((flag != 0) && (flag != 1))
AppInfo AI_create_app_info(const char *name, void(*initializer)(void), void(*entry_point)(void))
AppInfo を作る
#define SIZE_OF_BCT_ID_T
bct_id_t の型サイズ.メモリインパクトがそれなりにあるので,可変に
#define BCT_MAX_BLOCKS
BCのIDの最大数
void CDIS_clear_command_list(CommandDispatcher *cdis)
CDIS に登録されているコマンドキューからコマンドを削除
CommandDispatcher CDIS_init(PacketList *pl)
CDIS の初期化と取得
void CDIS_dispatch_command(CommandDispatcher *cdis)
CDIS に登録されているコマンドキューからコマンドを実行
void CDIS_clear_error_status(CommandDispatcher *cdis)
CDIS に登録されているコマンドキューのコマンド実行エラー情報を削除
@ CCP_EXEC_ILLEGAL_LENGTH
コマンド実行時のコマンド引数長エラー
@ CCP_EXEC_ILLEGAL_PARAMETER
コマンド実行時のパラメタエラー
@ CCP_EXEC_ILLEGAL_CONTEXT
コマンド実行時のその他のエラー
uint16_t CCP_get_param_len(const CommonCmdPacket *packet)
CMD パラメタ長を取得
cycle_t CCP_get_ti(const CommonCmdPacket *packet)
TI を取得
CCP_CmdRet CCP_make_cmd_ret(CCP_EXEC_STS exec_sts, uint32_t err_code)
コマンド返り値である CCP_CmdRet を作成
CCP_CmdRet CCP_make_cmd_ret_without_err_code(CCP_EXEC_STS exec_sts)
コマンド返り値である CCP_CmdRet を作成(エラーコード不使用版)
#define CCP_get_param_from_packet(packet, n, type)
CCP packet から,n番目のコマンド引数を取得する
EL_ACK EL_record_event(EL_GROUP group, uint32_t local, EL_ERROR_LEVEL err_level, uint32_t note)
イベント (EL_Event) を記録
@ EL_CORE_GROUP_TLCD_PAST_TIME
@ EL_CORE_GROUP_TLCD_DEPLOY_BLOCK
EL_GROUP
event_logger の Event Group の user 定義部分
PacketList PH_tl_cmd_list[TLCD_ID_MAX]
@ PH_ACK_PACKET_NOT_FOUND
パケットが無い
#define PH_TLC_GS_LIST_MAX
PL_ACK PL_check_tl_cmd(const PacketList *pl, cycle_t time)
PacketList の先頭と time を比較
PL_ACK PL_drop_node(PacketList *pl, PL_Node *prev, PL_Node *current)
指定された Node を落とす
const PL_Node * PL_get_next(const PL_Node *node)
現 Node から次の Node を取得
const PL_Node * PL_get_head(const PacketList *pl)
PacketList の active な先頭 Node を取得
PL_ACK PL_deploy_block_cmd(PacketList *pl, const bct_id_t block, cycle_t start_at)
PacketList 上に BC を展開する
uint16_t PL_count_active_nodes(const PacketList *pl)
PacketList で有効な(実行待ち) Node 数を返す
PL_ACK
PacketList 関連操作のエラーコード
@ PL_TLC_NOT_YET
まだ実行時刻ではない
@ PL_TLC_PAST_TIME
実行時間既に経過
@ PL_BC_TIME_ADJUSTED
同時刻に Node があったため調整せれた
@ PL_BC_LIST_CLEARED
PL クリア (初期化, active 全削除) された
int stop_on_error
異常時実行中断フラグ
void * packet
片方向リストに格納される packet. どのような型でも良いように, void.(基本的には CTCP, CTP, CCP を想定)
struct PL_Node * next
次の Node (片方向リスト)
Timeline コマンドの実行部と, TLテレメの情報を保持する
CommandDispatcher dispatcher[TLCD_ID_MAX]
struct TimelineCommandDispatcher::@1 tlm_info_
const CommonCmdPacket * tl_list[PH_TLC_GS_LIST_MAX]
cycle_t TMGR_get_master_total_cycle(void)
現在の total_cycle を返す
CCP_CmdRet Cmd_TLCD_DEPLOY_BLOCK(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLCD_CLEAR_ALL_TIMELINE(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLCD_CLEAR_ERR_LOG(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLCD_SET_LOUT_FLAG(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLCD_SET_PAGE_FOR_TLM(const CommonCmdPacket *packet)
static void TLCD_bc_init_(void)
static CommonCmdPacket TLCD_null_packet_
AppInfo TLCD_tlm_create_app(void)
TL2 (TLM を登録する用の Timeline) の実行 App を作成する
TLCD_ID TLCD_update_tl_list_for_tlm(TLCD_ID id)
テレメの内容を自動更新する.
AppInfo TLCD_bc_create_app(void)
TL1 (BC を展開する用の Timeline) の実行 App を作成する
static void TLCD_gs_dispatch_(void)
static void TLCD_bc_dispatch_(void)
static TimelineCommandDispatcher timeline_command_dispatcher_
CCP_CmdRet Cmd_TLCD_CLEAR_TIMELINE_AT(const CommonCmdPacket *packet)
static void TLCD_tlm_dispatch_(void)
CCP_CmdRet Cmd_TLCD_SET_ID_FOR_TLM(const CommonCmdPacket *packet)
CCP_CmdRet Cmd_TLCD_SET_SOE_FLAG(const CommonCmdPacket *packet)
static void TLCD_tlc_dispatcher_(TLCD_ID id)
指定された lien_no の Timeline コマンドを実行する
static PH_ACK TLCD_drop_tl_cmd_at_(TLCD_ID id, cycle_t time)
指定された時刻, id の TL コマンドを削除する
static void TLCD_tlm_init_(void)
const TimelineCommandDispatcher *const timeline_command_dispatcher
AppInfo TLCD_gs_create_app(void)
TL0 (GS から登録されるバス用の Timeline) の実行 App を作成する
static void TLCD_gs_init_(void)
TLCD_ID
TimeLineを選ぶときに統一的に使うコード