Mottakerprotokoller lest av receiver-trust (0,38)
Bare lesing, hele veien: ingenting her skriver en byte til en mottaker, og det finnes ingen sendevei av noe slag. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig.
Mottakerens egne flagg for spoofing og jamming (UBX)#
| melding | felt | tolkes som |
|---|---|---|
| UBX-NAV-STATUS (0x01 0x03), 16 bytes | Byten flags2 ved offset 7, bit 4..3: spoofDetState |
0 ukjent eller deaktivert, 1 ingen spoofing angitt, 2 spoofing angitt, 3 flere spoofing-indikasjoner (protokoll 18 og senere; grensesnittbeskrivelse for u-blox F9 HPG 1,32, avsnitt 3.15.20) |
| UBX-SEC-SIG (0x27 0x09) versjon 1, 12 bytes | jamFlags ved 4 (bit 0 jamDetEnabled, bit 2..1 jammingState); spfFlags ved 8 (bit 0 spfDetEnabled, bit 3..1 spoofingState) |
tilstander leses bare der detektoren er aktivert; 0 ukjent, 1 ingen, 2 advarsel eller indikert, 3 kritisk eller bekreftet |
| UBX-SEC-SIG versjon 2 | sigSecFlags ved 1 (bit 0 jamDetEnabled, bit 2..1 jammingState, bit 3 spfDetEnabled, bit 6..4 spoofingState); jamNumCentFreqs ved 3 og like mange grupper på 4 bytes (ikke brukt) |
som ovenfor |
Kilde for SEC-SIG-oppsettet. Grensesnittbeskrivelsene for u-blox F9 HPG 1,32 og M10 SPG 5,10 som kunne lastes ned da dette ble skrevet, nevner UBX-SEC-SIG, men definerer den ikke. Oppsettene ovenfor er de fra de senere grensesnittbeskrivelsene fra u-blox slik de er gjengitt i biblioteket pyubx2 (BSD-3-Clause, SEC-SIG-V1 og SEC-SIG-V2); testene med testdata i tests/receiver_trust_self_report.rs er bygget fra dette oppsettet, ikke fra utdata fra en virkelig mottaker. Oppsett fra åpen gjengivelse, ikke kontrollert mot den gjeldende produsentveiledningen: kontroller det mot den gjeldende grensesnittbeskrivelsen fra u-blox før du stoler på SEC-SIG.
En SEC-SIG har ingen ukestid; den hører til den gjeldende navigasjonsepoken. En tilstand som allerede er lest for en epoke, beholdes med mindre en senere er verre.
Sammenligningen receiver-self-report#
Der en logg har disse flaggene, har hver epoke i resultatet self_report (de to tilstandene, om mottakeren flagger, om noen Kshana-monitor slo alarm, og agreement: both, receiver-only, kshana-only, neither eller calibrating), og resultatet har receiver_self_report med tellingene og den første epoken for hver. Mottakeren «flagger» ved en tilstand på 2 eller mer. Den utløser ingen alarm og endrer ingen score, og ingen av sidene er fasit: enighet er ikke validering, og uenighet sier bare at den ene detektoren så noe den andre ikke så, ikke noe om hvem som hadde rett. Studios stripe leser epochs[].self_report.
Septentrio SBF (format = "sbf")#
receiver_trust::ingest::read_sbf dekodes med craten sbf-tools (0,4, MIT; den eneste avhengigheten er thiserror; en permissiv lisens som deny.toml tillater). Blokker som leses: PVTGeodetic (4007) for posisjonsbestemmelsen, MeasEpoch (4027) for C/N0 per satellitt og signal (band er signalets navn, for eksempel L1CA), og RFStatus (4092) for antallet RF-bånd der Info-byten er ulik null (rf_bands_reported, medtatt og ikke tolket: den teller aldri som et flagg). Epoker identifiseres med ukestid og ukenummer og merkes i GPS-tid (2024-09-05T00:00:00.000 GPST). En blokk som feiler CRC eller parsing, teller som en hoppet over post. Denne leseren leser ikke AGC eller en jamming-indikator, så monitorene for C/N0-fall og tap av lås kjører, mens monitorene for AGC og jamming-indikator ikke gjør det.
Kilde for oppsettene. Septentrios referanseveiledning kunne ikke lastes ned da dette ble skrevet (serveren avslo forespørselen), så oppsettene er hentet fra kilden til sbf-tools, som viser til veiledningen, og testdataene i tests/receiver_trust_sbf.rs er syntetiske blokker bygget etter dette oppsettet og dets CRC-16-CCITT. Ingen virkelig SBF-logg ble brukt. Oppsett fra den åpne kildekode-craten, ikke kontrollert mot den gjeldende produsentveiledningen: kontroller mot Septentrios referanseveiledning før du stoler på det.
Direkte seriell og USB-inngang (receiver-trust live --serial)#
kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]
Bare Unix. Den åpner enheten for lesing, setter den lokale linjen i rå modus med --baud (standard 4800, NMEA 0183-hastigheten), og leser NMEA-linjer som fra enhver annen kilde. Den skriver aldri til mottakeren. --configure avvises med en forklaring: Kshana konfigurerer ikke mottakere; sett mottakeren til å sende NMEA med produsentens eget verktøy, og les den deretter. Strømmen er NMEA, som for hver live-kilde (UBX og SBF leses fra filer). En enhet som forsvinner, avslutter kommandoen som en feil (avslutningskode 1), slik at en overvåker kan starte den på nytt; laget kobler ikke til på nytt. Testet på en pseudoterminal-sløyfe (tests/receiver_trust_live_serial.rs), blant annet at master-siden ikke mottar noen byte fra kommandoen.