• GPS Intermediate Driver

自从 Windows Mobile 5.0 引进了 GPS Intermediate DriverGPS 中间驱动程序,以下简称 GPSID),开发基于 GPSGlobal Positioning System,全球定位系统)的 Windows Mobile 应用程序变得简单多了。原因是它在开发人员编写的应用程序和 GPS 设备之间加入了一个中间层,使开发人员不需要通过串口直接访问 GPS 设备,而是访问 GPSID 提供的 API 函数,GPSID 再去访问 GPS 设备。这样一来,编写出来的 GPS 应用程序具有设备无关性。另外,GPSID 还有下面两个好处:

  1. 多个应用程序可以同时访问同一个 GPS 设备,因为你访问的是 GPSID
  2. 不需要去解析 NMEA 命令,GPSID 帮你解析好了

关于 GPSID 的详细介绍请参阅 GPS Intermediate Driver Reference,还可以观看张汝颇的 Windows Mobile 轻松接轨GPS Webcast,在本文不会展开讨论。

这次 Windows Mobile 6 SDK 提供的 Fake GPS GPS Settings 这两个针对 GPSID 开发和使用的辅助工具,基于 .NET Compact Framework 1.0 编写,所以适用于 Windows Mobile 5.0。在 C:/Program Files/Windows Mobile 6 SDK/Tools/GPS 目录下可以找到这两个小工具。

  • Fake GPS

如果你想开发一个运行在 Windows Mobile 系统的 GPS 应用程序,但是找不到 GPS 设备用来调试,或者你在室内调试程序,GPS 设备接收不到卫星信号,那 Fake GPS 正是你急需的工具了。

GPSID 的所有设置信息都保存在注册表中,可以通过修改注册表来更改 GPSID 的设置。其中有个一个设置,可以让 GPSID 从一个包含 NMEA 命令的 .txt 文件读取 GPS 数据,而不需要从 GPS 设备读取数据。这个在张汝颇的 Windows Mobile 轻松接轨GPS 中也有介绍。Fake GPS 的工作原理就是修改注册表的 GPSID 设备,让 GPSID 从一个文本文件读取 GPS 数据。而对于我们开发的应用程序来说,跟访问真实的设备并没有两样。

在使用 Fake GPS 之前需要将它安装到你 Windows Mobile 设备上或者仿真器上,安装文件是 FakeGPS.CAB。这里我把 Fake GPS 安装到 Windows Mobile 6 Standard 的仿真器里。安装成功后在开始菜单中找到它并运行。

Fake GPS 的设置默认没有生效,我们可以在第一个输入框把它的状态改为 Enabled,现在可以在第二个输入框中选择从哪个文件读取 GPS 数据。Fake GPS 默认带了两个测试文件,fakegpsdata.txt 在打开后会让 GPSID 马上接收到位置信息,而 dixies.txt 需要等待一段时间才能接收到位置信息。

如果你想使用自己的测试数据,可以将编写好的 .txt 文件复制到 /Program Files/FakeGPS/GPSFiles 目录下,在重新运行 Fake GPS 就可以在 NMEA File 列表中看到了。

下面有一段 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 目录下可以找到这个示例。

