Java serialport close blocks
2022-09-02 02:03:17
我与通过串行连接控制卫星天线的单元进行通信。
打开与串行设备的连接:
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
portIdentifier = CommPortIdentifier.getPortIdentifier(device);
serialPort = (SerialPort) portIdentifier.open(name,
serialPort.setSerialPortParams(baudrate, databits, stopbits, parity);
serialPort.setFlowControlMode(flowMode);
bufferedReader = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
outputStream = serialPort.getOutputStream();
如果设备不可用,我必须清除流,然后才能发送新命令,一旦设备再次启动。但是,如果设备出现故障,输入/输出流上的这种清晰方法会阻止。同时关闭流,或关闭串行设备块。
有没有办法关闭/清除这些流或串行设备而不阻塞?
bufferedRead.close(); // blocks until device is up again
outputStream.close(); // blocks until device is up again
serialPort.close(); // blocks until device is up again