Lectura de datos del puerto serie

Tengo un requisito en el que tengo que leer los flujos de datos que vienen en el puerto serie. Estoy usando la API javax.comm para lo mismo.

Cuando trato de enumerar puertos, usando el siguiente código, nunca obtengo ninguna lista de puertos.

portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("start: "+portList.hasMoreElements());

Se devuelve falso.

¿Alguien puede ayudarme si me falta algo?


Mi puerto PS2 no apareció en la lista. ¿Hay alguna otra forma de enumerar el puerto PS2?

Mi código completo es el siguiente,

    while (portList.hasMoreElements()) {
       portId = (CommPortIdentifier) portList.nextElement();
       System.out.println("portid: "+portId.getName());
    }

salida

portid: COM1
portid: COM3
portid: LPT1

Mi requisito real es leer datos en el puerto USB. Estaba enfrentando problemas al usar JUSB y no funcionó. Así que decidí obtener el convertidor de serie a USb y leer en el puerto serie. Pero, no hay tal convertible disponible en el mercado.

Ahora, pensando en otra solución, pude obtener un convertidor PS2 a usb. Sería genial si pudiera ayudarme a enumerar el puerto PS2 usando Java y leer / escribir en él o sugerir alguna API para el mismo en la plataforma de Windows.

Se agradecerá enormemente cualquier ayuda en esta cuestión.

Respuesta 1

Consulte: http://www.intellog.com/blog/?p=255 y http://www.coderanch.com/t/535173/Streams/java/CommPortIdentifier-getPortIdentifiers-empty (el último apunta al primero )

Oracle no ofrece los binarios para Windows (suponiendo que esté en Windows): http://www.oracle.com/technetwork/java/index-jsp-141752.html

Respuesta: 2

Echa un vistazo a RXTX . Entonces puedes usar algo así:

 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty1");
 CommPort commPort = portIdentifier.open("owner-name", 2000);
 SerialPort serialport;
 if (commPort instanceof SerialPort) {
   serialPort = (SerialPort)commPort;
   serialPort.setSerialPortParams(rate, databits, stopbits, parity);
 }
 InputStream in = serialPort.getInputStream();
 OutputStream out = serialPort.getOutputStream(); 
Respuesta: 3

¿Hay alguna forma posible de hacer eso? El efecto esperado sería que los valores de entrada rowMap y columnMap se ordenarían por valor. El problema es que no puedo crear un comparador sin el ...

Jugueteando con un JavaFX escribo esto: MenuItem menuItem1 = new MenuItem ("Item 1") menuItem1.setOnAction (e -> {println "Elemento de menú 1 seleccionado"}) Esto da un error en ...

Contexto: en una aplicación de tarjeta de memoria flash, tengo una vista para CardData (una estructura de datos que representa un lado de una tarjeta de memoria flash). Tiene, en su forma más básica, un texto de cadena. La vista (conocida como ...

Actualmente estoy haciendo una tarea para mi curso de acceso en informática. A continuación he capturado el proyecto para contextos. Nuestro maestro nos dio fragmentos de codificación para comenzar. En este caso, nos dio ...