Fake GPS-Window Mobile提供的模拟GPS工具相关推荐

  1. Android系统中模拟GPS位置,Android系统中模拟GPS位置

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Android系统中提供了模拟GPS坐标的功能,可以很方便的帮助我们测试不同地理位置下应用中各个功能效果. 模拟器中模拟 ...

  2. STM32模拟GPS输出PPS、GPRMC与VLP16时钟同步

    这里写目录标题 1.VLP16与GPS相关的管脚: 2.利用GPS信息完成时间同步 TimeSynchronization 3.查找同步关系 4.修改ROS代码 结论 1.VLP16与GPS相关的管脚 ...

  3. android 模拟gps坐标,1020. Android GPS定位欺骗(模拟定位)的3类途径4种方式

    前段时间发布的手游PokemonGo相信大家都有耳闻,而因为这个游戏在国内的坐标遭到了封锁,很多科学游戏方法也陆续涌现.好不热闹. 那其实,PokemonGo最初的版本,在大陆是可以通过简单的vpn+ ...

  4. android 生成kml,Android模拟GPS数据生成kml和nmea文件

    在Android平台上开发可能没有真机的时候,我们通过DDMS中载入kml或nmea文件来模拟生产数据,使用方法参考 新版ADT插件让Android开发更人性化 一文,最终这两个文件加载到/data/ ...

  5. Matlab Mobile手机版获取gps数据和加速度信号融合

    Matlab Mobile手机版获取gps数据和加速度信号融合 前言 安装matlab mobile Matlab Drive Connector 安装 Matlab Mobile 记录数据 Matl ...

  6. ROS中在gazebo中模拟GPS数据

    前面的文章写过了在robot_pose_ekf中添加GPS的方法,但是GPS在gazebo中使用会有两个问题: 1.GPS使用需要经过UTM包进行坐标转换,转换完成之后会出现一个GPS坐标很大的问题, ...

  7. android nmea 工具,Android模拟GPS数据生成kml和nmea文件

    [IT168 技术文档]在Android平台上开发可能没有真机的时候,我们通过DDMS中载入KML或NMEA文件来模拟生产数据,使用方法参考新版ADT插件让Android开发更人性化一文,最终这两个文 ...

  8. Android模拟器上模拟GPS

    开发时需要在模拟器上模拟GPS,可在Location的时候总是null,上网查了一下,发现如下解决: 网上大侠的解决方案: 在模拟器上获取GPS信息时,使用Location loc = Locatio ...

  9. 在Android模拟器上怎样模拟GPS功能

    我们都知道,在我们开发时需要在模拟器上模拟GPS,可在Location的时候总是null,上网查了一下,发现如下解决:  网上大侠的解决方案:  在模拟器上获取GPS信息时,使用Location lo ...

最新文章

  1. 深入剖析Java即时编译器(上)
  2. C语言之typedef详解
  3. 服务器监控软件ZABBIX
  4. 并发编程-18AQS同步组件之 CyclicBarrier 同步屏障
  5. 【知识星球】颜值,自拍,美学三大任务简介和数据集下载
  6. Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...
  7. image 闪烁 c# ajax updatepanel,Why doesn't asp:UpdatePanel refresh an Image?
  8. python 安卓模拟器电脑版_【夜神安卓模拟器电脑版】夜神安卓模拟器电脑版 V6.6.0.6免费版官方免费下载_正式版下载-多特软件站...
  9. SQL Server含逗号分隔的数据匹配维表
  10. filter IE滤镜(Internet Explorer)CSS
  11. 推荐一个字体工具:Fontmin
  12. 计算机内加减法的溢出处理
  13. 关于HTML转word小记
  14. 图书整理系统(1)-创建图书分类文件夹
  15. Java练习题之循环输出数字图形。例如1 22 333 4444 55555每输出一种数字换行。
  16. 数据挖掘与商业智能理论
  17. Web前端从开始到入门(2)
  18. iOS开发中设置UITableView每组头试图与第一行cell之间的分割线
  19. Attempted read from closed stream
  20. 英语口语笔记B1-Unit7.交通出行-04-Train travel in Europe

热门文章

  1. 阿里云边缘计算及边缘云的技术演进、场景实践与学术探索
  2. Spring中的bean是什么?
  3. 【Python】爬虫面试总结分享
  4. # 技术-202111-《并发编程的艺术》阅读笔记
  5. 西门子精智面板实现画面返回功能
  6. 复杂户型图处理(外轮廓颜色) — 20180718-20180721
  7. bzoj 1567: [JSOI2008]Blue Mary的战役地图 二维哈希
  8. resize函数了解
  9. Ubuntu Server系统安装及远程登录
  10. 免费学习网站-----资源共享