Ответ 1
Вы можете получить эту информацию из файловой системы sys
. Это легко проверить из оболочки, а затем сделать программу, которая делает то же самое:
-
cd /sys/devices
- Найдите каталог первого из ваших портов:
find -name "ttyUSB0"
. Вероятно, они найдут их как-то вроде./pci0000:00/0000:00:1d.0/usb2/2-2/2-2.1/2-2.1:1.0/...
-
Часть
pci*
- это USB-контроллер. Интересным является бит2-2.1
, который является устройством USB. В этом каталоге есть много файлов, которые идентифицируют ваше устройство:-
serial
: серийный номер. Возможно, что вы хотите. -
idVendor
иidProduct
: идентификатор USB устройства.
-
Легко альтернативно для шагов 1 и 2:
-
cd /sys/class/tty/
-
readlink ttyUSBn
предоставит вам полный путь к каталогу устройства.
В качестве примечания обратите внимание, что некоторые части sysfs
считаются стабильными API, а некоторые - нет. Для получения дополнительной информации см. официальные правила sysfs.