求助GPS数据用NMEA解析时出现问题

求助GPS数据用NMEA解析时出现问题,第1张

下面有一段 NMEA 数据可供测试:

$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21

$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E

$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77

$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42

$GPGSV,3,3,9,134,0,0,0*46

$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21

$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75

$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21

$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E

$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A

这里我选择了 fakegpsdata.txt 作为测试数据。点击 done 按钮保存设置并关闭 Fake GPS。然后运行我前段时间编写的一个坐标采集工具 Smart GPS Tracker,它是基于 Windows Mobile 5.0 GPSID 编写的,效果如下:

到此为止,我核橘没有用到一台真实的设备。Fake GPS 适用于 Pocket PC 和 Smartphone 两种 *** 作系统,它会自适应。

GPS Settings

在 Windows Mobile 5.0 和 Windows Mobile 6 的 Pocket PC 版 *** 作系统中自带了一碰磨个 GPSID 的配置程序,笑氏斗在 Windows Mobile 6 Professional 中可以通过选择“Start-->Settings-->System-->External GPS”打开。

而 Smartphone 版的 *** 作系统中并没有自带类似的 GPSID 配置程序,这为开发 Smartphone 上的 GPS 应用程序带了一些不便。我是自己写了一个,其实也不难,就是读/写几个注册表的键值。

Windows Mobile 6 SDK 中提供了一个叫 GPS Settings 的工具,用于在 Smartphone 的 *** 作系统配置 GPSID,功能跟 Pocket PC 上的一样。在 C:\Program Files\Windows Mobile 6 SDK\Tools\GPS 目录下找到 Settings.exe,并将它复制到 Smartphone 上运行。

关于 GPSID 如何设置,这里不展开了,如果你感兴趣可以看我上面推荐的学习资料。

总结

GPS Intermediate Driver 为我们开发 GPS 应用程序带来了很多好处,而 Windows Mobile 6 SDK 中提供的 Fake GPS 和 GPS Settings 这两个小工具,弥补了 Windows Mobile 5.0 SDK 中的空缺,使得开发基于 GPSID 的应用程序更加方便。如果你对这两个工具的工作原理感兴趣,可以自己用 Reflector 打开它们的程序集,好好研究一番,不明白的地方可以查 SDK 的帮助。另外,Windows Mobile 6 SDK 自带了一个 GPSID 示例的完整项目代码,对于理解 GPSID 的工作原理很有帮助,并且它的代码具有很高的重用价值,在 D:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS 目录下可以找到这个示例。

GPS模块只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送单片机中,在没有进一步处理之前,传送的数据是一长串字节流信息。因此必须经过程序将其转化为有实际意义的;可供高层决策使用的定位信息数据。与其他通信协议类似,GPS模块都遵循NMEA-0183协议。NMEA-0183的数据信息有十几种,这些信息的作用分别是源饥:$GPGGA:输出GPS的定位雹伍返信息;$GPGSA:输出卫星DOP值信息;$GPGSV:输出可见的卫星信息;$GPRMC:输出最小数据量的GPS信息;$GPVTG:地面速度信息;$GPGLL:输出大地坐标信息;$GPZDA:输出UTC时间信息;$GPGST:输出定位标准差信息;$GPALM:输出卫星星历信息;通过串口输出NMEA-0183协议格式的数据,解析获得下述信息:

◆定位:提供经度、纬度、高度(海拔)橘猜信息;

◆授时:提供精确UTC时间,闰秒修正预报;提供日期信息;

◆其他:提供速度,航向(运动方向)信息;

◆卫星信息:如PRN,SNR,仰角,方位角等;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12259513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存