refactoring

This commit is contained in:
rusefi 2017-03-01 18:09:28 -05:00
parent ffdd799f6c
commit 78dae10218
2 changed files with 10 additions and 2 deletions

View File

@ -62,7 +62,7 @@ public class SerialIoStream implements IoStream {
public void setDataListener(DataListener listener) { public void setDataListener(DataListener listener) {
try { try {
SerialPortReader reader = new SerialPortReader(serialPort, listener); SerialPortReader reader = new SerialPortReader(serialPort, listener);
serialPort.addEventListener(reader); serialPort.addEventListener(reader.getSerialPortEventListener());
reader.readInitial(); reader.readInitial();
} catch (SerialPortException e) { } catch (SerialPortException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);

View File

@ -12,7 +12,7 @@ import org.jetbrains.annotations.Nullable;
* Date: 12/25/12 * Date: 12/25/12
* (c) Andrey Belomutskiy * (c) Andrey Belomutskiy
*/ */
public class SerialPortReader implements SerialPortEventListener { public class SerialPortReader {
private static final int[] SLEEP_DURATIONS = {2, 20, 50, 100}; private static final int[] SLEEP_DURATIONS = {2, 20, 50, 100};
private final SerialPort serialPort; private final SerialPort serialPort;
private DataListener listener; private DataListener listener;
@ -61,6 +61,9 @@ public class SerialPortReader implements SerialPortEventListener {
return null; return null;
} }
private SerialPortEventListener serialPortEventListener = new SerialPortEventListener() {
public void serialEvent(SerialPortEvent spe) { public void serialEvent(SerialPortEvent spe) {
if (spe.isRXCHAR() || spe.isRXFLAG()) { if (spe.isRXCHAR() || spe.isRXFLAG()) {
// event-based serial read implementation does not work well on Windows 10 for some reason // event-based serial read implementation does not work well on Windows 10 for some reason
@ -74,6 +77,7 @@ public class SerialPortReader implements SerialPortEventListener {
FileLog.MAIN.logLine("less expected SerialPortReader serialEvent " + spe.getEventType()); FileLog.MAIN.logLine("less expected SerialPortReader serialEvent " + spe.getEventType());
} }
} }
};
// private void handleRx(SerialPortEvent spe) throws SerialPortException { // private void handleRx(SerialPortEvent spe) throws SerialPortException {
// if (spe.getEventValue() > 0) { // if (spe.getEventValue() > 0) {
@ -92,4 +96,8 @@ public class SerialPortReader implements SerialPortEventListener {
listener.onDataArrived(data); listener.onDataArrived(data);
} }
} }
public SerialPortEventListener getSerialPortEventListener() {
return serialPortEventListener;
}
} }