我的GPS设备连接到运行Windows Vista的系统。
我想通过GPS设备阅读NMEA句子并在屏幕上打印。
我将如何知道GPS设备已连接到哪个端口,因为可能还有其他设备连接在各种COM端口上。我正在用c ++开发应用程序,
Microsoft是否为此提供了任何API?
答案 0 :(得分:1)
它是什么类型的端口?如果是串行端口,请尝试连接所有串行端口,一次一个,然后只监听NMEA字符串。如果收到一个,请使用该端口,如果没有收到,请转到下一个端口。
答案 1 :(得分:1)
我倾向于提示用户输入端口。 NMEA通常通过COM端口以ASCII字符串形式出现。在蓝牙之前,这通常是COM1到COM4,其中90%的情况是COM1或COM2。现在更常见的是通过蓝牙连接,你经常看到COM端口到COM20及以上,所以蛮力是一个缓慢的选择。检查所有端口所需的时间取决于GPS发送信号的频率(假设它不需要提示)和您的超时。您可能希望搜索最多需要30秒。如果你enumerate the COM ports这会更快,因为在任何时候都不会有超过六个活动端口。
答案 2 :(得分:1)
好吧,在过去,您为应用程序的用户提供了指定正确端口的权限;)或者确实,检查了所有这些端口。格式和可用的NMEA句子集可能因特定设备而异 - 例如,阅读一些信息here,但句子应该是纯文本。 (如果不是那么它不是NMEA格式:))