Автоопределение последовательного COM-порта от VendorID, ProductID в Java - PullRequest
1 голос
/ 14 февраля 2020

У меня есть программа на java 11, управляющая некоторым оборудованием через USB через последовательный COM-порт. Я хочу автоматически определять оборудование по VenderID и ProductID всякий раз, когда я подключаю устройство.

Я могу получить VendorID и ProductID с помощью команды Linux:

udevadm info -a -n /dev/ttyACM0

  looking at parent device '/devices/pci0000:00/0000:00:01.1/0000:01:00.0/usb1/1-5':
    KERNELS=="1-5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{speed}=="12"
    ATTRS{avoid_reset_quirk}=="0"
    ...
    ...
    ATTRS{idVendor}=="0c2e"
    ATTRS{idProduct}=="0bea"
    ...

Можно ли получить COM-порт /dev/ttyACM0 от VendorID и ProductID с Java 11 в Linux и Windows? Большое спасибо.

1 Ответ

0 голосов
/ 14 февраля 2020

Библиотека абстракции USB libusbp поставляется с примером программы с именем lsport , в которой перечислены все устройства USB и их последовательные порты. Вы можете скомпилировать эту программу и запустить ее из вашей Java программы, или просто изучить, как она работает, и переопределить то же самое в Java.

Для Linux другая идея - взглянуть на символы c ссылки в /dev/serial/by-id.

...