机器翻译,未经母语人士审校。以英文版为准。

接收机信任度与海事在GitHub上编辑来源:docs/RECEIVER-PROTOCOLS.md

receiver-trust读取的接收机协议(0.38)

全程只读:这里没有任何内容会向接收机写入一个字节,也不存在任何形式的发送路径。仅供参考的软件,不是经型式认可的导航设备(IEC 61108、IEC 61162):操作人员仍须负责。

接收机自身的欺骗干扰(spoofing)和压制干扰(jamming)标志(UBX)#

消息 字段 解读为
UBX-NAV-STATUS(0x01 0x03),16字节 偏移7处的flags2字节,第4..3位:spoofDetState 0未知或已停用,1未指示欺骗干扰,2指示有欺骗干扰,3多次指示欺骗干扰(协议18及以后;u-blox F9 HPG 1.32接口说明,第3.15.20节)
UBX-SEC-SIG(0x27 0x09)版本1,12字节 偏移4处的jamFlags(第0位jamDetEnabled,第2..1位jammingState);偏移8处的spfFlags(第0位spfDetEnabled,第3..1位spoofingState) 仅在检测器已启用时才读取状态;0未知,1无,2警告或已指示,3严重或已确认
UBX-SEC-SIG版本2 偏移1处的sigSecFlags(第0位jamDetEnabled,第2..1位jammingState,第3位spfDetEnabled,第6..4位spoofingState);偏移3处的jamNumCentFreqs及相应数量的4字节组(未使用) 同上

SEC-SIG布局的来源。撰写本文时可下载到的u-blox F9 HPG 1.32和M10 SPG 5.10接口说明中提到了UBX-SEC-SIG,但并未定义它。上述布局取自后来的u-blox接口说明,依据的是pyubx2库(BSD-3-Clause,SEC-SIG-V1和SEC-SIG-V2)中的转录;tests/receiver_trust_self_report.rs中的测试夹具依据该布局构建,而不是来自真实接收机的输出。该布局来自开放转录,未对照现行的厂商指南核对:在依赖SEC-SIG之前,请对照现行的u-blox接口说明核对。

SEC-SIG没有周内时;它属于当前导航历元。某个历元上已读取的状态会保留,除非后来的状态更差。

receiver-self-report对比#

日志带有这些标志时,结果的每个历元都有self_report(两种状态、接收机是否置标志、是否有任何Kshana监测器报警,以及agreement:both、receiver-only、kshana-only、neither或calibrating),结果还有带计数和各自首个历元的receiver_self_report。接收机在状态为2或更高时视为置标志。它不触发任何报警,也不改变任何评分,而且双方都不是真值:一致并不等于验证,不一致只表明一个检测器看到了另一个没看到的东西,并不说明哪一方正确。Studio中的条带读取epochs[].self_report。

Septentrio SBF(format = "sbf")#

receiver_trust::ingest::read_sbf用sbf-tools crate解码(0.4,MIT;其唯一依赖是thiserror;这是deny.toml所允许的宽松许可)。读取的数据块:用于定位的PVTGeodetic(4007)、用于每颗卫星每个信号C/N0的MeasEpoch(4027)(band是信号名称,如L1CA),以及用于Info字节非零的射频频段数(rf_bands_reported,仅记录而不作解读:它绝不计为标志)的RFStatus(4092)。历元以周内时和周数为键,并按GPS时标注(2024-09-05T00:00:00.000 GPST)。CRC校验或解析失败的数据块计为被跳过的记录。该读取器不读取AGC或压制干扰指示,因此C/N0下降和失锁监测器会运行,而AGC和压制干扰指示监测器不运行。

布局的来源。撰写本文时无法下载Septentrio的参考指南(服务器拒绝了请求),因此布局取自sbf-tools源码(其中引用了该指南),而tests/receiver_trust_sbf.rs中的测试夹具是按该布局及其CRC-16-CCITT构建的合成数据块。未使用任何真实的SBF日志。该布局来自开源crate,未对照现行的厂商指南核对:依赖之前请对照Septentrio的参考指南核对。

直接串口与USB输入(receiver-trust live --serial)#

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

仅限Unix。它以只读方式打开设备,将本地线路设为原始模式,速率为--baud(默认4800,即NMEA 0183的速率),并像读取其他来源一样读取NMEA行。它从不向接收机写入。--configure会被拒绝并给出说明:Kshana不配置接收机;请用厂商自己的工具让接收机输出NMEA,然后再读取。与每个live来源一样,数据馈入是NMEA(UBX和SBF从文件读取)。设备消失时命令作为故障结束(退出码1),交由监管进程重启;该层不会重新连接。已在伪终端回环上测试(tests/receiver_trust_live_serial.rs),包括主端不会从该命令收到任何字节。