He escrito un programa Java para leer mi Arduino salidas a través del puerto serie (utilizando la biblioteca RXTX). Hay un pequeño problema que estoy enfrentando.
Arduino escribe continuamente en serie. Pero cada vez, después de ejecutar el programa Java tengo que reiniciar el Arduino para que el programa vea los valores del puerto serie. De lo contrario, no leerá ningún valor.
Espero que esté claro. Necesito saber si hay una forma de arreglar esto. Cómo puedo hacer que mi programa lea los valores del puerto serie cuando se inicia sin hacer nada a los dispositivos externos.
Gracias.
EDITAR Este es el método que inicializará el puerto serie.
SerialPort serialPort;
private static final String PORT = "COM32";
private InputStream input;
private static final int TIME_OUT = 2000;
private static final int DATA_RATE = 9600;
public void initialize() {
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
if (currPortId.getName().equals(PORT)) {
portId = currPortId;
break;
}
}
if (portId == null) {
System.out.println("Could not find COM port.");
return;
}
try {
serialPort = (SerialPort) portId.open(this.getClass().getName(),
TIME_OUT);
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
input = serialPort.getInputStream();
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
} catch (Exception e) {
System.err.println(e.toString());
}
}