Java - получить идентификатор COM-порта
Я пишу Java-программу, и сейчас у меня есть установочный файл, который содержит номер COM-порта. который должен быть изменен, если устройство меняет номер COM-порта.
Это не очень удобно для пользователя. Поэтому я хочу иметь возможность получить список идентификаторов COM-портов и позволить пользователю выбрать правильное устройство по его идентификатору. Я пробовал гуглить, но без особого успеха.
Под идентификатором я имею в виду, если вы проверяете диспетчер устройств: "Идентификатор COM-порта (COM<#>)". Отметьте отмеченный красным текст на следующем рисунке:
Я пробовал следующие библиотеки:
- javax.comm - CommPortIdentifier, getPortIdentifiers ();
- jssc - SerialPortList.getPortNames ();
Но я не смог выяснить, возможно ли получить идентификатор COM-порта, так как два вышеупомянутых метода просто возвращают номер COM-порта. Кто-нибудь знает способ получить идентификаторы COM-порта?
1 ответ
Я использовал rxtxcomm.jar и rxtxSerial.dll для связи с Arduino. Этот фрагмент должен получить вам доступные порты:
@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/