C2A_Core
|
DriverSuperStream の設定 [詳解]
#include <driver_super.h>
DriverSuperStream の設定
DS_StreamConfig のメンバはすべての Driver から非公開とし, getter / setter でアクセスする
driver_super.h の 280 行目に定義があります。
DS_ERR_CODE(* data_analyzer_) (DS_StreamConfig *p_stream_config, void *p_driver) |
受信データの解析関数 p_driver は継承先機器のドライバ構造体など 返り値は DS_ERR_CODE DS_data_analyzer_dummy_
driver_super.h の 368 行目に定義があります。
uint32_t general_cmd_tx_count_ |
通常コマンド送信回数
driver_super.h の 380 行目に定義があります。
ObcTime general_cmd_tx_time_ |
通常コマンド最終送信時刻
driver_super.h の 386 行目に定義があります。
struct { ... } info |
取得値(メトリクス)
struct { ... } internal |
内部処理用
uint8_t is_enabled_ |
有効か? 初期値: 0 (無効)
driver_super.h の 284 行目に定義があります。
uint8_t is_strict_frame_search_ |
厳格なフレーム探索が有効か? ノイズ発生時や複数 stream 使用時にフレーム受信漏れを完全になくすモード
driver_super.h の 287 行目に定義があります。
uint8_t is_validation_needed_for_rec_ |
受信前に設定値の Validation が必要か?
driver_super.h の 396 行目に定義があります。
uint8_t is_validation_needed_for_send_ |
送信前に設定値の Validation が必要か?
driver_super.h の 395 行目に定義があります。
uint16_t max_rx_frame_size_ |
受信データ(テレメトリ)の想定される最大フレームサイズ これよりも長いフレームが来た(来そうな)場合は,そのフレーム(候補)は破棄される これにより,ヘッダ内部のフレーム長が巨大な値に化けていた場合などに永遠に受信してしまうことを防ぐことができる rx_frame_size_ が固定長の場合は無視される 初期値: 0xffff
driver_super.h の 333 行目に定義があります。
DS_StreamRecStatus rec_status_ |
フレーム受信状況
driver_super.h の 378 行目に定義があります。
uint32_t req_tlm_cmd_tx_count_ |
テレメ要求コマンド送信回数
driver_super.h の 381 行目に定義があります。
uint32_t req_tlm_cmd_tx_count_after_last_tx_ |
最後にテレメを受信してからのテレメ要求コマンド送信回数 これが 0 でない場合,テレメが最新ではない可能性がある
driver_super.h の 382 行目に定義があります。
ObcTime req_tlm_cmd_tx_time_ |
テレメ要求コマンド最終送信時刻
driver_super.h の 387 行目に定義があります。
DS_ERR_CODE ret_from_data_analyzer_ |
data_analyzer_ の返り値
driver_super.h の 390 行目に定義があります。
DS_StreamRecBuffer* rx_buffer_ |
受信バッファ stream 初期化時に user がメモリを割り当て,設定する 初期値: NULL
driver_super.h の 312 行目に定義があります。
const uint8_t* rx_footer_ |
受信データのフッタ 初期値: NULL
driver_super.h の 324 行目に定義があります。
uint16_t rx_footer_size_ |
受信データのフッタサイズ ヘッダがない場合は0に設定 初期値: 0
driver_super.h の 326 行目に定義があります。
uint32_t rx_frame_fix_count_ |
フレーム受信確定回数
driver_super.h の 384 行目に定義があります。
ObcTime rx_frame_fix_time_ |
フレーム確定時刻
driver_super.h の 388 行目に定義があります。
int16_t rx_frame_size_ |
受信データ(テレメトリ)フレームサイズ 受信データがない場合は 0 に設定 受信データが可変の場合は負数に設定 初期値: 0
driver_super.h の 329 行目に定義があります。
ENDIAN_TYPE rx_framelength_endian_ |
フレームサイズデータのエンディアン 受信データが可変長の場合のみ使用される 初期値: ENDIAN_TYPE_BIG
driver_super.h の 359 行目に定義があります。
uint16_t rx_framelength_offset_ |
フレームサイズデータのオフセット値 受信データが可変長の場合のみ使用される フレームサイズデータによる可変長データの解析は「フレームの全サイズ」により行われるが, 機器の中にはヘッダとフッタの分は除いたデータ数としてサイズが表現される場合がある その場合のサイズ調整のために使う フレームサイズデータが「フレームの全サイズ」を示している場合には 0 に設定する 初期値: 0
driver_super.h の 352 行目に定義があります。
int16_t rx_framelength_pos_ |
受信データ内のフレームサイズデータの存在する場所(先頭から数えて何 byte 目に位置するか.0 起算) 受信データが可変長の場合のみ使用される. フレームサイズデータがない場合には負に設定する. 可変長でかつフレームサイズデータのないフレームは,フッタが設定されている場合は有効である. ただし,フッタの探索が必要なため,実行時間は若干遅くなる. もちろん,ヘッダがあることを推奨する.ヘッダがない場合は,受信したデータの冒頭からフレームとみなす. 受信されるフレーム長が受信前に判明している場合は, ヘッダがない場合のときと同様に,受信前(例えば DS_send_req_tlm_cmd 呼び出し前) に rx_frame_size_ を設定することで,固定長のように扱うことで対応することを推奨する. 初期値: -1
driver_super.h の 338 行目に定義があります。
uint16_t rx_framelength_type_size_ |
フレームサイズデータの型サイズ [byte] 受信データが可変長の場合のみ使用される. 例えば uint8 なら 1, uint32 なら 4 初期値: 0
driver_super.h の 348 行目に定義があります。
const uint8_t* rx_header_ |
受信データのヘッダ 初期値: NULL
driver_super.h の 315 行目に定義があります。
uint16_t rx_header_size_ |
受信データのヘッダサイズ ヘッダがない場合は0に設定 この場合,基本的には固定長(rx_frame_size が正)を使う. ヘッダがなく,可変長の場合は,受信前(例えば DS_send_req_tlm_cmd 呼び出し前) に rx_frame_size_ を設定することで固定長のように扱うことで対応する. また,初期化時の Validation を通すためにも,初期値は適切な正数にしておくこと 初期値: 0
driver_super.h の 317 行目に定義があります。
DS_StreamSendStatus send_status_ |
フレーム送信状況
driver_super.h の 377 行目に定義があります。
struct { ... } settings |
設定値
uint8_t should_monitor_for_tlm_disruption_ |
テレメ途絶判定をするか? 初期値: 0
driver_super.h の 363 行目に定義があります。
uint32_t time_threshold_for_tlm_disruption_ |
テレメ途絶判定の閾値 [ms] 初期値: 60 * 1000
driver_super.h の 365 行目に定義があります。
uint8_t* tx_frame_ |
コマンドフレーム FIXME: tx_frame_buffer_ に rename する? 初期値: NULL
driver_super.h の 299 行目に定義があります。
int16_t tx_frame_buffer_size_ |
与えた tx_frame_ の最大サイズ Drivers/Protocol などで, Util が tx_frame_ を使うときに使用 Protocol を使うときは設定しておくと良い(一部の関数は設定しないと使えない) 未指定の場合は負数とする 初期値: -1
driver_super.h の 306 行目に定義があります。
uint16_t tx_frame_size_ |
コマンドフレームサイズ tx_frame_ のうち実際に送信するバイト数 送信データがない場合は 0 初期値: 0
driver_super.h の 302 行目に定義があります。