python-3.x - 通过 NTRIP 接收 RTCM 数据但无法翻译机器码
问题描述
我编写了一个 python 脚本,用于从NTRIP 服务器 (RTK)发送和接收数据。但我不知道如何翻译机器代码。
例如我得到这个:
b'3E\r\n\xd3\x008?]\x0c\xe5^;\x834I\x0c\xa0\x01Hy\x00\nDh\x00Q\xf6\xc0\x19\x10&\x00\xc8~\xb0%\ x83\xfd\x00\x19\x1f\xf8\x00\xc9\x00@\x06H\r\x01,@x\tb\x05@2\x10\x17\x19@\xbaU\xca\r\n'
我试图用ascii
, utf8
,来解码它latin1
。
pwd = base64.b64encode("{}:{}".format(username, password).encode('ascii'))
pwd = pwd.decode('ascii')
try:
print("Header sending... \n")
header = \
"GET /{} HTTP/1.1\r\n".format(mountpoint) + \
"Host \r\n".format(server) + \
"Ntrip-Version: Ntrip/2.0\r\n" + \
"User-Agent: ntrip.py/0.1\r\n" + \
"Connection: close\r\n" + \
"Authorization: Basic {}\r\n\r\n".format(pwd)
dummyHeader = \
"Ntrip-GGA: {}\r\n".format(dummyNMEA)
print(dummyHeader)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((server, int(port)))
s.send(header.encode('ascii'))
print("Waiting answer...\n")
data = s.recv(2048).decode('ascii')
print(data)
for i in range (0, 10):
s.send(dummyHeader.encode('ascii'))
data = s.recv(1024)
print(data)
s.close()
解决方案
RTCM 是一种二进制格式。它不能被解码成文本。如果您想读取流中的消息,您将需要一个二进制解析器。但 RTK 定位的正常用例是将未经修改的 RTCM 流传递给您的 GNSS 接收器。
推荐阅读
- ios - Azure AD B2C 令牌端点返回范围斜杠
- reactjs - 如何将函数传递给不相关的组件
- c# - 如何使用 DIAPI C# 从 SAP B1 Add On 中删除销售订单行数据
- node.js - Mongoose 错误无法连接到服务器 [locahost:27017]
- python - 在这种情况下,如何在 python 中使用线程池
- json - Go JSON 解码错误行为是如何工作的?
- android - 解析soapfault错误代码和错误信息android
- tensorflow - 在 Keras 中检索预测值
- javascript - 无法以角度 7 导出 excel (xlsm) - 使用弹簧引导后端
- c# - 无法使用 https 下载 excel 文件