有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题

     新的项目是一个移动服务平台,在手机的WM6.1下运行.其中有个需求是获取GPS经纬度数据.

     获取GPS数据有两种方式,一种是直接获取GPS模块端口的数据,长期做潜入式开发的可能喜欢这种方式;第二种方式就是利用微软提供的API,既GPSID,抱着对微软的信任,我选择了这种方式。

    但是在调试中遇到了问题,程序运行正常,可是总是获取不到GPS数据。首先怀疑机器是否有问题,所以下载了几个GPS小软件,在运行时,开始也无法获取到数据,后来发现有些小软件中可以选择端口号,因此找了个软件,专门扫描GPS所在的串口,终于有结果了,扫描到COM6的时候,出现了"发现GPS!"的信息,再在下载的软件中设置端口,结果测试正常,能获取到GPS数据。

     有上面一步,第一可以断定我手的手机设备GPS模块正常,第二,问题可能出现在GPS串口上。在整个WM系统中查找系统设置,也只发现有一个“外部GPS”的设置功能,并且里面提供了两种端口设置:程序端口和硬件端口,在网上查找了一些资料,还是没完全明白两者的差别。首先把程序端口设置为COM6,测试自己的程序失败,接下来想修改硬件端口,结果发现每次设置完保存后,再打开,这个设置又被恢复到原设置了,所以这个设置没法修改,程序测试也就无法成功了。

    接下了的关键就是看怎么可以设置这个硬件端口了。回想到前面说的两种获取GPS数据的方式,第一种是直接读串口,第二种是利用API,所以在API函数里面查找有关串口的信息,结果什么的没找到,既然API调用不用设置串口,系统中又存在两个GPS端口的设置功能,因此怀疑这个串口信息是写在注册表里面的。
     立马查找注册表修改和GPSID相关的内容,终于在MS的MSDN上找到了一篇文章<<GPS Intermediate Driver Registry Setting>>,发现里面有修改GPS端口的信息,立即下载了一个修改WM注册表的工具,修改端口为COMM6。然后再进入到之前那个物理端口无法修改的界面,发现那个端口终于变成了COM6。
     再次运行自己的程序,开启GPS功能,终于看到GPS开启成功和自己配制的GPS设备名称了,静静的等了1分多钟,终于看到了期待的经纬度数据和卫星数了,呵呵,搞定!

    由于是第一做这种嵌入设备的开发,并且接触到一些手机信号,GPS等概念,外加项目时间严格,遇到这样的问题确实也紧张,不过解决了这个问题,心情还不错,赶紧回家吃饭了!

 

MSDN文章地址:http://msdn.microsoft.com/en-us/bb202104.aspx

修改的注册表:

HKEY_LOCAL_MACHINE/System/CurrentControlSet/GPS Intermediate Driver
  Drivers
    "CurrentDriver" = "Acme GPS Hardware"
HKEY_LOCAL_MACHINE/System/CurrentControlSet/GPS Intermediate Driver
  Drivers
    Acme GPS Hardware
      "InterfaceType" = "COMM"
      "FriendlyName" = "ACME GPS Card, version 1.23"
      "CommPort" = "COM4:"

 

下载的GPS小程序:BOBOKingGPS3,GPSSystem

GPS端口扫描程序:mGpsCmd

WM注册表编辑工具:PHMRegEdit

 

自创,转载请注明出处!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值