diff --git a/java_console/io/src/main/java/com/rusefi/io/LinkManager.java b/java_console/io/src/main/java/com/rusefi/io/LinkManager.java index c0351ca4c6..708752bb0f 100644 --- a/java_console/io/src/main/java/com/rusefi/io/LinkManager.java +++ b/java_console/io/src/main/java/com/rusefi/io/LinkManager.java @@ -6,6 +6,7 @@ import com.rusefi.Callable; import com.rusefi.NamedThreadFactory; import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.binaryprotocol.BinaryProtocolState; +import com.rusefi.binaryprotocol.IncomingDataBuffer; import com.rusefi.core.EngineState; import com.rusefi.io.serial.StreamConnector; import com.rusefi.io.serial.SerialIoStreamJSerialComm; @@ -195,15 +196,38 @@ public class LinkManager { } }; - - - setConnector(new StreamConnector(this, port, logger, streamFactory)); + Callable ioStreamCallable = new Callable() { + @Override + public IoStream call() { + IoStream stream = streamFactory.call(); + if (stream == null) { + // error already reported + return null; + } + IncomingDataBuffer dataBuffer = IncomingDataBuffer.createDataBuffer(stream, logger); + stream.setDataBuffer(dataBuffer); + return stream; + } + }; + setConnector(new StreamConnector(this, port, logger, ioStreamCallable)); isSimulationMode = true; } else { Callable ioStreamCallable = () -> SerialIoStreamJSerialComm.openPort(port, logger); - - setConnector(new StreamConnector(this, port, logger, ioStreamCallable)); + Callable ioStreamCallable1 = new Callable() { + @Override + public IoStream call() { + IoStream stream = ioStreamCallable.call(); + if (stream == null) { + // error already reported + return null; + } + IncomingDataBuffer dataBuffer = IncomingDataBuffer.createDataBuffer(stream, logger); + stream.setDataBuffer(dataBuffer); + return stream; + } + }; + setConnector(new StreamConnector(this, port, logger, ioStreamCallable1)); } } diff --git a/java_console/io/src/main/java/com/rusefi/io/serial/StreamConnector.java b/java_console/io/src/main/java/com/rusefi/io/serial/StreamConnector.java index f95bbfd546..fc3e71700d 100644 --- a/java_console/io/src/main/java/com/rusefi/io/serial/StreamConnector.java +++ b/java_console/io/src/main/java/com/rusefi/io/serial/StreamConnector.java @@ -3,7 +3,6 @@ package com.rusefi.io.serial; import com.opensr5.Logger; import com.rusefi.Callable; import com.rusefi.binaryprotocol.BinaryProtocol; -import com.rusefi.binaryprotocol.IncomingDataBuffer; import com.rusefi.core.MessagesCentral; import com.rusefi.io.ConnectionStateListener; import com.rusefi.io.IoStream; @@ -20,24 +19,10 @@ public class StreamConnector implements LinkConnector { private final Logger logger; private final LinkManager linkManager; - public StreamConnector(LinkManager linkManager, String portName, Logger logger, Callable streamFactory) { + public StreamConnector(LinkManager linkManager, String portName, Logger logger, Callable ioStreamCallable) { this.linkManager = linkManager; this.logger = logger; - Callable ioStreamCallable = new Callable() { - @Override - public IoStream call() { - IoStream stream = streamFactory.call(); - if (stream == null) { - // error already reported - return null; - } - IncomingDataBuffer dataBuffer = IncomingDataBuffer.createDataBuffer(stream, logger); - stream.setDataBuffer(dataBuffer); - return stream; - } - }; - portHolder = new PortHolder(portName, linkManager, logger, ioStreamCallable); }