/ / Cómo determinar el número de tty - java, linux

Cómo determinar el número de tty - java, linux

Tengo un dispositivo USB que funciona como un puerto serie virtual. Quiero que funcione en Linux. Cuando se conectó el dispositivo, los controladores de Linux usb a serie y los controladores tty lo encuentran, y el nodo del dispositivo / dev / ttyUSBx aparece Se pueden conectar varios dispositivos idénticos al sistema. Escribo el código de Java, que tendrá que comunicarse con los dispositivos a través de Biblioteca RXTX.

Así que quiero saber, a qué dispositivo correspondeel nodo tty particular. ¿Cómo puedo obtener esta información en Java? Creo que tengo que crear JNI con la funcionalidad necesaria, pero no entiendo la cadena de acciones del código C. ¿Alguien puede ayudar a encontrar el camino?

Respuestas

0 para la respuesta № 1

Puede ejecutar comandos de shell directamente desde 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();
...

De esta manera obtendrá detalles de la conexión del nodo del dispositivo en el árbol USB. Por ejemplo obtienes:

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

Luego obtenga el número de serie del dispositivo ejecutando

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

para identificar de forma única un dispositivo específico por su número de serie como ftE2MLXP