RTCM 协议数据简易解析

源码

import tkinter.filedialog
import numpy as np
import matplotlib.pyplot as plt
import struct
import string
import re
#import crc as CRCfr=tkinter.filedialog.askopenfilename(title='选择一个文件',filetypes=[('所有文件','.*'),('文本文件','.txt')])fd = open(fr,'rb')
rtcm_data = fd.read()msg_numb = []
msg_len = []
def Rtcm_Msg_ID(pack):msg_id = pack[3]msg_id = (msg_id << 4) ^ (pack[4] >> 4)#print(msg_id)msg_numb.append(msg_id)#print(msg_numb)pack_len_temp = pack[1] & 0x03pack_len_temp = (pack_len_temp << 8) ^ pack[2]msg_len.append(pack_len_temp)def msg_id_get(msg):msg_temp = msg_numbmsg_id = list(set(msg_temp))print(msg_id)msg_len_temp = msg_lenmsg_len_temp = list(set(msg_len_temp))print(msg_len_temp)class Bit:def __init__(self,bit_t):self.bit_step = bit_tdef get_bit(self,bit,data,data_len):data_temp = 0bit_temp = bitdata_t = list(data)for i in range(bit_temp) :data_temp <<= 1data_temp = data_temp | (data[self.bit_step // 8] >> ( 7 - (self.bit_step % 8)) & 0x01)self.bit_step += 1if self.bit_step // 8 > data_len:return 0 return data_tempdef Get_Bit_test():pack = Bit(0)data = [0xF1,0x11,0x22,0x33]data_t0 = pack.get_bit(4,data,4)print(data_t0)data_t0 = pack.get_bit(5,data,4)print(data_t0)data_t0 = pack.get_bit(7,data,4)print(data_t0)data_t0 = pack.get_bit(8,data,4)print(data_t0)def pack_1006(pack,pack_len):bit_1006 = Bit(0)pack_temp = pack[3:]print('RTCM' +' '+ str(bit_1006.get_bit(12,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(12,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(6,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(38,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(1,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(38,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(2,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(38,pack_temp,pack_len))+' '+ str(bit_1006.get_bit(16,pack_temp,pack_len)))
def pack_1008(pack,pack_len):bit_1008 = Bit(0)pack_temp = pack[3:]n = 0m = 0print('RTCM' +' '+ str(bit_1008.get_bit(12,pack_temp,pack_len))+' '+ str(bit_1008.get_bit(12,pack_temp,pack_len))#+' '+ str(n = bit_1008.get_bit(8,pack_temp,pack_len))+' '+ str(bit_1008.get_bit(8 * n,pack_temp,pack_len))+' '+ str(bit_1008.get_bit(8,pack_temp,pack_len))#+' '+ str(m = bit_1008.get_bit(8,pack_temp,pack_len))+' '+ str(bit_1008.get_bit(8 * m,pack_temp,pack_len)))def pack_1074(pack,pack_len):bit_1074 = Bit(0)pack_temp = pack[3:]def pack_1084(pack,pack_len):bit_1084 = Bit(0)pack_temp = pack[3:]def pack_1124(pack,pack_len):bit_1124 = Bit(0)pack_temp = pack[3:]def pack_1013(pack,pack_len):bit_1013 = Bit(0)pack_temp = pack[3:]def pack_1032(pack,pack_len):bit_1032 = Bit(0)pack_temp = pack[3:]def pack_1033(pack,pack_len):bit_1033 = Bit(0)pack_temp = pack[3:]def default(pack,pack_len):msg_id = pack[3]msg_id = (msg_id << 4) ^ (pack[4] >> 4)print('no msg' + str(msg_id))RTCM_Msg = {1006:pack_1006,1008:pack_1008,1074:pack_1074,1084:pack_1084,1124:pack_1124,1013:pack_1013,1032:pack_1032,1033:pack_1033}def RTCM_Msg_Proccess(pack,pack_len):msg_id = pack[3]msg_id = (msg_id << 4) ^ (pack[4] >> 4)#fu = RTCM_Msg[msg_id]fu = RTCM_Msg.get(msg_id,default)#if(NONE != fu):fu(pack,pack_len)#print('msg_ok!')#print(fu)def Data_process():rtcm_package_buf = []pack_len_temp = 0;pack_len = 0for data in rtcm_data:rtcm_package_buf.append(data)pack_len += 1if rtcm_package_buf[0] != 0xD3:rtcm_package_buf.clear()pack_len = 0;else :if pack_len > 2:pack_len_temp = rtcm_package_buf[1] & 0x03pack_len_temp = (pack_len_temp << 8) ^ rtcm_package_buf[2]if pack_len_temp + 6 == pack_len:#Rtcm_Msg_ID(rtcm_package_buf)RTCM_Msg_Proccess(rtcm_package_buf,pack_len)rtcm_package_buf.clear()pack_len = 0pack_len_temp = 0Data_process()

RTCM 协议数据解析相关推荐

  1. pelco-d协议数据解析示例

    pelco-d协议数据解析示例 2014-08-14 21:57 286人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 程序编程(12) 作者同类文章X 代码工人的仓库(36) 作者同类文章 ...

  2. 一个通用网络协议数据解析

    1.网络数据解析 我们在实际应用中,网络数据解析是非常常见的一种数据处理方式,那么有没有比较通用的数据解析处理方法呢,以下是个人总结的一种网络数据解析处理方法 2.数据包格式 图1-1是一个比较通用的 ...

  3. C# 串口操作系列(4) -- 协议篇,文本协议数据解析 .

    上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾.即: 协议头 + 数据 + 校验 + ...

  4. C# 串口操作系列(4) -- 协议篇,文本协议数据解析

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuyazhe/archive/2010/06/09/5657188.aspx 上一篇已经介绍了协议的组成,一个协议,一 ...

  5. C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuyazhe/archive/2010/05/27/5627253.aspx 我们的串口程序,除了通用的,进行串口监听 ...

  6. 协议数据的发送与解析

    协议数据的发送与解析 对于C,C++等语言而言,我们常见各种各样的基本数据类型,比如char,int,float,double等等.为了回顾一一下具体的数据类型,下面我们看下面的一张表来回顾一下. 类 ...

  7. python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  8. GPS使用记录NMEA数据解析、RTK定位以及ntrip协议

    目录 1. 概述 2. 泰斗GPS定位模组 3. RTK GPS定位 4. ntrip协议 5. 千寻 1. 概述 本文主要是记录下GPS相关的内容.最开始叫做<泰斗GPS使用记录>,那时 ...

  9. 压电式雨量传感器RS485数据解析协议

    压电式雨量传感器产品概述 传感器由上盖.外壳和下盖组成,壳体内部有压电片和电路板,可以固定在外径50mm立柱上和气象站横杆上.传感器采用冲击测量原理对单个雨滴重量进行测算,进而计算降雨量.雨滴在降落过 ...

  10. MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)

    文章目录 一.MQTT协议 二.协议详解 2.1 协议结构 2.1.1 固定报头 2.1.2 可变报头 2.1.3 有效载荷 三.具体协议报文详解 3.1 连接服务器报文详解 3.2 发布消息报文详解 ...

