Maskinöversättning, inte granskad av en modersmålstalare. Engelska är referensen.

Mottagarförtroende och sjöfartRedigera på GitHubKälla: docs/RECEIVER-PROTOCOLS.md

Mottagarprotokoll som receiver-trust läser (0,38)

Endast läsning, genomgående: ingenting här skriver en enda byte till en mottagare, och det finns ingen sändningsväg av något slag. Rådgivande programvara, inte typgodkänd navigationsutrustning (IEC 61108, IEC 61162): operatören är fortsatt ansvarig.

Mottagarens egna flaggor för spoofing och jamming (UBX)#

meddelande fält läses som
UBX-NAV-STATUS (0x01 0x03), 16 bytes flags2-byte vid offset 7, bitarna 4..3: spoofDetState 0 okänd eller avaktiverad, 1 ingen spoofing indikerad, 2 spoofing indikerad, 3 flera indikationer på spoofing (protokoll 18 och senare; gränssnittsbeskrivningen för u-blox F9 HPG 1,32, avsnitt 3.15.20)
UBX-SEC-SIG (0x27 0x09) version 1, 12 bytes jamFlags vid 4 (bit 0 jamDetEnabled, bitarna 2..1 jammingState); spfFlags vid 8 (bit 0 spfDetEnabled, bitarna 3..1 spoofingState) tillstånden läses bara där detektorn är aktiverad; 0 okänd, 1 ingen, 2 varning eller indikerad, 3 kritisk eller bekräftad
UBX-SEC-SIG version 2 sigSecFlags vid 1 (bit 0 jamDetEnabled, bitarna 2..1 jammingState, bit 3 spfDetEnabled, bitarna 6..4 spoofingState); jamNumCentFreqs vid 3 och lika många grupper om 4 bytes (används inte) som ovan

Källa till SEC-SIG-layouten. Gränssnittsbeskrivningarna för u-blox F9 HPG 1,32 och M10 SPG 5,10 som gick att ladda ned när detta skrevs nämner UBX-SEC-SIG men definierar det inte. Layouterna ovan är de från de senare gränssnittsbeskrivningarna för u-blox, så som de är avskrivna i biblioteket pyubx2 (BSD-3-Clause, SEC-SIG-V1 och SEC-SIG-V2); testerna med testdata i tests/receiver_trust_self_report.rs är byggda utifrån den layouten, inte utifrån en verklig mottagares utdata. Layouten kommer från en öppen avskrift och är inte kontrollerad mot tillverkarens aktuella guide: kontrollera den mot den aktuella gränssnittsbeskrivningen för u-blox innan du förlitar dig på SEC-SIG.

En SEC-SIG har ingen veckotid; den hör till den aktuella navigeringsepoken. Ett tillstånd som redan lästs vid en epok behålls om inte ett senare är sämre.

Jämförelsen receiver-self-report#

Där en logg bär dessa flaggor har varje epok i resultatet self_report (de två tillstånden, om mottagaren flaggar, om någon Kshana-övervakare larmade och agreement: both, receiver-only, kshana-only, neither eller calibrating), och resultatet har receiver_self_report med antalen och den första epoken för var och en. Mottagaren "flaggar" vid ett tillstånd på 2 eller mer. Den ger inget larm och ändrar ingen poäng, och ingen av sidorna är sanning: samsyn är inte validering, och en avvikelse säger att en detektor såg något som den andra inte såg, ingenting om vilken som hade rätt. Studios remsa läser epochs[].self_report.

Septentrio SBF (format = "sbf")#

receiver_trust::ingest::read_sbf avkodas med craten sbf-tools (0,4, MIT; dess enda beroende är thiserror; en tillåtande licens som deny.toml medger). Block som läses: PVTGeodetic (4007) för positionsbestämningen, MeasEpoch (4027) för C/N0 per satellit och signal (band är signalens namn, till exempel L1CA) och RFStatus (4092) för antalet RF-band vars Info-byte inte är noll (rf_bands_reported, medföljer och tolkas inte: det räknas aldrig som en flagga). Epoker nycklas på veckotid och veckonummer och märks i GPS-tid (2024-09-05T00:00:00.000 GPST). Ett block som misslyckas med sin CRC eller tolkning räknas som en överhoppad post. Den här läsaren läser inte AGC eller någon jamming-indikator, så övervakarna för C/N0-fall och förlorad låsning körs medan övervakarna för AGC och jamming-indikator inte körs.

Källa till layouterna. Septentrios referensguide gick inte att ladda ned när detta skrevs (servern avvisade begäran), så layouterna hämtades ur källkoden för sbf-tools, som hänvisar till guiden, och testdata i tests/receiver_trust_sbf.rs är syntetiska block byggda efter den layouten och dess CRC-16-CCITT. Ingen verklig SBF-logg användes. Layouten kommer från den öppna craten och är inte kontrollerad mot tillverkarens aktuella guide: kontrollera mot Septentrios referensguide innan du förlitar dig på den.

Direkt indata via serieport och USB (receiver-trust live --serial)#

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

Endast Unix. Den öppnar enheten för läsning, ställer den lokala linjen i råläge vid --baud (standard 4800, hastigheten för NMEA 0183) och läser NMEA-rader som vilken annan källa som helst. Den skriver aldrig till mottagaren. --configure avvisas med en förklaring: Kshana konfigurerar inte mottagare; ställ in mottagaren på att mata ut NMEA med tillverkarens eget verktyg och läs den sedan. Flödet är NMEA, som för varje live-källa (UBX och SBF läses från filer). En enhet som försvinner avslutar kommandot som ett fel (avslutskod 1), för att en övervakare ska starta om det; lagret återansluter inte. Testad på en loopback med pseudoterminal (tests/receiver_trust_live_serial.rs), inklusive att huvudsidan inte tar emot någon byte från kommandot.