C2A_Core
packet_handler.h ファイル

C2A 全体を流れる Common Packet の配送を制御する [詳解]

packet_handler.h の依存先関係図:
被依存関係図:

[ソースコード]

マクロ定義

#define TL_TLM_PAGE_SIZE   (32)
 
#define TL_TLM_PAGE_MAX   (8)
 
#define PH_GSC_LIST_MAX   (8)
 
#define PH_RTC_LIST_MAX   (32)
 
#define PH_TLC_GS_LIST_MAX   (TL_TLM_PAGE_SIZE * TL_TLM_PAGE_MAX)
 
#define PH_TLC_BC_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)
 
#define PH_TLC_TLM_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)
 
#define PH_TLC_MIS_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)
 
#define PH_RT_TLM_LIST_MAX   (16)
 
#define PH_ST_TLM_LIST_MAX   (16)
 
#define PH_RP_TLM_LIST_MAX   (16)
 

列挙型

enum  PH_ACK {
  PH_ACK_SUCCESS , PH_ACK_FORWARDED , PH_ACK_PL_LIST_FULL , PH_ACK_PACKET_NOT_FOUND ,
  PH_ACK_INVALID_PACKET , PH_ACK_TLC_SUCCESS , PH_ACK_TLC_PAST_TIME , PH_ACK_TLC_ALREADY_EXISTS ,
  PH_ACK_BC_SUCCESS , PH_ACK_BC_INVALID_BLOCK_NO , PH_ACK_BC_ISORATED_CMD , PH_ACK_BC_CMD_TOO_LONG ,
  PH_ACK_UNKNOWN
}
 

関数

void PH_init (void)
 Packet Handler を初期化 [詳解]
 
PH_ACK PH_analyze_packet (const CommonTlmCmdPacket *packet)
 CTCP を解析する [詳解]
 
PH_ACK PH_analyze_tlm_packet (const CommonTlmPacket *packet)
 CTP を解析する [詳解]
 
PH_ACK PH_analyze_cmd_packet (const CommonCmdPacket *packet)
 CCP を解析する [詳解]
 
CCP_CmdRet PH_dispatch_command (const CommonCmdPacket *packet)
 CCP をコマンドとして解釈して実行,ないしは別機器へ配送する [詳解]
 
const PacketListPH_get_packet_list_from_exec_type (CCP_EXEC_TYPE type)
 CCP_EXEC_TYPE から PacketList を取得する [詳解]
 

変数

PacketList PH_gs_cmd_list
 
PacketList PH_rt_cmd_list
 
PacketList PH_tl_cmd_list [TLCD_ID_MAX]
 
PacketList PH_rt_tlm_list
 

詳解

C2A 全体を流れる Common Packet の配送を制御する

packet_handler.h に定義があります。

マクロ定義詳解

◆ PH_GSC_LIST_MAX

#define PH_GSC_LIST_MAX   (8)

packet_handler.h15 行目に定義があります。

◆ PH_RP_TLM_LIST_MAX

#define PH_RP_TLM_LIST_MAX   (16)

packet_handler.h24 行目に定義があります。

◆ PH_RT_TLM_LIST_MAX

#define PH_RT_TLM_LIST_MAX   (16)

packet_handler.h22 行目に定義があります。

◆ PH_RTC_LIST_MAX

#define PH_RTC_LIST_MAX   (32)

packet_handler.h16 行目に定義があります。

◆ PH_ST_TLM_LIST_MAX

#define PH_ST_TLM_LIST_MAX   (16)

packet_handler.h23 行目に定義があります。

◆ PH_TLC_BC_LIST_MAX

#define PH_TLC_BC_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)

packet_handler.h19 行目に定義があります。

◆ PH_TLC_GS_LIST_MAX

#define PH_TLC_GS_LIST_MAX   (TL_TLM_PAGE_SIZE * TL_TLM_PAGE_MAX)

packet_handler.h17 行目に定義があります。

◆ PH_TLC_MIS_LIST_MAX

#define PH_TLC_MIS_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)

packet_handler.h21 行目に定義があります。

◆ PH_TLC_TLM_LIST_MAX

#define PH_TLC_TLM_LIST_MAX   (TL_TLM_PAGE_SIZE * 4)

