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 数据解码软件及使用”中的说明一致 了。