packet_handlerのコマンドルーター,コマンドアナライザのユーザー定義部分
[詳解]
[ソースコード]
packet_handlerのコマンドルーター,コマンドアナライザのユーザー定義部分
user_packet_handler.c に定義があります。
◆ PH_AOBC_CMD_LIST_MAX
#define PH_AOBC_CMD_LIST_MAX (16) |
◆ PH_TOBC_CMD_LIST_MAX
#define PH_TOBC_CMD_LIST_MAX (16) |
◆ PH_add_aobc_cmd_()
◆ PH_add_tobc_cmd_()
◆ PH_user_analyze_cmd()
PH の analyze_cmd_ のユーザー処理関数
Core の処理より優先される
C2A を搭載したコンポのキュー(GSC,RTC,TLC,BC)に即座に直接追加される.
正確には, add_rt_cmd_ の送信先版を作り,そこにキューイングされ,DI (dispatcher) によって回収される.
つまり,本 OBC にとっては RTC だが,転送対象 OBC にとっては各種 Cmd 扱いな Cmd を転送する処理
- 引数
-
- 戻り値
-
PH_ACK_FORWARDED | 無事に転送するキューに追加された |
PH_ACK_PL_LIST_FULL | PL LIST FULL |
PH_ACK_UNKNOWN | ユーザー処理に引っかからなかった場合.Core 側の処理に回される |
user_packet_handler.c の 33 行目に定義があります。
◆ PH_user_cmd_router()
PH の PH_dispatch_command のユーザー処理関数
C2A を搭載したコンポに Cmd が転送される.
つまり,転送対象 OBC にとっては RTC 扱いになる
ここから Driver を叩いて送信まで行うことになる(実行時間は CA_execute_cmd と同じだけ許容されているので OK)
- 引数
-
- 戻り値
-
CCP_CmdRet{CCP_EXEC_SUCCESS,*} | など: 無事に転送された.転送先の結果を返す |
CCP_CmdRet{CCP_EXEC_ROUTING_FAILED,*} | 転送失敗(詳細エラーは DriverSuper を参照) |
user_packet_handler.c の 72 行目に定義があります。
◆ PH_user_init()
void PH_user_init |
( |
void |
| ) |
|
◆ PH_user_telemetry_router()
2nd OBC のテレメを転送するために, APID からテレメを判定してルーティングする // FIXME: 命名, router ではない?
- 引数
-
[in] | apid | 2nd OBC の Tlm APID |
[in] | tlm_id | 2nd OBC の Tlm ID |
[out] | packet | テレメを作る uint8_t にシリアライズされた packet へのポインタ |
[out] | len | 転送するテレメのパケット長 |
[in] | max_len | 許容できる最大テレメパケット長 |
- 戻り値
- TF_TLM_FUNC_ACK
user_packet_handler.c の 90 行目に定義があります。
◆ PH_aobc_ccp_stock_
◆ PH_aobc_cmd_list
◆ PH_aobc_cmd_stock_
◆ PH_tobc_ccp_stock_
◆ PH_tobc_cmd_list
◆ PH_tobc_cmd_stock_