Блоки закрытия последовательного порта Java

Я связываюсь с устройством для управления спутниковой антенной через последовательное соединение.

Открытие соединения с последовательным устройством:

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();

Если устройство становится недоступным, я должен очистить поток, прежде чем он будет возможность отправлять новые команды, как только устройство снова включится. Но этот метод очистки потока ввода / вывода блокирует работу устройства. Также закрытие потоков или закрытие блоков SerialDevice.

Есть ли способ закрыть / очистить эти потоки или SerialDevice без блокировки?

bufferedRead.close(); // blocks until device is up again
outputStream.close(); // blocks until device is up again
serialPort.close(); // blocks until device is up again
22
задан Vizllx 24 July 2015 в 05:55
поделиться