C2A_Core
packet_handler.c ファイル

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

#include "packet_handler.h"
#include <stddef.h>
#include <string.h>
#include "../System/TimeManager/time_manager.h"
#include "command_analyze.h"
#include "block_command_table.h"
#include <src_user/TlmCmd/user_packet_handler.h>
#include "packet_list_util.h"
packet_handler.c の依存先関係図:

[ソースコード]

関数

static PH_ACK PH_add_block_cmd_ (const CommonCmdPacket *packet)
 
static PH_ACK PH_add_gs_cmd_ (const CommonCmdPacket *packet)
 
static PH_ACK PH_add_rt_cmd_ (const CommonCmdPacket *packet)
 
static PH_ACK PH_add_tl_cmd_ (TLCD_ID id, const CommonCmdPacket *packet, cycle_t now)
 
static PH_ACK PH_add_utl_cmd_ (TLCD_ID id, const CommonCmdPacket *packet)
 UTL_cmd を TL_cmd に変換して tl_cmd_list に追加する [詳解]
 
static PH_ACK PH_add_tlm_to_pl (const CommonTlmPacket *packet, PacketList *pl, CTP_DEST_FLAG dest_flag)
 
static PH_ACK PH_add_rt_tlm_ (const CommonTlmPacket *packet)
 
void PH_init (void)
 Packet Handler を初期化 [詳解]
 
PH_ACK PH_analyze_packet (const CommonTlmCmdPacket *packet)
 CTCP を解析する [詳解]
 
PH_ACK PH_analyze_cmd_packet (const CommonCmdPacket *packet)
 CCP を解析する [詳解]
 
PH_ACK PH_analyze_tlm_packet (const CommonTlmPacket *packet)
 CTP を解析する [詳解]
 
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
 
static PL_Node PH_gs_cmd_stock_ [PH_GSC_LIST_MAX]
 
static PL_Node PH_rt_cmd_stock_ [PH_RTC_LIST_MAX]
 
static PL_Node PH_tl_cmd_gs_stock_ [PH_TLC_GS_LIST_MAX]
 
static PL_Node PH_tl_cmd_bc_stock_ [PH_TLC_BC_LIST_MAX]
 
static PL_Node PH_tl_cmd_tlm_stock_ [PH_TLC_TLM_LIST_MAX]
 
static PL_Node PH_rt_tlm_stock_ [PH_RT_TLM_LIST_MAX]
 
static CommonCmdPacket PH_gs_cmd_ccp_stock_ [PH_GSC_LIST_MAX]
 
static CommonCmdPacket PH_rt_cmd_ccp_stock_ [PH_RTC_LIST_MAX]
 
static CommonCmdPacket PH_tl_cmd_gs_ccp_stock_ [PH_TLC_GS_LIST_MAX]
 
static CommonCmdPacket PH_tl_cmd_bc_ccp_stock_ [PH_TLC_BC_LIST_MAX]
 
static CommonCmdPacket PH_tl_cmd_tlm_ccp_stock_ [PH_TLC_TLM_LIST_MAX]
 
static CommonTlmPacket PH_rt_tlm_ctp_stock_ [PH_RT_TLM_LIST_MAX]
 

詳解

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

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

関数詳解

◆ PH_add_block_cmd_()

static PH_ACK PH_add_block_cmd_ ( const CommonCmdPacket packet)
static

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

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

◆ PH_add_gs_cmd_()

static PH_ACK PH_add_gs_cmd_ ( const CommonCmdPacket packet)
static

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

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

◆ PH_add_rt_cmd_()

static PH_ACK PH_add_rt_cmd_ ( const CommonCmdPacket packet)
static

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

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

◆ PH_add_rt_tlm_()

static PH_ACK PH_add_rt_tlm_ ( const CommonTlmPacket packet)
static

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

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

◆ PH_add_tl_cmd_()

static PH_ACK PH_add_tl_cmd_ ( TLCD_ID  id,
const CommonCmdPacket packet,
cycle_t  now 
)
static

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

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

◆ PH_add_tlm_to_pl()

static PH_ACK PH_add_tlm_to_pl ( const CommonTlmPacket packet,
PacketList pl,
CTP_DEST_FLAG  dest_flag 
)
static

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

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

◆ PH_add_utl_cmd_()

static PH_ACK PH_add_utl_cmd_ ( TLCD_ID  id,
const CommonCmdPacket packet 
)
static

UTL_cmd を TL_cmd に変換して tl_cmd_list に追加する

覚え書き
TODO:const cast でもいいか検討する
引数
[in]packet
戻り値
PH_ACK

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

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

◆ 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_ccp_stock_

CommonCmdPacket PH_gs_cmd_ccp_stock_[PH_GSC_LIST_MAX]
static

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

◆ PH_gs_cmd_list

PacketList PH_gs_cmd_list

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

◆ PH_gs_cmd_stock_

PL_Node PH_gs_cmd_stock_[PH_GSC_LIST_MAX]
static

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

◆ PH_rt_cmd_ccp_stock_

CommonCmdPacket PH_rt_cmd_ccp_stock_[PH_RTC_LIST_MAX]
static

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

◆ PH_rt_cmd_list

PacketList PH_rt_cmd_list

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

◆ PH_rt_cmd_stock_

PL_Node PH_rt_cmd_stock_[PH_RTC_LIST_MAX]
static

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

◆ PH_rt_tlm_ctp_stock_

CommonTlmPacket PH_rt_tlm_ctp_stock_[PH_RT_TLM_LIST_MAX]
static

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

◆ PH_rt_tlm_list

PacketList PH_rt_tlm_list

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

◆ PH_rt_tlm_stock_

PL_Node PH_rt_tlm_stock_[PH_RT_TLM_LIST_MAX]
static

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

◆ PH_tl_cmd_bc_ccp_stock_

CommonCmdPacket PH_tl_cmd_bc_ccp_stock_[PH_TLC_BC_LIST_MAX]
static

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

◆ PH_tl_cmd_bc_stock_

PL_Node PH_tl_cmd_bc_stock_[PH_TLC_BC_LIST_MAX]
static

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

◆ PH_tl_cmd_gs_ccp_stock_

CommonCmdPacket PH_tl_cmd_gs_ccp_stock_[PH_TLC_GS_LIST_MAX]
static

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

◆ PH_tl_cmd_gs_stock_

PL_Node PH_tl_cmd_gs_stock_[PH_TLC_GS_LIST_MAX]
static

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

◆ PH_tl_cmd_list

PacketList PH_tl_cmd_list[TLCD_ID_MAX]

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

◆ PH_tl_cmd_tlm_ccp_stock_

CommonCmdPacket PH_tl_cmd_tlm_ccp_stock_[PH_TLC_TLM_LIST_MAX]
static

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

◆ PH_tl_cmd_tlm_stock_

PL_Node PH_tl_cmd_tlm_stock_[PH_TLC_TLM_LIST_MAX]
static

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