我有一个地图应用程序,我希望能够允许我的用户连接任何通过通讯端口或USB端口吐出NMEA数据的GPS单元。

由于NMEA是GPS单位必须遵守的标准,因此我假设可以编写通用驱动程序以连接到GPS单位并开始接受NMEA数据。在进行网络搜索之后,我很惊讶地发现没有人使用C#为.NET完成此操作。

我想念什么吗?我缺少某种程度的复杂性吗?任何人都对如何使我的应用程序与各种GPS单元一起工作提出建议?

最佳答案

您实际上并不需要驱动程序,而是需要解析器。驱动程序(几乎始终)是使它成为COM端口的工具,并且是设备专用的。解析器解释实际的NMEA格式化数据。看这个解析器项目

http://code.google.com/p/nmeasharp/wiki/NmeaSharpMain

缺少结果可能比其他任何事情都更加困难,这是一种非常容易解析的格式。

当然,您也可以使用Windows 7+传感器和位置API

http://www.codeguru.com/csharp/.net/article.php/c16973/Using-the-Windows-7-Sensor-and-Location-Platform-from-C.htm

如果可以选择的话,我会使用Location API,但这只是我一个,而且GPS也不支持它。如果愿意,可以使用适配器将任何标准NMEA gps转换为Windows 7支持的gps

http://www.turboirc.com/gps7/

尽管如果您计划了商业用途,这可能会带来问题(尽管编写替代品并不难)。

10-08 07:05