Windows Mobile 6 SDK 中的 GPS 工具
GPS Intermediate Driver

自从 Windows Mobile 5.0 引进了 GPS Intermediate Driver(GPS 中间驱动程序,以下简称 GPSID),开发基于 GPS(Global 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 目录下可以找到这个示例。

参考:
What's New for Developers in Windows Mobile 6
GPS Intermediate Driver Reference
posted on 2007-02-15 23:09 黎波 阅读(4903) 评论(7)  编辑  收藏 所属分类: Mobile Tools
-->Feedback

#1楼
2007-02-20 20:46 | JesseZhao
windows mobiles 系统看着后舒服,现在真后悔没有买一个多普达的手机啦

回复  引用  查看     #2楼 [楼主]
2007-02-20 21:30 | Bob Li
@JesseZhao
现在买也不迟,Windows Mobile 5.0的Smartphone大概2000左右。
我自己用多普达596的Smartphone。
  回复  引用  查看     #3楼
2007-03-18 11:43 | spirit_only [未注册用户]
@Bob Li
不知道那个Windows CE 6.0中有没有GPS Intermediate Driver这个东东。

在那里可以找到一些CE 6.0的技术文档?
  回复  引用  查看     #4楼 [楼主]
2007-03-18 12:10 | Bob Li
@spirit_only
我没有用过CE6,不确定有没有包含GPSID这个组件。
印象中是没有,WM5和WM6才提供。
  回复  引用  查看     #5楼 [TrackBack]
2007-03-19 17:13 | appleseeker
下载下列资源:在下列文章中提供下载地址: http://www.cnblogs.com/upto/archive/2007/03/02/download-wm6-sdks.html Windo...
[引用提示]appleseeker引用了该文章, 地址: http://www.cnblogs.com/appleseeker/archive/2007/03/19/680078.html
  回复  引用  查看     #6楼
2007-08-15 14:39 | huizhiguang [未注册用户]
FakeGPS.cab 怎样安装进WM仿真器里面啊?谢谢
  回复  引用  查看     #7楼
2007-08-15 15:56 | 黎波 [未注册用户]
@huizhiguang
可以设置仿真器的共享目录,使得仿真器可以访问桌面电脑的一个目录,然后在仿真器中通过存储卡(Storage Card)访问共享目录。 只要把FakeGPS.cab放到那个共享目录,仿真器就可以访问到,并安装了。
  回复  引用  查看

转载于:https://www.cnblogs.com/googlegis/archive/2008/11/28/2979151.html

Windows Mobile 6 SDK 中的 GPS 工具相关推荐

  1. Windows Mobile 5.0 中为开发人员提供的新功能(3)

    Windows Mobile 5.0 中为开发人员提供的新功能(3) Pocket Outlook 增强功能 Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM.将 Poc ...

  2. linux和Windows平台 android sdk 中build tools 区别

    在linux和Windows平台上,gradle wrapper和gradle依赖的jar 都是不区分平台的 ├── gradle │ └── wrapper │ ├── gradle-wrapper ...

  3. 【深度学习】【caffe实用工具6】笔记28 windows下SSD网络中的convert_annoset工具的使用

    /*************************************************************************************************** ...

  4. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x

    收集整理一些Windows Mobile 6.x开发相关文章, 文章及相关代码大部分搜集自网络,版权属于原作者! 智能手机      手机词汇      研发手机基本流程 WAP协议分析(1)     ...

  5. Windows Mobile 6 中为开发人员提供的新功能(1)

    Windows Mobile 6 中为开发人员提供的新功能(1) 2007年06月10日 星期日 10:29 Jim Wilson,JW Hedgehog, Inc. 摘要 Windows Mobil ...

  6. Fake GPS-Window Mobile提供的模拟GPS工具

    GPS Intermediate Driver 自从 Windows Mobile 5.0 引进了 GPS Intermediate Driver(GPS 中间驱动程序,以下简称 GPSID),开发基 ...

  7. Windows Mobile 中 Cellular Emulator 与 Device Emulator 连接不上的解决办法?

     想使用模拟器测试GPRS连通性的操作,可是Cellular Emulator 和 Device Emulator怎么样都连接不通.关于Cellular Emulator 和 Device Emula ...

  8. Pocket 2003,Windows Mobile 5,Windows Mobile 6的部分区别

    1 . GPS 的支持:         WinCE 4.2在应用程序中获取GPS 设备返回的信息,要求这些应用程序使用串行 API 直接打开 GPS 设备.该技术产生了两个问题.首先,通过串行 AP ...

  9. Ring Tone Manager on Windows Mobile

    2019独角兽企业重金招聘Python工程师标准>>> 手机铃声经常能够体现一个人的个性,有些哥们儿在自习室不把手机设置成震动,一来电就@#$^%^@&^%#$&$* ...

最新文章

  1. python unicodedecodeerror utf8_python-pip install和UnicodeDecodeError:’utf-8’编...
  2. GraLSP | 考虑局部结构模式的GNN
  3. 网站最令人讨厌的几个用户体验
  4. jQuery 中jQuery/$的数据类型是什么?
  5. 北大青鸟s2结业考试机试_重庆北大青鸟「学员心声」任何一次的考试,都是一次珍贵的蜕变...
  6. u3d游戏开发视频潭州_游戏美术行业的发展与应用人工智能学院专业介绍及未来前景系列报告会二...
  7. 云原生人物志|华为云CTO张宇昕:云原生已经进入深水区
  8. Win11系统如何设置黑暗模式
  9. 关于微信浏览器H5 React,Vue工程化项目input无法自动聚焦疑难杂症排查
  10. blender 3d打印_如何在Blender中开始3D打印
  11. python getattr_深入浅出Python模块
  12. 地图结合资料 提供全新网络服务
  13. iOS 极光推送:This application or a bundle it contains has the same bundle identifier as this applicatio
  14. C# ComBox 垂直滚动条
  15. 怎样杀计算机病毒,如何彻底查杀计算机病毒
  16. 基于51单片机的交通灯原理图加代码
  17. rplidar适配说明
  18. 微信开放平台与微信公众平台的支付关系
  19. Delta对冲:实际波动率 VS 隐含波动率
  20. 面试——路径、转发与重定向的区别

热门文章

  1. AutoCAD在指定布局中如何隐藏指定的图形?
  2. 银行业用户井喷式发展——解密巨杉数据库为何收获银行用户青睐
  3. ue4 unreal NDisplay插件 简易使用 三折幕 详细...
  4. laydate时间控件 (开始日期、结束日期)
  5. 大二上,计组原理笔记(2)2.2 机器数的定浮点表示
  6. 一对一直播源码开发,一对一视频直播解决方案新思路
  7. 2014 【第五届蓝桥杯校内选拔赛】 C/C++ B组
  8. android9 0正式版,安卓9.0系统正式版|Android Pie 9.0 正式版 - 天天游戏吧
  9. w10计算机怎么恢复出厂设置路由器,win10无线路由器设置步骤图_win10重置路由器后怎么设置...
  10. 小知识:软件开发的权限控制和权限验证