機械翻訳であり、ネイティブスピーカーによる確認は行われていません。英語版が基準です。

受信機の信頼性と海事GitHub で編集ソース:docs/RECEIVER-PROTOCOLS.md

receiver-trust が読み取る受信機プロトコル(0.38)

全体を通して読み取り専用です。ここでは受信機に 一バイトも書き込まず、いかなる送信経路もありません。助言用ソフトウェアであり、型式承認を受けた航法装置(IEC 61108、IEC 61162)ではありません。運用者が引き続き責任を負います。

受信機自身のスプーフィングとジャミングのフラグ(UBX)#

メッセージ フィールド 読み取り内容
UBX-NAV-STATUS (0x01 0x03)、16 バイト オフセット 7 の flags2 バイト、ビット 4..3:spoofDetState 0 不明または無効、1 スプーフィングの兆候なし、2 スプーフィングの兆候あり、3 複数のスプーフィングの兆候あり(プロトコル 18 以降。u-blox F9 HPG 1.32 インターフェース記述、3.15.20 節)
UBX-SEC-SIG (0x27 0x09) バージョン 1、12 バイト jamFlags(位置 4。ビット 0 jamDetEnabled、ビット 2..1 jammingState)、spfFlags(位置 8。ビット 0 spfDetEnabled、ビット 3..1 spoofingState) 状態は検出器が有効な場合にのみ読み取られます。0 不明、1 なし、2 警告または兆候あり、3 重大または確定
UBX-SEC-SIG バージョン 2 sigSecFlags(位置 1。ビット 0 jamDetEnabled、ビット 2..1 jammingState、ビット 3 spfDetEnabled、ビット 6..4 spoofingState)、jamNumCentFreqs(位置 3)とその数の 4 バイトグループ(未使用) 上記と同じ

SEC-SIG レイアウトの出典。本書執筆時にダウンロードできた u-blox F9 HPG 1.32 および M10 SPG 5.10 のインターフェース記述は UBX-SEC-SIG に言及していますが、定義はしていません。上記のレイアウトは、pyubx2 ライブラリ(BSD-3-Clause、SEC-SIG-V1 と SEC-SIG-V2)に転記された、より新しい u-blox インターフェース記述のものです。tests/receiver_trust_self_report.rs のフィクスチャテストはこのレイアウトから作成したものであり、実際の受信機の出力から作成したものではありません。このレイアウトは公開されている転記によるもので、現行のベンダーガイドとの照合は行っていません。SEC-SIG に依拠する前に、現行の u-blox インターフェース記述と照合してください。

SEC-SIG には週内時刻がなく、現在の航法エポックに属します。あるエポックですでに読み取られた状態は、後のものがより悪い場合を除いて保持されます。

receiver-self-report の比較#

ログにこれらのフラグがある場合、結果のすべてのエポックに self_report(二つの状態、受信機がフラグを立てているか、Kshana のいずれかのモニターが警報を出したか、および agreement:both、receiver-only、kshana-only、neither、または calibrating)があり、結果には件数と各最初のエポックを示す receiver_self_report があります。受信機は状態が 2 以上のときに「フラグを立てた」とみなします。これは警報を出さず、スコアも変更しません。また、どちらの側も正解ではありません。一致は検証ではなく、不一致は一方の検出器が他方の検出しなかったものを検出したことを意味するだけで、どちらが正しかったかについては何も示しません。Studio のストリップは epochs[].self_report を読み取ります。

Septentrio SBF(format = "sbf")#

receiver_trust::ingest::read_sbf は sbf-tools クレート(0.4、MIT。唯一の依存先は thiserror。deny.toml が許可する寛容なライセンス)でデコードされます。読み取るブロックは、フィックス用の PVTGeodetic(4007)、衛星と信号ごとの C/N0 用の MeasEpoch(4027。band は信号の名前で、たとえば L1CA)、および Info バイトが ゼロでない RF バンドの数用の RFStatus(4092。rf_bands_reported。記録のみで、解釈はしません。フラグとして数えられることはありません)です。エポックは週内時刻と週番号をキーとし、GPS 時刻(2024-09-05T00:00:00.000 GPST)で表示されます。CRC またはパースに失敗したブロックは、スキップしたレコードとして数えられます。このリーダーは AGC やジャミング指標を読み取らないため、C/N0 低下モニターとロックロスモニターは動作しますが、AGC モニターとジャミング指標モニターは動作しません。

レイアウトの出典。本書執筆時には Septentrio のリファレンスガイドをダウンロードできなかった(サーバーが要求を拒否した)ため、レイアウトはガイドを引用している sbf-tools のソースから取得しました。tests/receiver_trust_sbf.rs のフィクスチャは、そのレイアウトと CRC-16-CCITT に従って作成した合成ブロックです。実際の SBF ログは使用していません。このレイアウトはオープンソースのクレートによるもので、現行のベンダーガイドとの照合は行っていません。依拠する前に、Septentrio のリファレンスガイドと照合してください。

シリアルおよび USB の直接入力(receiver-trust live --serial)#

kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]

Unix のみ。デバイスを読み取り用に開き、ローカル側の回線を --baud(既定は 4800、NMEA 0183 の速度)の rawモードに設定し、他のソースと同様に NMEA 行を読み取ります。受信機には一切書き込みません。--configure は説明付きで拒否されます。Kshana は受信機を設定しません。メーカー自身のツールで受信機が NMEA を出力するように設定してから、それを読み取ってください。フィードは、すべての live ソースと同様に NMEA です(UBX と SBF はファイルから読み取ります)。デバイスが消えると、コマンドは障害として終了し(終了コード 1)、スーパーバイザーによる再起動を待ちます。このレイヤーは再接続しません。疑似端末のループバック(tests/receiver_trust_live_serial.rs)でテスト済みで、マスター側がコマンドから 一バイトも受信しないことも確認しています。