Ontvangerprotocollen die receiver-trust leest (0,38)
Overal alleen lezen: niets hier schrijft een byte naar een ontvanger en er bestaat geen enkel zendpad. Adviserende software, geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162): de exploitant blijft verantwoordelijk.
De eigen spoofing- en jammingvlaggen van de ontvanger (UBX)#
| bericht | veld | gelezen als |
|---|---|---|
| UBX-NAV-STATUS (0x01 0x03), 16 bytes | byte flags2 op offset 7, bits 4..3: spoofDetState |
0 onbekend of gedeactiveerd, 1 geen spoofing aangegeven, 2 spoofing aangegeven, 3 meerdere aanwijzingen voor spoofing (protocol 18 en later; interfacebeschrijving van u-blox F9 HPG 1,32, sectie 3.15.20) |
| UBX-SEC-SIG (0x27 0x09) versie 1, 12 bytes | jamFlags op 4 (bit 0 jamDetEnabled, bits 2..1 jammingState); spfFlags op 8 (bit 0 spfDetEnabled, bits 3..1 spoofingState) |
toestanden worden alleen gelezen waar de detector is ingeschakeld; 0 onbekend, 1 geen, 2 waarschuwing of aangegeven, 3 kritiek of bevestigd |
| UBX-SEC-SIG versie 2 | sigSecFlags op 1 (bit 0 jamDetEnabled, bits 2..1 jammingState, bit 3 spfDetEnabled, bits 6..4 spoofingState); jamNumCentFreqs op 3 en zoveel groepen van 4 bytes (niet gebruikt) |
zoals hierboven |
Bron van de SEC-SIG-indeling. De interfacebeschrijvingen van u-blox F9 HPG 1,32 en M10 SPG 5,10 die konden worden gedownload toen dit werd geschreven, noemen UBX-SEC-SIG maar definiëren het niet. De indelingen hierboven zijn die van de latere interfacebeschrijvingen van u-blox zoals getranscribeerd in de bibliotheek pyubx2 (BSD-3-Clause, SEC-SIG-V1 en SEC-SIG-V2); de fixturetests in tests/receiver_trust_self_report.rs zijn uit die indeling opgebouwd, niet uit de uitvoer van een echte ontvanger. Indeling uit een open transcriptie, niet gecontroleerd aan de actuele gids van de fabrikant: controleer haar aan de actuele interfacebeschrijving van u-blox voordat u op SEC-SIG vertrouwt.
Een SEC-SIG heeft geen tijd van de week; het hoort bij de huidige navigatie-epoche. Een toestand die al in een epoche is gelezen blijft behouden, tenzij een latere slechter is.
De vergelijking receiver-self-report#
Waar een logboek deze vlaggen bevat, heeft elke epoche van het resultaat self_report (de twee toestanden, of de ontvanger vlagt, of een monitor van Kshana alarm sloeg, en agreement: both, receiver-only, kshana-only, neither of calibrating), en heeft het resultaat receiver_self_report met de aantallen en de eerste epoche van elk. De ontvanger "vlagt" bij een toestand van 2 of hoger. Het geeft geen alarm en wijzigt geen score, en geen van beide kanten is de referentie: overeenstemming is geen validatie, en een verschil zegt dat de ene detector iets zag wat de andere niet zag, niets over welke gelijk had. De strook van Studio leest epochs[].self_report.
Septentrio SBF (format = "sbf")#
receiver_trust::ingest::read_sbf decodeert met de crate sbf-tools (0,4, MIT; de enige afhankelijkheid is thiserror; een permissieve licentie die deny.toml toestaat). Gelezen blokken: PVTGeodetic (4007) voor de positiebepaling, MeasEpoch (4027) voor C/N0 per satelliet en signaal (band is de naam van het signaal, zoals L1CA), en RFStatus (4092) voor het aantal RF-banden waarvan de byte Info niet nul is (rf_bands_reported, meegedragen en niet geïnterpreteerd: het telt nooit als vlag). Epochen worden gesleuteld op tijd van de week en weeknummer en gelabeld in GPS-tijd (2024-09-05T00:00:00.000 GPST). Een blok dat zijn CRC of parse niet doorstaat telt als een overgeslagen record. Deze lezer leest geen AGC of jammingindicator, dus de monitors voor C/N0-daling en verlies van lock draaien en de monitors voor AGC en jammingindicator niet.
Bron van de indelingen. De referentiegids van Septentrio kon niet worden gedownload toen dit werd geschreven (de server weigerde het verzoek), dus de indelingen zijn overgenomen uit de bron van sbf-tools, die de gids aanhaalt, en de fixtures in tests/receiver_trust_sbf.rs zijn synthetische blokken die volgens die indeling en haar CRC-16-CCITT zijn gebouwd. Er is geen echt SBF-logboek gebruikt. Indeling uit de opensource-crate, niet gecontroleerd aan de actuele gids van de fabrikant: controleer aan de referentiegids van Septentrio voordat u erop vertrouwt.
Directe seriële en USB-invoer (receiver-trust live --serial)#
kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]
Alleen Unix. Het opent het apparaat om te lezen, zet de lokale lijn in rawmodus op --baud (standaard 4800, de NMEA-snelheid van 0183) en leest NMEA-regels zoals elke andere bron. Het schrijft nooit naar de ontvanger. --configure wordt met een uitleg geweigerd: Kshana configureert geen ontvangers; stel de ontvanger in om NMEA uit te voeren met het eigen hulpmiddel van de fabrikant en lees het dan. De invoer is NMEA, zoals voor elke bron van live (UBX en SBF worden uit bestanden gelezen). Een apparaat dat verdwijnt beëindigt de opdracht als storing (exit 1), zodat een supervisor die kan herstarten; de laag maakt niet opnieuw verbinding. Getest op een pseudo-terminal-loopback (tests/receiver_trust_live_serial.rs), inclusief dat de masterzijde geen byte van de opdracht ontvangt.