C2A_Core
user_packet_handler.c ファイル

packet_handlerのコマンドルーター,コマンドアナライザのユーザー定義部分 [詳解]

user_packet_handler.c の依存先関係図:

[ソースコード]

マクロ定義

#define PH_AOBC_CMD_LIST_MAX   (16)
 AOBC CMD QUEUEサイズ [詳解]
 
#define PH_TOBC_CMD_LIST_MAX   (16)
 TOBC CMD QUEUEサイズ [詳解]
 

関数

static PH_ACK PH_add_aobc_cmd_ (const CommonCmdPacket *packet)
 
static PH_ACK PH_add_tobc_cmd_ (const CommonCmdPacket *packet)
 
void PH_user_init (void)
 PH のユーザー固有部初期化処理 [詳解]
 
PH_ACK PH_user_analyze_cmd (const CommonCmdPacket *packet)
 PH の analyze_cmd_ のユーザー処理関数 [詳解]
 
CCP_CmdRet PH_user_cmd_router (const CommonCmdPacket *packet)
 PH の PH_dispatch_command のユーザー処理関数 [詳解]
 
TF_TLM_FUNC_ACK PH_user_telemetry_router (APID apid, TLM_CODE tlm_id, uint8_t *packet, uint16_t *len, uint16_t max_len)
 2nd OBC のテレメを転送するために, APID からテレメを判定してルーティングする // FIXME: 命名, router ではない? [詳解]
 

変数

PacketList PH_aobc_cmd_list
 
PacketList PH_tobc_cmd_list
 
static PL_Node PH_aobc_cmd_stock_ [PH_AOBC_CMD_LIST_MAX]
 
static PL_Node PH_tobc_cmd_stock_ [PH_TOBC_CMD_LIST_MAX]
 
static CommonCmdPacket PH_aobc_ccp_stock_ [PH_AOBC_CMD_LIST_MAX]
 
static CommonCmdPacket PH_tobc_ccp_stock_ [PH_TOBC_CMD_LIST_MAX]
 

詳解

packet_handlerのコマンドルーター,コマンドアナライザのユーザー定義部分

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

マクロ定義詳解

◆ PH_AOBC_CMD_LIST_MAX

#define PH_AOBC_CMD_LIST_MAX   (16)

AOBC CMD QUEUEサイズ

user_packet_handler.c11 行目に定義があります。

◆ PH_TOBC_CMD_LIST_MAX

#define PH_TOBC_CMD_LIST_MAX   (16)

TOBC CMD QUEUEサイズ

user_packet_handler.c12 行目に定義があります。

関数詳解

◆ PH_add_aobc_cmd_()

static PH_ACK PH_add_aobc_cmd_ ( const CommonCmdPacket packet)
static

user_packet_handler.c106 行目に定義があります。

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

◆ PH_add_tobc_cmd_()

static PH_ACK PH_add_tobc_cmd_ ( const CommonCmdPacket packet)
static

user_packet_handler.c115 行目に定義があります。

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

◆ PH_user_analyze_cmd()

PH_ACK PH_user_analyze_cmd ( const CommonCmdPacket packet)

PH の analyze_cmd_ のユーザー処理関数

    Core の処理より優先される
    C2A を搭載したコンポのキュー(GSC,RTC,TLC,BC)に即座に直接追加される.
    正確には, add_rt_cmd_ の送信先版を作り,そこにキューイングされ,DI (dispatcher) によって回収される.
    つまり,本 OBC にとっては RTC だが,転送対象 OBC にとっては各種 Cmd 扱いな Cmd を転送する処理
引数
packetCCP
戻り値
PH_ACK_FORWARDED無事に転送するキューに追加された
PH_ACK_PL_LIST_FULLPL LIST FULL
PH_ACK_UNKNOWNユーザー処理に引っかからなかった場合.Core 側の処理に回される

user_packet_handler.c33 行目に定義があります。

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

◆ PH_user_cmd_router()

CCP_CmdRet PH_user_cmd_router ( const CommonCmdPacket packet)

PH の PH_dispatch_command のユーザー処理関数

    C2A を搭載したコンポに Cmd が転送される.
    つまり,転送対象 OBC にとっては RTC 扱いになる
    ここから Driver を叩いて送信まで行うことになる(実行時間は CA_execute_cmd と同じだけ許容されているので OK)
引数
packetCCP
戻り値
CCP_CmdRet{CCP_EXEC_SUCCESS,*}など: 無事に転送された.転送先の結果を返す
CCP_CmdRet{CCP_EXEC_ROUTING_FAILED,*}転送失敗(詳細エラーは DriverSuper を参照)

user_packet_handler.c72 行目に定義があります。

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

◆ PH_user_init()

void PH_user_init ( void  )

PH のユーザー固有部初期化処理

    PacketList の初期化を行う
引数
void
戻り値
void

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

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

◆ PH_user_telemetry_router()

TF_TLM_FUNC_ACK PH_user_telemetry_router ( APID  apid,
TLM_CODE  tlm_id,
uint8_t *  packet,
uint16_t *  len,
uint16_t  max_len 
)

2nd OBC のテレメを転送するために, APID からテレメを判定してルーティングする // FIXME: 命名, router ではない?

引数
[in]apid2nd OBC の Tlm APID
[in]tlm_id2nd OBC の Tlm ID
[out]packetテレメを作る uint8_t にシリアライズされた packet へのポインタ
[out]len転送するテレメのパケット長
[in]max_len許容できる最大テレメパケット長
戻り値
TF_TLM_FUNC_ACK

user_packet_handler.c90 行目に定義があります。

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

変数詳解

◆ PH_aobc_ccp_stock_

CommonCmdPacket PH_aobc_ccp_stock_[PH_AOBC_CMD_LIST_MAX]
static

user_packet_handler.c22 行目に定義があります。

◆ PH_aobc_cmd_list

PacketList PH_aobc_cmd_list

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

◆ PH_aobc_cmd_stock_

PL_Node PH_aobc_cmd_stock_[PH_AOBC_CMD_LIST_MAX]
static

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

◆ PH_tobc_ccp_stock_

CommonCmdPacket PH_tobc_ccp_stock_[PH_TOBC_CMD_LIST_MAX]
static

user_packet_handler.c23 行目に定義があります。

◆ PH_tobc_cmd_list

PacketList PH_tobc_cmd_list

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

◆ PH_tobc_cmd_stock_

PL_Node PH_tobc_cmd_stock_[PH_TOBC_CMD_LIST_MAX]
static

user_packet_handler.c21 行目に定義があります。