javax.comm :识别我的 GPS 设备正在运行哪个串行端口
我正在编写一个小型应用程序,它使用 javax.comm api 返回通信端口的枚举,使用以下语法 CommPortIdentifier.getPortIdentifiers(); 我的问题是如何以编程方式识别我的 GPS 设备正在哪个端口上运行。有人有什么想法吗?
T。
I am writing a small application which uses the javax.comm api to return an enumeration of comms ports, using the following syntax
CommPortIdentifier.getPortIdentifiers();
My question is how would one programmatically identify which port my GPS device is operting on. Anyone got any ideas??
T.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须单独探测每一个:打开它,设置波特率,等待 NMEA 语句。据我所知,每个 GPS 都会每秒发送一次 NMEA 数据,因此,如果您在几秒后没有收到 NMEA 数据(或无法打开端口),那么它不是您的 GPS。在 java 中,GPS 端口与其他 COM 端口没有区别。
顺便说一句:不要尝试并行运行太多检查,串行驱动程序架构不太喜欢这样,尤其是涉及蓝牙串行端口时。
You have to probe each one individually: Open it, set baudrate, wait for NMEA sentences. Every GPS that I know of sends NMEA data once a second, so if you don't get NMEA data after a few secs (or can not open the port) then its not your GPS. In java the GPS port is indistinguishable from other COM ports.
BTW: Don't try to run too many checks in parallel, the serial driver architecture does not like that too much, especially if bluetooth serial ports are involved.