gpt4 book ai didi

java - 使用 Javax.comm 重新枚举 java 中的所有串行设备

转载 作者:行者123 更新时间:2023-12-01 04:48:07 24 4
gpt4 key购买 nike

这是我为设备枚举实现的代码。我能够检测并显示所有连接的串行设备。但是假设我连接了另一个设备,然后尝试调用此功能,它始终显示在第一次运行代码期间连接的设备。

代码片段:

public void Listports() {

Enumeration ports = null;
ports = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId = null;

{
while (ports.hasMoreElements()) {

portId = (CommPortIdentifier) ports.nextElement();

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){

System.out.println(portId.getName());

}
}
}
}

即例如,在第一次调用该函数时,显示 COM1 和 COM3。

现在假设,已连接的串行设备已加载到 COM27 上。因此,如果我们重新运行代码,它将仅显示 COM1 和 COM3,而不显示 COM27。

另一个场景,在我第一次运行代码之前,串行设备已在 COM27 上加载。现在,第一次运行时显示 COM1、COM3、COM27。现在删除COM27设备并重新运行上面的代码,它仍然显示COM27已连接。

非常感谢这方面的任何帮助。

谢谢,阿比

最佳答案

Comm port API

您只需获得一个列表 op comm 端口,然后您可以尝试使用 isCurrentlyOwned() 来尝试该端口是否被某些应用程序拥有或使用

基本上,仅迭代列表不会告诉您列表中的任何内容,除非您进一步测试它。

关于java - 使用 Javax.comm 重新枚举 java 中的所有串行设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15471084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com