Protocoles de récepteur lus par receiver-trust (0,38)
En lecture seule, partout : rien ici n'écrit un octet vers un récepteur, et il n'existe aucun chemin d'émission d'aucune sorte. Logiciel à titre consultatif, et non un équipement de navigation homologué (IEC 61108, IEC 61162) : l'opérateur reste responsable.
Les indicateurs de leurrage et de brouillage propres au récepteur (UBX)#
| message | champ | lu comme |
|---|---|---|
| UBX-NAV-STATUS (0x01 0x03), 16 octets | octet flags2 au décalage 7, bits 4..3 : spoofDetState |
0 inconnu ou désactivé, 1 aucun leurrage indiqué, 2 leurrage indiqué, 3 indications multiples de leurrage (protocole 18 et suivants ; description d'interface u-blox F9 HPG 1,32, section 3.15.20) |
| UBX-SEC-SIG (0x27 0x09) version 1, 12 octets | jamFlags à 4 (bit 0 jamDetEnabled, bits 2..1 jammingState) ; spfFlags à 8 (bit 0 spfDetEnabled, bits 3..1 spoofingState) |
les états ne sont lus que là où le détecteur est activé ; 0 inconnu, 1 aucun, 2 avertissement ou indiqué, 3 critique ou affirmé |
| UBX-SEC-SIG version 2 | sigSecFlags à 1 (bit 0 jamDetEnabled, bits 2..1 jammingState, bit 3 spfDetEnabled, bits 6..4 spoofingState) ; jamNumCentFreqs à 3 et autant de groupes de 4 octets (non utilisés) |
comme ci-dessus |
Source de la disposition SEC-SIG. Les descriptions d'interface u-blox F9 HPG 1,32 et M10 SPG 5,10 qui ont pu être téléchargées lors de la rédaction nomment UBX-SEC-SIG mais ne la définissent pas. Les dispositions ci-dessus sont celles des descriptions d'interface u-blox ultérieures, telles que transcrites dans la bibliothèque pyubx2 (BSD-3-Clause, SEC-SIG-V1 et SEC-SIG-V2) ; les tests de jeux d'essai de tests/receiver_trust_self_report.rs sont construits à partir de cette disposition, non à partir de la sortie d'un véritable récepteur. Disposition issue d'une transcription ouverte, non vérifiée par rapport au guide actuel du fabricant : vérifiez-la par rapport à la description d'interface u-blox actuelle avant de vous fier à SEC-SIG.
Un SEC-SIG n'a pas de temps de semaine ; il appartient à l'époque de navigation courante. Un état déjà lu à une époque est conservé, sauf si un état ultérieur est pire.
La comparaison receiver-self-report#
Lorsqu'un journal porte ces indicateurs, chaque époque du résultat a self_report (les deux états, si le récepteur signale, si un moniteur de Kshana a alarmé, et agreement : both, receiver-only, kshana-only, neither ou calibrating), et le résultat a receiver_self_report avec les décomptes et la première époque de chacun. Le récepteur « signale » à partir d'un état de 2. Cela ne déclenche aucune alarme et ne change aucun score, et aucun des deux côtés n'est la vérité terrain : l'accord n'est pas une validation, et un désaccord dit seulement qu'un détecteur a vu quelque chose que l'autre n'a pas vu, rien sur celui qui avait raison. La bande de Studio lit epochs[].self_report.
Septentrio SBF (format = "sbf")#
receiver_trust::ingest::read_sbf décode avec la bibliothèque sbf-tools (0,4, MIT ; sa seule dépendance est thiserror ; une licence permissive que deny.toml autorise). Blocs lus : PVTGeodetic (4007) pour la position, MeasEpoch (4027) pour le C/N0 par satellite et par signal (band est le nom du signal, tel que L1CA), et RFStatus (4092) pour le nombre de bandes RF dont l'octet Info est non nul (rf_bands_reported, transmis et non interprété : il ne compte jamais comme un indicateur). Les époques sont indexées par temps de semaine et numéro de semaine et étiquetées en temps GPS (2024-09-05T00:00:00.000 GPST). Un bloc qui échoue à son CRC ou à son analyse compte comme un enregistrement ignoré. Ce lecteur ne lit ni l'AGC ni un indicateur de brouillage, de sorte que les moniteurs de chute de C/N0 et de perte de verrouillage s'exécutent, mais pas ceux de l'AGC et de l'indicateur de brouillage.
Source des dispositions. Le guide de référence de Septentrio n'a pas pu être téléchargé lors de la rédaction (le serveur a refusé la requête), de sorte que les dispositions ont été tirées de la source de sbf-tools, qui cite le guide, et que les jeux d'essai de tests/receiver_trust_sbf.rs sont des blocs synthétiques construits selon cette disposition et son CRC-16-CCITT. Aucun véritable journal SBF n'a été utilisé. Disposition issue de la crate ouverte, non vérifiée par rapport au guide actuel du fabricant : vérifiez-la par rapport au guide de référence de Septentrio avant de vous y fier.
Entrée directe série et USB (receiver-trust live --serial)#
kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]
Unix uniquement. Il ouvre le périphérique en lecture, règle la ligne locale en mode brut à --baud (par défaut 4800, le débit NMEA 0183) et lit des lignes NMEA comme toute autre source. Il n'écrit jamais vers le récepteur. --configure est refusé avec une explication : Kshana ne configure pas les récepteurs ; réglez le récepteur pour qu'il émette du NMEA avec l'outil propre au fabricant, puis lisez-le. Le flux est du NMEA, comme pour chaque source live (l'UBX et le SBF sont lus depuis des fichiers). Un périphérique qui disparaît met fin à la commande comme un défaut (sortie 1), pour qu'un superviseur la relance ; la couche ne se reconnecte pas. Testé sur un bouclage par pseudo-terminal (tests/receiver_trust_live_serial.rs), y compris le fait que le côté maître ne reçoit aucun octet de la commande.