/ Как да определите tty номер - java, linux

Как да определите tty номер - java, linux

Имам USB устройство, което работи като виртуален сериен порт. Искам да го накарам да работи на Linux. Когато устройството беше прикачено, Linux драйверите за USB и серийни драйвери го намират, а устройството възел / Сътрудничество / ttyUSBx появява се. Няколко идентични устройства могат да бъдат прикрепени към системата. Пиша Java код, който ще трябва да комуникира с устройства чрез RXTX библиотека.

Така че искам да знам кое устройство съответстваконкретния tty възел. Как мога да получа тази информация в Java? Мисля, че аз трябва да се създаде JNI с необходимата функционалност, но аз не разбирам действия верига от код C. Може ли някой да помогне да намери пътя?

Отговори:

0 за отговор № 1

Можете да изпълнявате команди на shell директно от Java.

String[] command = new String[]{"/bin/sh", "-c", "find /sys/devices -name ttyUSB0 | grep -v "tty/tty"";
Process child = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(child.getInputStream()));
String line = input.readLine();
...

По този начин получавате подробности за свързването на възел на устройство в USB дърво. Например получавате:

/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/ttyUSB0

След това получи сериен номер на устройството чрез изпълнение

cat /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/serial

уникално идентифициране на конкретно устройство чрез серийния му номер като ftE2MLXP