12 #include "../../IfWrapper/ccsds_user.h"
13 #include "../../TlmCmd/Ccsds/vcdu.h"
16 #define GS_RX_HEADER_NUM (3)
CCSDS通信ラッパーのクラスです。(MOBC用 バックグラウンド取り込みVer)
CCP_DEST_TYPE
コマンドの解釈の宛先を規定
const GS_Driver *const gs_driver
各制御センサ・アクチュエータ等とのインターフェースドライバ群のスーパークラス
DS_INIT_ERR_CODE
Driver の初期化関数のエラーコード
DS_REC_ERR_CODE
Driver の受信関数のエラーコード
DS_CMD_ERR_CODE
各DIが Driver にコマンドを送るときに,統一的に使うコード
DS_ERR_CODE
DriverSuper の汎用エラーコード
DS_CMD_ERR_CODE GS_send_vcdu(GS_Driver *gs_driver, const VCDU *vcdu)
地上に向けて TLM を送信. 形式は VCDU
DS_REC_ERR_CODE GS_rec_tctf(GS_Driver *gs_driver)
地上から CMD を受信する. 形式は TC Transer Frame
GS_PORT_TYPE
GS の通信ポートは CCSDS と UART の 2 つある
@ GS_PORT_TYPE_CCSDS
CCSDS
DS_INIT_ERR_CODE GS_init(GS_Driver *gs_driver, uint8_t uart_ch, DS_StreamRecBuffer *ccsds_rx_buffers[DS_STREAM_MAX], DS_StreamRecBuffer *uart_rx_buffers[DS_STREAM_MAX])
Driver の初期化
受信した TC Transfer Frame, TC Segment の検証を行う
GS_VALIDATE_ERR
gs_validate 関数の返り値
C2A 全体を流れる Common Packet の配送を制御する
CCSDS ポートの初期化, データ送信, データ受信の際に必要となる設定情報を格納する構造体
CCSDS 現在使っている CCSDS API の実行結果
DriverSuper の設定 各 IF はこれを継承してつかう.
CCSDS_Config ccsds_config
const GS_Info * latest_info
uint8_t is_tlm_on
UART に TLM を流すかどうか, CCSDS では許容でも UART に TLM を送りすぎると詰まってしまうため
GS_PORT_TYPE tlm_tx_port_type
VCDU_VCID vcid
送信した TLM のタイプ
cycle_t last_rec_time
最後に受信した時刻
GS_VALIDATE_ERR bc_rec_status
BC CMD を受信したときの analyze 結果
TCTF_TYPE last_rec_tctf_type
最後に受信した TC Transfer Frame のタイプ
uint32_t vcdu_counter
VCDU counter
CCP_DEST_TYPE last_dest_type
最後に受信したパケットの dest type
GS_VALIDATE_ERR ad_rec_status
AD CMD を受信したときの analyze 結果
PH_ACK cmd_ack
受信した CMD の実行結果
int ret_from_if_rx
UART or CCSDS からの返り値
cycle_t send_cycle
最後に送信したときの時刻
GS_VALIDATE_ERR bd_rec_status
BD CMD を受信したときの analyze 結果
DS_ERR_CODE rec_status
DriverSuper からの受信結果
UARTポートの初期化、データ送信、データ受信の際に必要となる設定情報を格納する構造体