【问题标题】:Java - get COM port idJava - 获取 COM 端口 ID
【发布时间】:2016-06-06 14:10:22
【问题描述】:

我正在编写一个 java 程序,现在我有一个包含 COM 端口号的设置文件。如果设备更改 COM 端口号,则必须更改。

这不是很用户友好。因此,我希望能够获得 COM 端口 ID 的列表,并让用户通过其 ID 选择正确的设备。我试过谷歌搜索,但没有多大成功。

我的意思是如果您检查设备管理器:“COM 端口 ID (COM)”。检查下图中带有红色标记的文字:

我尝试了以下库:

  • javax.comm - CommPortIdentifier,getPortIdentifiers();
  • jssc - SerialPortList.getPortNames();

但我一直无法确定是否可以获取 COM 端口 ID,因为上述两种方法只是返回 COM 端口的编号。有谁知道获取 COM 端口 ID 的方法吗?

【问题讨论】:

  • 我目前不在我有代码的电脑上,但据我记得它刚刚返回“COM#”。我想获取连接到该端口的项目的名称。
  • 您可以尝试从registry 读取此信息 - 但这当然只适用于 Windows。
  • 这很奇怪,JSSC 就像一个魅力。随意下载这个代码,github.com/enriquezrene/javafx-arduino我显示COM端口和用户选择它,然后我用它来工作希望它对你有帮助

标签: java serial-port javax.comm jssc


【解决方案1】:

我使用 rxtxcomm.jar 和 rxtxSerial.dll 与 Arduino 进行通信。这个 sn-p 应该为您提供可用的端口:

@SuppressWarnings("unchecked")
Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();

while (portEnum.hasMoreElements()) {
    CommPortIdentifier currPortId = portEnum.nextElement();
    System.out.println(currPortId.getName() + " - " + currPortId.getCurrentOwner());
}

这是一篇包含更多详细信息的文章:https://blog.henrypoon.com/blog/2010/12/25/installing-rxtx-for-serial-communication-with-java/

【讨论】:

  • 问题是我没有使用代码连接到设备,而是使用辅助API来完成连接并传输所需的数据。
猜你喜欢
  • 2017-12-20
  • 1970-01-01
  • 2013-04-14
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 2016-03-28
相关资源
最近更新 更多