python 中 RTCM 消息的二进制解析 [已关闭]

binary parsing for RTCM msg in python [closed]

提问人:Fakir 提问时间:7/17/2020 更新时间:10/9/2020 访问量:458

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

3年前关闭。

想要解析 RTCM 二进制数据。使用 ublox gps 接收器。查找 RTCM 起始字节 D3,通过使用

if buffer[i] == 0xd3 

但似乎它不匹配,根本没有进入循环。我测试了

if buffer[i] == b'xd3'  

但它也不起作用。

在 powershell 提示符 (anaconda) 中测试以检查如下:

>>> bin_Str = b'\x24\x47\x50\xd3'
>>> bin_Str
b'$GP\xd3'
>>> bin_Str[3] == 0xd3
True

所以,似乎它应该与0xd3相匹配。我已经检查了日志。二进制数据中有 D3。谁能帮忙?将不胜感激。

Python 解析 二进制 GPS

评论

0赞 Martijn Pieters 10/9/2020
b'xd3'不是单个字节。它是 3 个字节,来自 ASCII 字符 和 .您想要的(2 位十六进制数字之前的反斜杠和组合是单个字节的有效十六进制转义序列)。并不是说将其进行比较是行得通的,因为在对象中,单个元素实际上是整数。然而,我们在这里无能为力,因为我们没有什么可继续的。xd3b'\xd3'xbuffer[i]bytesbuffer
0赞 Fakir 12/8/2020
感谢您的回复,很抱歉这么晚了。这实际上存在一个基本问题。我应该阅读的二进制文件被更改了 - 这不是我认为我正在阅读的内容。成立后,它解决了问题。但无论如何,谢谢。我敢肯定,将来会有所帮助。转换会带来一些难以检测的问题。

答: 暂无答案