2013-03-27 33 views
2

我有一個地圖應用程序,我希望能夠允許我的用戶連接任何通過通信端口噴出NMEA數據的GPS單元或USB端口。由於NMEA是GPS單元必須遵守的標準,因此我假設可以寫一個通用驅動程序來連接GPS單元並開始接受NMEA數據。在網絡搜索之後,我驚訝地發現沒有人在C#中爲.NET做過這些工作。用於.Net/C#的GPS驅動程序,用於從任何支持NMEA的GPS單元獲取GPS數據

我錯過了什麼嗎?我錯過了一些複雜程度嗎?任何人都有如何使我的應用程序與各種GPS單元工作的建議?

+1

如果我沒有記錯,這是所有串口連接。您需要特定GPS芯片組的驅動程序。它通常是串行適配器的某種USB。 – 2013-03-27 20:41:02

+0

同意@TheGreatCO。大多數設備提供直接的COM端口或propietary-to-COM接口,應用程序只使用COM端口,這在C#中也很容易訪問。有一些開源庫可以解析數據,例如http://sharpgps.codeplex.com/或http://www.codeproject.com/Articles/279647/NMEA-0183-Sentence-parser-builder(其中I還沒有嘗試過自己)。 – jCoder 2013-03-27 20:52:45

+0

2004年,我們必須使用特定GPS供應商TeleType的GPS SDK/API,以便通過藍牙連接到Windows CE袖珍電腦上的某個GPS設備(不記得型號)獲取數據,它的工作。我們當時正在使用.NET Compact Framework。剛剛訪問www.teletype.com,我發現SDK不再免費。 – 2013-03-27 21:02:13

回答

4

你不是真的想要一個驅動程序,你想要一個解析器。驅動程序可以處理它(幾乎總是)com端口,並且是特定於設備的。解析器解釋實際的NMEA格式數據。看看這個解析器項目

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

缺乏的結果可能更缺乏難度比什麼都重要的問題,它是分析一個非常簡單的格式。

當然,你也可以使用

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

如果你有一個選擇,我會使用定位API,但那只是我,它不是7+傳感器和位置API窗口」也支持任何GPS。您可以使用適配器轉換的,如果你喜歡

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

但如果你有計劃的商業用途(雖然它不會那麼難,可能導致問題的Windows 7所支持的任何標準的NMEA GPS一寫一個替代品)。

+0

SharpGPS項目正是我所期待的。 Windows 7位置API很有趣,但在我的組織中,我需要支持Windows的以前版本。謝謝您的幫助! – 2013-03-28 11:09:41