Septentrio接收机二进制的BDS b2b改正数解码

Galileo的HAS和BDS B2b改正数为实时PPP提供了可能,要实现实时PPP解算,必须对对应的数据进行解码。由于没有做过解码的工作,现结合qzsl6tool代码对Septentrio的解码代码进行学习。

1. 二进制帧头的识别和解码

定义一个读取数据的类,通过传递文件名进行数据读取,并通过帧头去提取独立数据帧:

 

2. 二进制帧体的识别和解码

上述代码读取数据后,将984 symbols的数据存储到nav_bits中,并进一步转换到self.b2b中。

根据北斗ICD的定义,b2b数据帧一共1000 symbols(下图),而代码里处理了984,应该是接收机用自己的数据帧头替换了ICD数据帧中的同步头(Pre) 16 symbols。

而原始的16个字节内容为:0xEB90

帧内容的解码就和博文“Galileo HAS, BDS B2b PPP 数据解码软件及使用”中的说明一致 了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要从Septentrio设备获取位置信息,你需要使用Septentrio提供的开发工具包(例如Polaris或PolNino)来与设备进行通信和数据解析。以下是一个使用Septentrio开发工具包获取位置信息的示例代码: ```cpp #include <iostream> #include <string> #include <septentrio/communication_library.h> int main() { std::string deviceIp = "192.168.1.1"; // 设备的IP地址 int devicePort = 1234; // 设备的端口号 // 创建通信库实例 CommunicationLibrary commLib; // 连接到设备 if (!commLib.Connect(deviceIp, devicePort)) { std::cerr << "无法连接到Septentrio设备" << std::endl; return -1; } // 设置需要获取的数据类型 commLib.SetDataType(DataType::POS); // 获取位置信息 // 开始接收数据 if (!commLib.StartReceiving()) { std::cerr << "无法开始接收数据" << std::endl; commLib.Disconnect(); return -1; } // 读取位置信息 while (true) { if (commLib.WaitForData()) { DataType dataType = commLib.GetDataType(); if (dataType == DataType::POS) { PositionData posData = commLib.GetPositionData(); // 在这里处理位置信息 std::cout << "位置信息:" << posData.latitude << ", " << posData.longitude << std::endl; } } } // 停止接收数据并断开连接 commLib.StopReceiving(); commLib.Disconnect(); return 0; } ``` 在上述示例中,我们使用了Septentrio提供的通信库,并创建了一个CommunicationLibrary对象实例。然后,我们使用Connect函数连接到Septentrio设备,指定设备的IP地址和端口号。 接下来,我们使用SetDataType函数设置需要获取的数据类型为POS(位置信息)。然后,使用StartReceiving函数开始接收数据。 在一个循环中,我们使用WaitForData函数等待数据的到达。一旦有数据到达,我们使用GetDataType函数获取数据类型,如果是POS类型,则使用GetPositionData函数获取位置信息,并在此处进行处理。 最后,使用StopReceiving函数停止接收数据,并使用Disconnect函数断开与设备的连接。 请注意,以上示例仅演示了如何使用Septentrio开发工具包来获取位置信息。实际上,你需要根据Septentrio设备和开发工具包的要求进行配置和调整代码。确保你已经正确安装了所需的开发工具包,并按照其文档提供的接口进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值