packet_handler.h20 行目に定義があります。

◆ TL_TLM_PAGE_MAX

#define TL_TLM_PAGE_MAX   (8)

packet_handler.h13 行目に定義があります。

◆ TL_TLM_PAGE_SIZE

#define TL_TLM_PAGE_SIZE   (32)

packet_handler.h12 行目に定義があります。

列挙型詳解

◆ PH_ACK

enum PH_ACK
列挙値
PH_ACK_SUCCESS 

OK

PH_ACK_FORWARDED 

別 OBC に転送された

PH_ACK_PL_LIST_FULL 

PL が一杯だった

PH_ACK_PACKET_NOT_FOUND 

パケットが無い

PH_ACK_INVALID_PACKET 

無効な Packet

PH_ACK_TLC_SUCCESS 

TL 登録に成功した

PH_ACK_TLC_PAST_TIME 

既に実行時刻を過ぎている

PH_ACK_TLC_ALREADY_EXISTS 

同 TI に既に packet がいる

PH_ACK_BC_SUCCESS 

BC 登録に成功した

PH_ACK_BC_INVALID_BLOCK_NO 

無効な BC 番号だった

PH_ACK_BC_ISORATED_CMD 

飛ばして BC 登録しようとした

PH_ACK_BC_CMD_TOO_LONG 

CMD が BC には長すぎる

PH_ACK_UNKNOWN 

packet_handler.h41 行目に定義があります。

関数詳解

◆ PH_analyze_cmd_packet()

PH_ACK PH_analyze_cmd_packet ( const CommonCmdPacket packet)

CCP を解析する

覚え書き
パケット解析とは,パケットを適切なキューにエンキューすることである(実行することではない)
引数
packet解析するパケット
戻り値
PH_ACK

packet_handler.c119 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ PH_analyze_packet()

PH_ACK PH_analyze_packet ( const CommonTlmCmdPacket packet)

CTCP を解析する

覚え書き
パケット解析とは,パケットを適切なキューにエンキューすることである(実行することではない)
Common Packet とは, GS から送られてくるものだけでなく, C2A 内部で発行されるものや,他の OBC から送られてくるものなどもある
Cmd か Tlm かが確定している場合, PH_analyze_tlm_packet, PH_analyze_cmd_packet を用いる
引数
packet解析するパケット
戻り値
PH_ACK

packet_handler.c97 行目に定義があります。

呼び出し関係図:

◆ PH_analyze_tlm_packet()

PH_ACK PH_analyze_tlm_packet ( const CommonTlmPacket packet)

CTP を解析する

覚え書き
パケット解析とは,パケットを適切なキューにエンキューすることである(実行することではない)
引数
packet解析するパケット
戻り値
PH_ACK

packet_handler.c203 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ PH_dispatch_command()

CCP_CmdRet PH_dispatch_command ( const CommonCmdPacket packet)

CCP をコマンドとして解釈して実行,ないしは別機器へ配送する

引数
packet実行 or 配送するコマンドパケット
戻り値
CCP_CmdRet

packet_handler.c231 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ PH_get_packet_list_from_exec_type()

const PacketList* PH_get_packet_list_from_exec_type ( CCP_EXEC_TYPE  type)

CCP_EXEC_TYPE から PacketList を取得する

覚え書き
引数が不正 or 無い場合 NULL を返す
引数
[in]typeCCP_EXEC_TYPE
戻り値
PacketList の const ポインタ

packet_handler.c355 行目に定義があります。

被呼び出し関係図:

◆ PH_init()

void PH_init ( void  )

Packet Handler を初期化

引数
void
戻り値
void

packet_handler.c75 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

変数詳解

◆ PH_gs_cmd_list

PacketList PH_gs_cmd_list
extern

packet_handler.c17 行目に定義があります。

◆ PH_rt_cmd_list

PacketList PH_rt_cmd_list
extern

packet_handler.c18 行目に定義があります。

◆ PH_rt_tlm_list

PacketList PH_rt_tlm_list
extern

packet_handler.c20 行目に定義があります。

◆ PH_tl_cmd_list

PacketList PH_tl_cmd_list[TLCD_ID_MAX]
extern

packet_handler.c19 行目に定義があります。