HOLUX M1200-E 蓝牙GPS轨迹记录器的历史轨迹数据读取

HOLUX M1200-E 蓝牙GPS轨迹记录器的历史轨迹数据读取

图片太烂上传了   原Word文件下载地址 点击打开链接http://download.csdn.net/download/cp459584547/9950331

 

这篇博客不要讲述如何读取GPS 设备的历史轨迹数据与兴趣点数据。如何解析GPS设备接收的实时数据,就多说了,网上有很多,一搜一大堆

硬件环境:HOLUX M1200-E

开发语言:C#

抓取数据的思路来源,首先通过官方客户端HOLUX ezTour for Logger连接设备,然后使用AccessPort137串口抓包工具抓取 客户端在读取GPS设备轨迹数据时发送的一些命令,首先然我们预览一下这些命令

前面的一些命令都没有用,直到$PMTK182,2,8*33

询问RCD地址,就是 当前设备的下一个数据将要记录到的地址,设备回答

$PMTK182,3,8,000508D4*63,该回答表示 设备当前已经记录了有508D4(16进制)这么多个字节的数据了

然后我们接下来要做的就是 调用命令把这所有的字节全部读取出来,读取设备数据的命令是

表示 从地址0 开始读取,读取直接长度为(8000H)个字节,这个官方程序分批次读取数据的效果,当然我为了省事直接把所有数据一次性读完 那么命令 就是$PMTK182,7,0, 508D4*(异或校验位),这样想设备发送一次命令之后 设备就会给我返回一大堆16进制的字符串了,那么 我们需要的历史轨迹数据在哪里呢,

经过小弟一番研究之后发现,历史轨迹数据就在这些16进制的字符串字符之中,当中项连续的AAAAA、FFFFF BBBBB 等这些都是坏数据,不知道设备存放的是些什么。但是有一个 规律 那就是  这些有用的数据是以20个字节为单位存放一个GPS坐标点信息的,整理之后如下

其中 有484F4C55584D31323030574159504E5420202020这样的字符串出现了很多次,研究一番之后这就是几个字母的ASCII 码 翻译过来就是HOLUXWAYPNT, 兴趣点的意思了,那么剩下了那些数组 就是历史轨迹了,一个点20个字节, 前三个数据字节是时间-经度-纬度-【】-【】,后两个没研究出来。有朋友发现规律之后请告诉我!

比如FF217859,需要倒过来597821FF 然后转换为10进制1501045247就是一个时间戳,在转换为时间就是

E693F441就是Float数据存储的16进制形式,转换一下就行了,

后两个没研究出来,怎么解析

就这样 就能把GPS设备的全部轨迹数据读取出来了。

其中需要注意的是,这些数据并不是整齐排列的 每次开关设备都会产生很多辣鸡坏数据。用hexOnly.Split(newstring[] { "BBBBBBBBAAAAAAAAAAAAAA0702010000BBBBBBBB","FFFFFFFF2ABFBBBBBBBB" },StringSplitOptions.RemoveEmptyEntries); 炸开之后 每个数组分40个字符串一次解析 然后 判断 经纬度是否在中国范围内,基本上就不会出错了。

 

附图

HOLUX ezTour for Logger 官方程序读取的轨迹数据

红色的 就是兴趣点,放大之后

 

我的程序 读取出来的轨迹 和兴趣点

 

源代码?原理都贴出来了,代码就自己写吧,如果你真的懒到不想写又真的需要源代码的话,我相信你 能找到我的邮箱的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值