2009-10-13 36 views
1

我有一個GPS設備連接到我的系統運行Windows Vista。如何使用c + +讀取Windows Vista中的NMEA句子

我想從GPS設備讀取NMEA句子並在屏幕上打印。

我將如何知道,在哪個端口上連接了GPS設備,因爲可能有其他設備也連接在各種com端口上。我正在用C++開發應用程序,

Microsoft是否爲此提供了任何API?

回答

1

它是什麼樣的端口?如果它是串行端口,請嘗試連接到所有串行端口,一次一個,然後只聽一個NMEA字符串。如果收到一個,請使用端口(如果沒有收到端口),請轉到下一個端口。

+0

嗯okie。 感謝您的快速回復。 我可以修復任何時間間隔爲此和計時器到期後我可以運行在for循環,並檢查所有的端口儀式? – 2009-10-13 06:57:28

1

我傾向於提示用戶輸入該端口。 NMEA通常通過COM端口以ASCII字符串形式出現。在藍牙之前,這通常是COM1到COM4,90%的情況是COM1或COM2。現在更常見的是通過藍牙連接,在那裏你經常看到COM端口達到COM20以上,所以蠻力是一個緩慢的選擇。檢查所有端口所用的時間取決於您的GPS發送頻率(假設它不需要提示)和您的超時時間。您可能預計搜索需要長達30秒。如果你enumerate the COM ports這將會更快,因爲在任何時候很少有更多的六個活動端口。

1

那麼,在過去,您賦予應用程序用戶特權以指定正確的端口;或者實際上,請檢查所有這些特權。格式和可用的NMEA句子集可以根據具體設備而有所不同 - 例如,閱讀一些信息here,但句子應該是純文本。 (如果不是那麼它不是NMEA格式:))