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/

Другие вопросы по тегам