16 #define AOBC_STREAM_TLM_CMD (0)
110 uint32_t tlm_ver = DS_ISSLFMT_get_tlm_version(p_stream_config);
111 uint32_t tlm_id = DS_ISSLFMT_get_tlm_id(tlm_ver, p_stream_config);
118 case AOBC_Tlm_CODE_HK:
119 return AOBC_analyze_tlm_hk_(p_stream_config,
aobc_driver);
DS_CMD_ERR_CODE AOBC_send_cmd(AOBC_Driver *aobc_driver, const CommonCmdPacket *packet)
AOBC へのコマンド送信
static uint8_t AOBC_tx_frame_[EB90_FRAME_HEADER_SIZE+CTCP_MAX_LEN+EB90_FRAME_FOOTER_SIZE]
#define AOBC_STREAM_TLM_CMD
テレコマで使うストリーム
DS_REC_ERR_CODE AOBC_rec(AOBC_Driver *aobc_driver)
AOBC のデータ(テレメ)受信
static DS_ERR_CODE AOBC_analyze_rec_data_(DS_StreamConfig *p_stream_config, void *p_driver)
static DS_ERR_CODE AOBC_load_driver_super_init_settings_(DriverSuper *p_super)
DS_INIT_ERR_CODE AOBC_init(AOBC_Driver *aobc_driver, uint8_t ch, DS_StreamRecBuffer *rx_buffer)
AOBC 初期化
@ AOBC_RX_ERR_CODE_CRC_ERR
@ AOBC_RX_ERR_CODE_TLM_NOT_FOUND
@ AOBC_Cmd_CODE_TG_FORWARD_TLM
@ AOBC_Cmd_CODE_TG_FORWARD_AS_ST_TLM
@ AOBC_Cmd_CODE_TG_GENERATE_TLM
@ AOBC_Cmd_CODE_TG_GENERATE_HP_TLM
@ AOBC_Cmd_CODE_TG_GENERATE_ST_TLM
@ AOBC_Cmd_CODE_TG_FORWARD_AS_HP_TLM
@ AOBC_Cmd_CODE_TG_GENERATE_RT_TLM
@ AOBC_Cmd_CODE_GENERATE_TLM
@ AOBC_Cmd_CODE_TG_FORWARD_AS_RT_TLM
void AOBC_init_tlm_buffer(AOBC_Driver *aobc_driver)
DS_ERR_CODE AOBC_buffer_tlm_packet(DS_StreamConfig *p_stream_config, AOBC_Driver *aobc_driver)
CMD_CODE CCP_get_id(const CommonCmdPacket *packet)
CMD ID を取得
DS_ERR_CODE CCP_set_tx_frame_to_dssc(DS_StreamConfig *p_stream_config, const CommonCmdPacket *send_packet)
C2A 間通信など, CCP をコンポ間通信に用いるときの tx_frame のセット
DS_ERR_CODE CTCP_init_dssc(DS_StreamConfig *p_stream_config, uint8_t *tx_frame_buffer, int16_t tx_frame_buffer_size, DS_ERR_CODE(*data_analyzer)(DS_StreamConfig *p_stream_config, void *p_driver))
C2A 間通信など, CTCP をコンポ間通信に用いるとき,DS_init で渡す初期化関数内部用の Init Util
コンポ間通信などで標準的に使う ネットワーク層 の Common Tlm Cmd Packet (概ね Space Packet)
const AOBC_Driver *const aobc_driver
AOBC driver
DS_ERR_CODE DS_init(DriverSuper *p_super, void *if_config, DS_StreamRecBuffer *rx_buffer, DS_ERR_CODE(*load_init_setting)(DriverSuper *p_super))
継承先の機器より DriverSuper を初期化する(stream 0 のみの使用の場合)
DS_ERR_CODE DS_analyze_rec_data(DriverSuper *p_super, uint8_t stream, void *p_driver)
data_analyzer_ を呼び出し,受信データを解析する.
const DS_StreamRecStatus * DSSC_get_rec_status(const DS_StreamConfig *p_stream_config)
DS_ERR_CODE DS_receive(DriverSuper *p_super)
継承先の機器からテレメトリを受信する
DS_ERR_CODE DS_send_general_cmd(DriverSuper *p_super, uint8_t stream)
継承先の機器に一般コマンドを発行する
void DSSC_enable(DS_StreamConfig *p_stream_config)
DS_ERR_CODE DS_send_req_tlm_cmd(DriverSuper *p_super, uint8_t stream)
継承先の機器にテレメ要求コマンドを発行する
@ DS_STREAM_REC_STATUS_FIXED_FRAME
DS_INIT_ERR_CODE
Driver の初期化関数のエラーコード
@ DS_INIT_DS_INIT_ERR
DS_init でのエラー
DS_REC_ERR_CODE
Driver の受信関数のエラーコード
@ DS_REC_ANALYZE_ERR
DS_analyze_rec_data でのエラー
@ DS_REC_DS_RECEIVE_ERR
DS_receive でのエラー
DS_CMD_ERR_CODE
各DIが Driver にコマンドを送るときに,統一的に使うコード
@ DS_CMD_OK
OKは0であることを保証する
@ DS_CMD_DRIVER_SUPER_ERR
DriverSuper 側,つまり配送の低レイヤーでエラーが起きた場合
DS_ERR_CODE
DriverSuper の汎用エラーコード
@ DS_ERR_CODE_OK
返り値は継承先や IF 先で上書きされるため,OK は 0 であることが必須
uint8_t EB90_FRAME_is_valid_crc_of_dssc(const DS_StreamConfig *p_stream_config)
EB90 Frame に付与された CRC が正しいかチェック
コンポ間通信などで標準的に使う データリンク層 の EB90 Frame
#define EB90_FRAME_HEADER_SIZE
EB90 Frame のヘッダサイズ
#define EB90_FRAME_FOOTER_SIZE
EB90 Frame のフッタサイズ
struct AOBC_Driver::@22 driver
UART_Config uart_config
RS422 class
DriverSuper super
DriverSuper class
struct AOBC_Info::@21 comm
通信情報
AOBC_RX_ERR_CODE rx_err_code
DS_STREAM_REC_STATUS_CODE status_code
status
DriverSuper の設定 各 IF はこれを継承してつかう.
IF_LIST_ENUM interface
継承先の機器の使用 IF
DS_StreamConfig stream_config[DS_STREAM_MAX]
PARITY_SETTINGS parity_settings
パリティ設定
UART_DATA_LENGTH data_length
データ長
uint32_t baudrate
継承先の機器のボーレート値
uint8_t ch
継承先の機器がつながっているポート番号
UART_STOP_BIT stop_bit
ストップビット
@ PARITY_SETTINGS_NONE
パリティチェックをしない