C2A_Core
gs.h
[詳解]
1 
5 #ifndef GS_H_
6 #define GS_H_
7 
12 #include "../../IfWrapper/ccsds_user.h"
13 #include "../../TlmCmd/Ccsds/vcdu.h"
14 #include "gs_validate.h"
15 
16 #define GS_RX_HEADER_NUM (3)
17 
23 typedef enum
24 {
29 
34 typedef struct
35 {
36  struct
37  {
43 
44  struct
45  {
50  } tctf;
51  } rx;
52 
53  struct
54  {
57  uint32_t vcdu_counter;
58  } tx;
59 } GS_Info;
60 
65 typedef struct
66 {
67  // CCSDS 側の Driver
68  struct
69  {
72  } driver_ccsds;
73 
74  // UART 側の Driver
75  struct
76  {
77  DriverSuper super;
79  uint8_t is_tlm_on;
80  } driver_uart;
81 
86 } GS_Driver;
87 
97  uint8_t uart_ch,
98  DS_StreamRecBuffer* ccsds_rx_buffers[DS_STREAM_MAX],
99  DS_StreamRecBuffer* uart_rx_buffers[DS_STREAM_MAX]);
100 
107 
117 
118 #endif
CCSDS通信ラッパーのクラスです。(MOBC用 バックグラウンド取り込みVer)
CCP_DEST_TYPE
コマンドの解釈の宛先を規定
const GS_Driver *const gs_driver
Definition: di_gs.c:29
各制御センサ・アクチュエータ等とのインターフェースドライバ群のスーパークラス
DS_INIT_ERR_CODE
Driver の初期化関数のエラーコード
Definition: driver_super.h:70
#define DS_STREAM_MAX
Definition: driver_super.h:31
DS_REC_ERR_CODE
Driver の受信関数のエラーコード
Definition: driver_super.h:84
DS_CMD_ERR_CODE
各DIが Driver にコマンドを送るときに,統一的に使うコード
Definition: driver_super.h:100
DS_ERR_CODE
DriverSuper の汎用エラーコード
Definition: driver_super.h:116
DS_CMD_ERR_CODE GS_send_vcdu(GS_Driver *gs_driver, const VCDU *vcdu)
地上に向けて TLM を送信. 形式は VCDU
Definition: gs.c:257
DS_REC_ERR_CODE GS_rec_tctf(GS_Driver *gs_driver)
地上から CMD を受信する. 形式は TC Transer Frame
Definition: gs.c:166
GS_PORT_TYPE
GS の通信ポートは CCSDS と UART の 2 つある
Definition: gs.h:24
@ GS_PORT_TYPE_NUM
port 数
Definition: gs.h:27
@ GS_PORT_TYPE_UART
UART
Definition: gs.h:26
@ GS_PORT_TYPE_CCSDS
CCSDS
Definition: gs.h:25
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 の初期化
Definition: gs.c:59
受信した TC Transfer Frame, TC Segment の検証を行う
GS_VALIDATE_ERR
gs_validate 関数の返り値
Definition: gs_validate.h:25
uint32_t cycle_t
Definition: obc_time.h:10
C2A 全体を流れる Common Packet の配送を制御する
PH_ACK
CCSDS ポートの初期化, データ送信, データ受信の際に必要となる設定情報を格納する構造体
Definition: ccsds.h:22
CCSDS 現在使っている CCSDS API の実行結果
Definition: ccsds_user.h:33
フレーム受信バッファ
Definition: driver_super.h:222
DriverSuper の設定 各 IF はこれを継承してつかう.
Definition: driver_super.h:407
GroundStation Driver
Definition: gs.h:66
CCSDS_Config ccsds_config
Definition: gs.h:71
const GS_Info * latest_info
Definition: gs.h:83
uint8_t is_tlm_on
UART に TLM を流すかどうか, CCSDS では許容でも UART に TLM を送りすぎると詰まってしまうため
Definition: gs.h:79
CCSDS_Info ccsds_info
Definition: gs.h:84
GS_PORT_TYPE tlm_tx_port_type
Definition: gs.h:85
UART_Config uart_config
Definition: gs.h:78
DriverSuper super
Definition: gs.h:70
ドライバーの各状態の記録
Definition: gs.h:35
VCDU_VCID vcid
送信した TLM のタイプ
Definition: gs.h:56
cycle_t last_rec_time
最後に受信した時刻
Definition: gs.h:41
GS_VALIDATE_ERR bc_rec_status
BC CMD を受信したときの analyze 結果
Definition: gs.h:48
TCTF_TYPE last_rec_tctf_type
最後に受信した TC Transfer Frame のタイプ
Definition: gs.h:46
uint32_t vcdu_counter
VCDU counter
Definition: gs.h:57
CCP_DEST_TYPE last_dest_type
最後に受信したパケットの dest type
Definition: gs.h:40
GS_VALIDATE_ERR ad_rec_status
AD CMD を受信したときの analyze 結果
Definition: gs.h:47
PH_ACK cmd_ack
受信した CMD の実行結果
Definition: gs.h:42
int ret_from_if_rx
UART or CCSDS からの返り値
Definition: gs.h:39
cycle_t send_cycle
最後に送信したときの時刻
Definition: gs.h:55
GS_VALIDATE_ERR bd_rec_status
BD CMD を受信したときの analyze 結果
Definition: gs.h:49
DS_ERR_CODE rec_status
DriverSuper からの受信結果
Definition: gs.h:38
UARTポートの初期化、データ送信、データ受信の際に必要となる設定情報を格納する構造体
Definition: uart.h:81
Definition: vcdu.h:12
TCTF_TYPE
Type
UART通信ラッパーのクラスです。
VCDU_VCID
Definition: vcdu.h:31