最新文章

  1. 天草脱壳视频学习笔记
  2. 滴滴算法大赛算法解决过程 - 机器学习
  3. Dubbo 源码分析 - 集群容错之Directory
  4. .NET静态类的概念
  5. SendMessage 循环按1 到6 F1到F8_2
  6. Qt工作笔记-Qt5新版信号与槽
  7. 如何在不使用try语句的情况下查看文件是否存在
  8. mysql 数据备份方案_MySQL常见备份方案
  9. DB2数据库常用指令以及重要知识点学习
  10. html速成按钮样式,前端技巧集:从零制作华丽的按钮CSS样式
  11. CentOS 停服!我们有哪些顶流的国产操作系统
  12. 基于爬取百合网的数据,用matplotlib生成图表
  13. 乒乓球拍行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. Tipask目录结构
  15. 版本管理-SVN冲突爆红后如何通过颜色和快捷键准确无误地合并代码(一)
  16. edu教育邮箱免费申请注册Google drive无限网盘和微软OneDrive经验分享
  17. 使用virt-manager管理虚拟机
  18. C# 及excel中【总体方差】、【样本方差】的计算公式
  19. 文物3D模型互动展示 | 足不出户,即可领略九龙壁的美轮美奂
  20. [纵横网络靶场社区]MMS协议分析

热门文章

  1. javaScript入门
  2. Hello World 我的第一个VB程序
  3. 使用ActivityGroup管理Activity
  4. 解析.db文件,并且导出为sql语句
  5. coolfire文章之二
  6. Windows 10官方镜像下载教程
  7. 腾讯悄悄发布 Linux QQ,版本 2.0 Beta
  8. 恒生电子笔试题数据库及算法整理记录
  9. 应用系统适配迁移方案
  10. 集体智慧编程(5)——优化