Protokoly přijímačů čtené modulem receiver-trust (0,38)
Všude pouze čtení: nic zde nezapisuje do přijímače ani bajt a neexistuje žádná cesta pro vysílání. Software pouze poradního charakteru, nikoli typově schválené navigační zařízení (IEC 61108, IEC 61162): odpovědný zůstává provozovatel.
Vlastní příznaky přijímače pro spoofing a rušení (UBX)#
| zpráva | pole | čteno jako |
|---|---|---|
| UBX-NAV-STATUS (0x01 0x03), 16 bajtů | bajt flags2 na posunu 7, bity 4..3: spoofDetState |
0 neznámé nebo deaktivováno, 1 spoofing neindikován, 2 spoofing indikován, 3 více indikací spoofingu (protokol 18 a novější; popis rozhraní u-blox F9 HPG 1,32, oddíl 3.15.20) |
| UBX-SEC-SIG (0x27 0x09) verze 1, 12 bajtů | jamFlags na 4 (bit 0 jamDetEnabled, bity 2..1 jammingState); spfFlags na 8 (bit 0 spfDetEnabled, bity 3..1 spoofingState) |
stavy se čtou jen tam, kde je detektor zapnut; 0 neznámý, 1 žádný, 2 varování nebo indikováno, 3 kritický nebo potvrzeno |
| UBX-SEC-SIG verze 2 | sigSecFlags na 1 (bit 0 jamDetEnabled, bity 2..1 jammingState, bit 3 spfDetEnabled, bity 6..4 spoofingState); jamNumCentFreqs na 3 a tolik 4bajtových skupin (nepoužívá se) |
jako výše |
Zdroj rozložení SEC-SIG. Popisy rozhraní u-blox F9 HPG 1,32 a M10 SPG 5,10, které bylo možné stáhnout v době psaní, UBX-SEC-SIG jmenují, ale nedefinují. Výše uvedená rozložení jsou ta z pozdějších popisů rozhraní u-blox, jak byla přepsána v knihovně pyubx2 (BSD-3-Clause, SEC-SIG-V1 a SEC-SIG-V2); testy fixture v tests/receiver_trust_self_report.rs jsou postaveny na tomto rozložení, nikoli na výstupu skutečného přijímače. Rozložení z otevřeného přepisu, nezkontrolované proti aktuální příručce výrobce: před spoléháním na SEC-SIG je zkontrolujte proti aktuálnímu popisu rozhraní u-blox.
SEC-SIG nemá čas v týdnu; patří k aktuální navigační epoše. Stav již přečtený v dané epoše se ponechá, pokud pozdější není horší.
Srovnání receiver-self-report#
Kde záznam tyto příznaky nese, má každá epocha výsledku self_report (oba stavy, zda přijímač označuje, zda spustil poplach některý monitor Kshany a agreement: both, receiver-only, kshana-only, neither nebo calibrating) a výsledek má receiver_self_report s počty a první epochou každého. Přijímač „označuje“ při stavu 2 nebo vyšším. Nevyvolává žádný poplach a nemění žádné skóre a žádná ze stran není pravdou: shoda není validace a neshoda říká, že jeden detektor něco viděl a druhý ne, nic o tom, který měl pravdu. Pás ve Studiu čte epochs[].self_report.
Septentrio SBF (format = "sbf")#
receiver_trust::ingest::read_sbf dekóduje pomocí crate sbf-tools (0,4, MIT; její jedinou závislostí je thiserror; permisivní licence, kterou deny.toml povoluje). Čtené bloky: PVTGeodetic (4007) pro určení polohy, MeasEpoch (4027) pro C/N0 na družici a signál (band je název signálu, například L1CA) a RFStatus (4092) pro počet RF pásem, jejichž bajt Info je nenulový (rf_bands_reported, přenášeno a neinterpretováno: nikdy se nepočítá jako příznak). Epochy jsou klíčovány časem v týdnu a číslem týdne a označeny v čase GPS (2024-09-05T00:00:00.000 GPST). Blok, který selže v CRC nebo zpracování, se počítá jako přeskočený záznam. Tato čtečka nečte AGC ani indikátor rušení, takže monitory poklesu C/N0 a ztráty zámku běží a monitory AGC a indikátoru rušení neběží.
Zdroj rozložení. Referenční příručku Septentrio nebylo možné v době psaní stáhnout (server požadavek odmítl), proto byla rozložení převzata ze zdroje sbf-tools, který příručku cituje, a fixture v tests/receiver_trust_sbf.rs jsou syntetické bloky sestavené podle tohoto rozložení a jeho CRC-16-CCITT. Nebyl použit žádný skutečný záznam SBF. Rozložení z open-source crate, nezkontrolované proti aktuální příručce výrobce: před spoléháním na ně je zkontrolujte proti referenční příručce Septentrio.
Přímý sériový vstup a vstup USB (receiver-trust live --serial)#
kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]
Pouze Unix. Otevře zařízení pro čtení, nastaví místní linku do surového režimu na --baud (výchozí 4800, rychlost NMEA 0183) a čte řádky NMEA jako každý jiný zdroj. Nikdy nic do přijímače nezapisuje. --configure je odmítnuto s vysvětlením: Kshana přijímače nekonfiguruje; nastavte přijímač na výstup NMEA vlastním nástrojem výrobce a poté jej čtěte. Vstupem je NMEA, jako u každého zdroje live (UBX a SBF se čtou ze souborů). Zařízení, které zmizí, ukončí příkaz jako závadu (výstup 1), aby jej supervizor znovu spustil; vrstva se znovu nepřipojuje. Testováno na smyčce pseudoterminálu (tests/receiver_trust_live_serial.rs), včetně toho, že hlavní strana od příkazu nepřijme ani bajt.