JVM关闭时出现Java结果255错误
我编写了一个Java代码,通过COM端口使用RXTX库从arduino接收数据。当Java在控制台中接收并打印它时,如果arduino突然删除,则JVM关闭,错误为Java结果255。如何捕捉错误。当arduino突然删除时,应打印“设备已删除”JVM关闭时出现Java结果255错误,java,arduino,Java,Arduino,我编写了一个Java代码,通过COM端口使用RXTX库从arduino接收数据。当Java在控制台中接收并打印它时,如果arduino突然删除,则JVM关闭,错误为Java结果255。如何捕捉错误。当arduino突然删除时,应打印“设备已删除” 串行端口生成的其他几种事件类型,您可以尝试检测,看看arudino断开连接时是否会发生。不幸的是,看起来没有DTR事件,它可能是出现问题的最佳指示器,但是SerialPort类确实有一个isDTR()方法。你可以定期检查,如果这是错误的,那么可能意味着
串行端口生成的其他几种事件类型,您可以尝试检测,看看arudino断开连接时是否会发生。不幸的是,看起来没有DTR事件,它可能是出现问题的最佳指示器,但是SerialPort类确实有一个isDTR()方法。你可以定期检查,如果这是错误的,那么可能意味着你已经失去了与arduino的连接。您可以在单独的线程中进行检查,或者在每个CTS更改事件中进行检查
serialPort.notifyOnDataAvailable(true);
serialPort.notifyOnCTS(true);
...
switch (oEvent.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
if (input == null) {
input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
}
String inputLine = input.readLine();
System.out.println(inputLine);
break;
case SerialPortEvent.CTS:
if (!serialPort.isDTR()) {
// do something
}
break;
default:
break;
}
不过,使用一个只检查DTR状态的小型工作线程可能是一个更好的解决方案
serialPort.notifyOnDataAvailable(true);
serialPort.notifyOnCTS(true);
...
switch (oEvent.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
if (input == null) {
input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
}
String inputLine = input.readLine();
System.out.println(inputLine);
break;
case SerialPortEvent.CTS:
if (!serialPort.isDTR()) {
// do something
}
break;
default:
break;
}