最近得到一部免费的GPS导航仪,想通过研究改进一下该导航仪的功能,遇到一些困难困扰我很久了,希望高手能施以援手,感激不尽。问题是这样的,该导航仪是wince4.2的系统,GPS导航软件运行的时候已经将GPS模块的串口(GPS模块只有一个串口,只能向这个串口输出经纬度等信息)占用,我现在想在不影响导航软件使用的情况下,获取到GPS模块从串口输出的相关GPS定位数据(只需要获取不需要发送数据到串口),只知道有两种方式可以实现,一种是驱动过滤(这个太高深了,没有接触过),一种是API hook我比较偏向于后者,急切希望能够获得部分相关信息或资料。我在网上查了很多资料,好像都不行。另外我是用C#来开发程序的,希望能有高手帮帮忙。我最近被这个问题搞的焦头烂额的了,其实也没有什么目的,就是自己觉得好玩而已。

解决方案 »

  1.   

    在網上查一下gps數據的獲取啊,有的
      

  2.   

    这个很简单。我也做过类似的东西。你找一下串口的定义,把GPS设备连接电脑的线修改一下。
    现在不是只有2个头吗,在弄一个RS232的头来接上去。只接设备的GND和发送线(TxD)2个就可以了。
    设备的数据接受线(RxD)不用接的,把这个多出来的头插到电脑串口上去。然后用串口软件打开这个串口。
    再打开GPS设备,有数据的话 ,串口软件就能收到了。而且不影响GPS软件的正常使用。
    这个方法安全可靠,即使做接头的时候要细心点,别短路了
      

  3.   

    谢谢7楼,但我是要用软件来实现啊。其实我的主要目的是要做一个WINCE下用导航软件的外挂程序,可以截获GPS模块输出的数据才行啊,获取到GPS模块输出的数据后要进行一些操作,主要是想写入到KML文件中,然后可以在google earth上显示航迹。知道的请回复一下,我将我的全部分数给你。
      

  4.   

    我最近几天研究了一下API HOOK,查到监视串口可以用调用readfile()函数,但是问题又来了,我在网上查到有人说串口是不能共享的,所以调用API 的时候只能独占,没法共享。希望高手早日出现啊。
      

  5.   

    在串口线上并一个头子出来不就可以了,数据发送接受都可以监视到,串口线就是2,3,5。5是地或者你在里面做一个转发服务,接一下命令串,你在发给GPS,接返回数据。稍微麻烦点。没你想的那么复杂,不用HOOK ^-*',只是返回数据肯定有格式的,你不知道协议,估计没什么用。 
      

  6.   

    去Cnblogs看看!!!
    帮你顶!!
      

  7.   

    Windows   Mobile  提供了gpsapi.dll,它可以使多个程序共享一个GPS串口数据,不知道Wince支持不支持?