C2A_Core
packet_handler.h
[詳解]
1 
5 #ifndef PACKET_HANDLER_H_
6 #define PACKET_HANDLER_H_
7 
9 #include "packet_list.h"
10 #include "../Applications/timeline_command_dispatcher_id_define.h"
11 
12 #define TL_TLM_PAGE_SIZE (32)
13 #define TL_TLM_PAGE_MAX (8)
14 
15 #define PH_GSC_LIST_MAX (8)
16 #define PH_RTC_LIST_MAX (32)
17 #define PH_TLC_GS_LIST_MAX (TL_TLM_PAGE_SIZE * TL_TLM_PAGE_MAX) // これが最長じゃないといけない
18  // TLCD_tl_list_for_tlmの長さがこれなので!!
19 #define PH_TLC_BC_LIST_MAX (TL_TLM_PAGE_SIZE * 4)
20 #define PH_TLC_TLM_LIST_MAX (TL_TLM_PAGE_SIZE * 4)
21 #define PH_TLC_MIS_LIST_MAX (TL_TLM_PAGE_SIZE * 4) // とりあえず TL1,2 と同じ長さにした
22 #define PH_RT_TLM_LIST_MAX (16)
23 #define PH_ST_TLM_LIST_MAX (16)
24 #define PH_RP_TLM_LIST_MAX (16)
25 
26 // 以下で,上記の PL のキューサイズを再定義する
27 // また, data_recorder_define.h の #define DR_ENABLE をコメントアウトすると,
28 // DR 関連 PL がすべて無効となり,メモリが節約できる
30 
31 #ifndef DR_ENABLE
32 #ifdef PH_ST_TLM_LIST_MAX
33 #undef PH_ST_TLM_LIST_MAX
34 #endif
35 #ifdef PH_RP_TLM_LIST_MAX
36 #undef PH_RP_TLM_LIST_MAX
37 #endif
38 #endif
39 
40 // FIXME: 整理したい
41 typedef enum
42 {
57 
61 // extern PacketList PH_hp_tlm_list; // 現在は RT_TLM に統合されている( TODO: 今後また分離させても良いかも.要検討)
63 #ifdef DR_ENABLE
64 extern PacketList PH_st_tlm_list;
65 extern PacketList PH_rp_tlm_list;
66 #endif
67 
73 void PH_init(void);
74 
85 
93 
101 
108 
116 
117 #endif
CCP_EXEC_TYPE
コマンド実行種別
CTCP 関連基本関数の宣言
const PacketList * PH_get_packet_list_from_exec_type(CCP_EXEC_TYPE type)
CCP_EXEC_TYPE から PacketList を取得する
PH_ACK
@ PH_ACK_TLC_ALREADY_EXISTS
同 TI に既に packet がいる
@ PH_ACK_TLC_PAST_TIME
既に実行時刻を過ぎている
@ PH_ACK_INVALID_PACKET
無効な Packet
@ PH_ACK_SUCCESS
OK
@ PH_ACK_TLC_SUCCESS
TL 登録に成功した
@ PH_ACK_PL_LIST_FULL
PL が一杯だった
@ PH_ACK_BC_CMD_TOO_LONG
CMD が BC には長すぎる
@ PH_ACK_BC_INVALID_BLOCK_NO
無効な BC 番号だった
@ PH_ACK_PACKET_NOT_FOUND
パケットが無い
@ PH_ACK_FORWARDED
別 OBC に転送された
@ PH_ACK_BC_SUCCESS
BC 登録に成功した
@ PH_ACK_BC_ISORATED_CMD
飛ばして BC 登録しようとした
@ PH_ACK_UNKNOWN
PH_ACK PH_analyze_tlm_packet(const CommonTlmPacket *packet)
CTP を解析する
PacketList PH_rt_cmd_list
PacketList PH_tl_cmd_list[TLCD_ID_MAX]
PacketList PH_rt_tlm_list
PH_ACK PH_analyze_cmd_packet(const CommonCmdPacket *packet)
CCP を解析する
CCP_CmdRet PH_dispatch_command(const CommonCmdPacket *packet)
CCP をコマンドとして解釈して実行,ないしは別機器へ配送する
PH_ACK PH_analyze_packet(const CommonTlmCmdPacket *packet)
CTCP を解析する
void PH_init(void)
Packet Handler を初期化
PacketList PH_gs_cmd_list
PHのCoreTlmパラメタのオーバーライド用ヘッダー
CTCP, CTP, CCP のリストとしてのデータ構造を定義. 片方向リストとして実装されている
コマンド返り値
Space Packet (コマンド用)
パケットリスト本体
Definition: packet_list.h:73
Space Packet
Space Packet (テレメ用)