Protocolos de receptor que lee receiver-trust (0,38)
Solo lectura, en todo momento: nada de esto escribe un solo byte en un receptor y no existe ninguna ruta de transmisión de ningún tipo. Software de carácter consultivo, no un equipo de navegación homologado (IEC 61108, IEC 61162): el operador sigue siendo responsable.
Los indicadores propios del receptor sobre spoofing y jamming (UBX)#
| mensaje | campo | se lee como |
|---|---|---|
| UBX-NAV-STATUS (0x01 0x03), 16 bytes | byte flags2 en el desplazamiento 7, bits 4..3: spoofDetState |
0 desconocido o desactivado, 1 sin indicación de spoofing, 2 spoofing indicado, 3 múltiples indicaciones de spoofing (protocolo 18 y posteriores; descripción de interfaz de u-blox F9 HPG 1,32, sección 3.15.20) |
| UBX-SEC-SIG (0x27 0x09) versión 1, 12 bytes | jamFlags en 4 (bit 0 jamDetEnabled, bits 2..1 jammingState); spfFlags en 8 (bit 0 spfDetEnabled, bits 3..1 spoofingState) |
los estados se leen solo donde el detector está activado; 0 desconocido, 1 ninguno, 2 aviso o indicado, 3 crítico o afirmado |
| UBX-SEC-SIG versión 2 | sigSecFlags en 1 (bit 0 jamDetEnabled, bits 2..1 jammingState, bit 3 spfDetEnabled, bits 6..4 spoofingState); jamNumCentFreqs en 3 y ese número de grupos de 4 bytes (no se usan) |
como arriba |
Fuente del formato de SEC-SIG. Las descripciones de interfaz de u-blox F9 HPG 1,32 y M10 SPG 5,10 que se pudieron descargar al escribir esto nombran UBX-SEC-SIG pero no lo definen. Los formatos anteriores son los de descripciones de interfaz posteriores de u-blox, tal como se transcriben en la biblioteca pyubx2 (BSD-3-Clause, SEC-SIG-V1 y SEC-SIG-V2); las pruebas con datos de prueba de tests/receiver_trust_self_report.rs se construyen a partir de ese formato, no de la salida de un receptor real. Formato obtenido de una transcripción abierta, no comprobado frente a la guía vigente del fabricante: compruébelo frente a la descripción de interfaz vigente de u-blox antes de confiar en SEC-SIG.
Un SEC-SIG no tiene tiempo de semana; pertenece a la época de navegación en curso. Un estado ya leído en una época se conserva salvo que uno posterior sea peor.
La comparación receiver-self-report#
Cuando un registro lleva estos indicadores, cada época del resultado tiene self_report (los dos estados, si el receptor señala, si alguno de los monitores de Kshana dio alarma y agreement: both, receiver-only, kshana-only, neither o calibrating), y el resultado tiene receiver_self_report con los recuentos y la primera época de cada uno. El receptor «señala» con un estado de 2 o más. No da ninguna alarma y no cambia ninguna puntuación, y ninguno de los dos lados es la verdad de referencia: la concordancia no es validación, y una discrepancia indica que un detector vio algo que el otro no, sin decir nada sobre cuál tenía razón. La franja de Studio lee epochs[].self_report.
Septentrio SBF (format = "sbf")#
receiver_trust::ingest::read_sbf decodifica con el crate sbf-tools (0,4, MIT; su única dependencia es thiserror; una licencia permisiva que deny.toml admite). Bloques leídos: PVTGeodetic (4007) para la solución, MeasEpoch (4027) para el C/N0 por satélite y señal (band es el nombre de la señal, como L1CA) y RFStatus (4092) para el número de bandas de RF cuyo byte Info no es cero (rf_bands_reported, transportado y no interpretado: nunca cuenta como indicador). Las épocas se indexan por tiempo de semana y número de semana y se etiquetan en tiempo GPS (2024-09-05T00:00:00.000 GPST). Un bloque que falla su CRC o su análisis cuenta como registro omitido. Este lector no lee el AGC ni un indicador de jamming, de modo que los monitores de caída de C/N0 y de pérdida de enganche se ejecutan y los monitores de AGC y de indicador de jamming no.
Fuente de los formatos. La guía de referencia de Septentrio no se pudo descargar al escribir esto (el servidor rechazó la solicitud), de modo que los formatos se tomaron del código fuente de sbf-tools, que cita la guía, y los datos de prueba de tests/receiver_trust_sbf.rs son bloques sintéticos construidos con ese formato y su CRC-16-CCITT. No se usó ningún registro SBF real. Formato obtenido del crate de código abierto, no comprobado frente a la guía vigente del fabricante: compruébelo frente a la guía de referencia de Septentrio antes de confiar en él.
Entrada directa por serie y USB (receiver-trust live --serial)#
kshana receiver-trust live session.toml --serial /dev/ttyUSB0 --baud 4800 [--gate ...]
Solo Unix. Abre el dispositivo para lectura, pone la línea local en modo sin procesar a --baud (por defecto 4800, la velocidad de NMEA 0183) y lee líneas NMEA como cualquier otra fuente. Nunca escribe en el receptor. --configure se rechaza con una explicación: Kshana no configura receptores; configure el receptor para que emita NMEA con la herramienta del propio fabricante y después léalo. La alimentación es NMEA, como en toda fuente de live (UBX y SBF se leen de archivos). Un dispositivo que desaparece termina el comando como un fallo (salida 1), para que lo reinicie un supervisor; la capa no se reconecta. Probado sobre un bucle de pseudoterminal (tests/receiver_trust_live_serial.rs), incluido que el lado maestro no recibe ningún byte del comando.