【发布时间】:2010-10-02 21:23:24
【问题描述】:
假设您有一部装有 GPS 接收器的 Windows Mobile 6.0 手机。 WinMobile SDK 是否支持访问 GPS 功能?
如果没有,使用 GPS 编程的选项 (API) 是什么,即编写将使用 GPS 功能的应用程序。我主要对 Windows Mobile 6.x 感兴趣,但也请包含通用回复。
我一定会投票选出最有帮助的答案。
提前致谢。
【问题讨论】:
标签: windows-mobile gps
假设您有一部装有 GPS 接收器的 Windows Mobile 6.0 手机。 WinMobile SDK 是否支持访问 GPS 功能?
如果没有,使用 GPS 编程的选项 (API) 是什么,即编写将使用 GPS 功能的应用程序。我主要对 Windows Mobile 6.x 感兴趣,但也请包含通用回复。
我一定会投票选出最有帮助的答案。
提前致谢。
【问题讨论】:
标签: windows-mobile gps
如果您计划在 .NET Compact Framework 中进行开发,Windows Mobile 开发人员示例中有一个相当广泛的 GPS 示例。这基本上利用了 gpsapi.dll 的环绕,但它显示了作品。 我已经在 C:\Program Files\Windows Mobile 6 SDK 中安装了 WM6 套件,然后 GPS 示例位于 C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
祝你好运!
【讨论】:
【讨论】:
Chris Craft 在他的系列30 天 .NET Windows Mobile 应用程序
中提供了很多这类东西的源代码遗憾的是,这个博客系列似乎已经死了,但幸运的是代码保存在 Codeplex 上:
可以在 /dev/mobile 上找到 C 的移植以及围绕一些原始帖子的一些讨论
Raffaele Limosani 的博客上还有一些关于使用中级 GPS 驱动程序的说明
编辑添加:
GPS.NET 最近已开源,现已在 CodePlex 上提供:
【讨论】:
尝试查看CodeProject.com 上的一些解决方案。有很多关于 Windows Mobile 和 GPS 的非常好的文章。
【讨论】:
对于使用中间驱动程序的测试代码(请参阅其他答案),不要忘记 SDK 中的 FakeGPS 实用程序,您可以使用该实用程序通过此中间驱动程序将存储在文件中的 NMEA 流传输到文件中,以便您轻松测试GPS 软件可以获取该位置数据,而无需实际接收 GPS 并开始四处走动。
【讨论】:
从我的角度来看,读取串行端口(在我的情况下为 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 并使用其事件 DataReceived。每当数据来自 GPS 时,就会发生此事件,您可以在它的主体中对其进行处理。
数据是一个很长的字符串格式,分为 $GPGGA、$GPGSA 等部分。重要的是 $GPGGA。每个特定信息由逗号分隔。比你只解析这个字符串 - 在 VB.net 中使用:myArray = myData.Split(","c)。
PS: ","c 表示逗号是一个字符,而不是字符串 (VB.NET)
如您所见,只需编写几行代码即可。 MS 的例子是不必要的困难,不适合初学者。
PS2:请注意,您不会向 GPS 发送任何命令。它会自动定期向您的程序发送数据。您只需打开端口,从缓冲区读取所有数据,使用 Chr() 将其转换为字符串并解析它。没什么大不了的。
【讨论】: