代码之家  ›  专栏  ›  技术社区  ›  Sesh

在WinMobile Phone中访问GPS功能

  •  4
  • Sesh  · 技术社区  · 17 年前

    假设您有一部Windows Mobile 6.0手机,它还带有GPS接收器。WinMobile SDK是否支持访问GPS功能?

    如果没有,使用GPS编程的选项(API)是什么,即编写将使用GPS功能的应用程序。我主要对WindowsMobile6.x感兴趣,但也请包括一般回复。

    我一定会投票选出最有帮助的答案。

    提前谢谢。

    6 回复  |  直到 17 年前
        1
  •  6
  •   Rowland Shaw    17 年前

    两种选择:

    1. 有一个中间的GPS驱动程序,它有一个 howto article for .Net
    2. 您可以连接到串行端口(当然可以在UI中配置)并自己解析NMEA字符串

    选项(1)可能是可取的

        2
  •  5
  •   Zhaph - Ben Duguid    11 年前

    克里斯·克拉夫特(ChrisCraft)在他的系列中有很多这类东西的源代码 30天的.NET Windows Mobile应用程序

    • 第1周-包括GPS罗盘
    • 第3周-包括GPS速度表和GPS高度表
    • 第4周-包括GPS时钟

    遗憾的是,这个博客系列似乎已经消亡,但谢天谢地,代码仍保留在Codeplex上:

    30 Days of Windows Mobile Applications

    和一个端口到C和一些讨论周围的一些原始的职位可以找到 /dev/mobile

    还有一些关于在上使用中间GPS驱动程序的注意事项 Raffaele Limosani 的博客


    编辑以添加:

    GPS.NET最近已成为开放源代码,现在可在CodePlex上获得:

    GPS.NET 3.0

        3
  •  3
  •   LocalJoost    17 年前

    如果您计划在.NET Compact Framework中开发,Windows Mobile Developer示例中有一个相当广泛的GPS示例。这基本上利用了围绕gpsapi.dll的包装,但它显示了工作原理。 我已经在C:\Program Files\Windows Mobile 6 SDK中安装了WM6工具包,然后GPS样本在C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS中

    祝你好运

        4
  •  2
  •   user229044    14 年前

    试着看看上面的一些解决方案 CodeProject.com . 有很多关于Windows Mobile和GPS的非常好的文章。

        5
  •  1
  •   peSHIr    17 年前

    对于使用中间驱动程序的测试代码(参见其他答案),请不要忘记SDK中的FakeGPS实用程序,您可以使用该实用程序通过该中间驱动程序将存储在文件中的NMEA流传输到该位置,这样您就可以轻松地在该位置数据上测试GPS软件,而无需实际接收GPS信号并开始移动。

        6
  •  0
  •   Racky    15 年前

    在我看来,读取串行端口(在我的例子中是COM5,波特率4800)和解析接收到的数据要容易得多。(如何解析字符串可以通过谷歌和短语找到:gps NMEA句子)

    对于我来说,无法理解地址上的示例:

    C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
    

    myGps = new GPS()
    myGPS.getPosition
    

    但这可能是不可能的:(

    如何通过RS232实现? (我在VB.NET中工作)

    在GUI中(或以编程方式)创建对象System.IO.Ports.SerialPort并使用其接收的事件数据。无论何时数据来自GPS,都会发生此事件,您可以在其体内对其进行处理。

    数据采用长字符串格式,分为$GPGGA、$GPGSA等部分。重要的是$GPGGA。每个特定信息用逗号分隔。然后在VB.net中使用:myArray=myData.Split(“,”c)只解析这个字符串。

    http://aprs.gids.nl/nmea/

    正如您所看到的,不需要编写超过几行的代码。MS的例子是不必要的困难,不适合初学者。

    请注意,您不会向GPS发送任何命令。它会自动并定期向您的程序发送数据。您只需打开端口,从缓冲区读取所有数据,使用Chr()将其转换为字符串并对其进行解析。没什么大不了的。

    推荐文章