diff --git a/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/PCanSandbox.java b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/PCanSandbox.java index 7823aafe5e..7ef6249055 100644 --- a/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/PCanSandbox.java +++ b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/PCanSandbox.java @@ -51,19 +51,10 @@ public class PCanSandbox { System.out.println("****************************************"); */ LinkManager linkManager = new LinkManager(); - BinaryProtocol bp = new BinaryProtocol(linkManager, tsStream); - linkManager.COMMUNICATION_EXECUTOR.submit(() -> { - if (tsStream.getDataBuffer().dropPending() != 0) - System.out.println("ERROR Extra data before CRC"); - bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); -// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); -// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); - if (tsStream.getDataBuffer().dropPending() != 0) - System.out.println("ERROR Extra data after CRC"); - }); + SandboxCommon.verifyCrcNoPending(tsStream, linkManager); + + ConfigurationImage ci = SandboxCommon.readImage(tsStream, linkManager); -/* -*/ } } diff --git a/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SandboxCommon.java b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SandboxCommon.java new file mode 100644 index 0000000000..81c2a63db5 --- /dev/null +++ b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SandboxCommon.java @@ -0,0 +1,63 @@ +package com.rusefi.binaryprotocol.test; + +import com.opensr5.ConfigurationImage; +import com.rusefi.binaryprotocol.BinaryProtocol; +import com.rusefi.binaryprotocol.BinaryProtocolState; +import com.rusefi.config.generated.Fields; +import com.rusefi.io.ConnectionStateListener; +import com.rusefi.io.IoStream; +import com.rusefi.io.LinkManager; +import com.rusefi.io.serial.StreamConnector; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; + +public class SandboxCommon { + static ConfigurationImage readImage(IoStream tsStream, LinkManager linkManager) throws InterruptedException { + AtomicReference configurationImageAtomicReference = new AtomicReference<>(); + CountDownLatch imageLatch = new CountDownLatch(1); + + StreamConnector streamConnector = new StreamConnector(linkManager, () -> tsStream); + linkManager.setConnector(streamConnector); + streamConnector.connectAndReadConfiguration(new BinaryProtocol.Arguments(false), new ConnectionStateListener() { + @Override + public void onConnectionEstablished() { + System.out.println("onConnectionEstablished"); + + BinaryProtocol currentStreamState = linkManager.getCurrentStreamState(); + if (currentStreamState == null) { + System.out.println("No BinaryProtocol"); + } else { + BinaryProtocolState binaryProtocolState = currentStreamState.getBinaryProtocolState(); + ConfigurationImage ci = binaryProtocolState.getControllerConfiguration(); + configurationImageAtomicReference.set(ci); + imageLatch.countDown(); + } + } + + @Override + public void onConnectionFailed() { + System.out.println("onConnectionFailed"); + } + }); + + imageLatch.await(1, TimeUnit.MINUTES); + ConfigurationImage ci = configurationImageAtomicReference.get(); + System.out.println("Got ConfigurationImage " + ci + ", " + ci.getSize()); + return ci; + } + + static void verifyCrcNoPending(IoStream tsStream, LinkManager linkManager) { + BinaryProtocol bp = new BinaryProtocol(linkManager, tsStream); + linkManager.COMMUNICATION_EXECUTOR.submit(() -> { + if (tsStream.getDataBuffer().dropPending() != 0) + System.out.println("ERROR Extra data before CRC"); + bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); +// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); +// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); + if (tsStream.getDataBuffer().dropPending() != 0) + System.out.println("ERROR Extra data after CRC"); + }); + } +} diff --git a/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SimulatorTcpSandbox.java b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SimulatorTcpSandbox.java index 40d7a2035c..8940fb633c 100644 --- a/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SimulatorTcpSandbox.java +++ b/java_console/io/src/test/java/com/rusefi/binaryprotocol/test/SimulatorTcpSandbox.java @@ -2,19 +2,11 @@ package com.rusefi.binaryprotocol.test; import com.opensr5.ConfigurationImage; import com.rusefi.binaryprotocol.BinaryProtocol; -import com.rusefi.binaryprotocol.BinaryProtocolState; -import com.rusefi.config.generated.Fields; -import com.rusefi.io.ConnectionStateListener; -import com.rusefi.io.IoStream; import com.rusefi.io.LinkManager; -import com.rusefi.io.serial.StreamConnector; import com.rusefi.io.tcp.TcpIoStream; -import jdk.nashorn.internal.runtime.regexp.joni.constants.Arguments; import java.io.IOException; import java.net.Socket; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicReference; import static com.rusefi.io.tcp.TcpConnector.DEFAULT_PORT; import static com.rusefi.io.tcp.TcpConnector.LOCALHOST; @@ -27,51 +19,11 @@ public class SimulatorTcpSandbox { TcpIoStream tsStream = new TcpIoStream("sandbox", s); LinkManager linkManager = new LinkManager(); - verifyCrcNoPending(tsStream, linkManager); + SandboxCommon.verifyCrcNoPending(tsStream, linkManager); - AtomicReference configurationImageAtomicReference = new AtomicReference<>(); - CountDownLatch imageLatch = new CountDownLatch(1); + ConfigurationImage ci = SandboxCommon.readImage(tsStream, linkManager); - StreamConnector streamConnector = new StreamConnector(linkManager, () -> tsStream); - linkManager.setConnector(streamConnector); - streamConnector.connectAndReadConfiguration(new BinaryProtocol.Arguments(false), new ConnectionStateListener() { - @Override - public void onConnectionEstablished() { - System.out.println("onConnectionEstablished"); - - BinaryProtocol currentStreamState = linkManager.getCurrentStreamState(); - if (currentStreamState == null) { - System.out.println("No BinaryProtocol"); - } else { - BinaryProtocolState binaryProtocolState = currentStreamState.getBinaryProtocolState(); - ConfigurationImage ci = binaryProtocolState.getControllerConfiguration(); - configurationImageAtomicReference.set(ci); - imageLatch.countDown(); - } - } - - @Override - public void onConnectionFailed() { - System.out.println("onConnectionFailed"); - } - }); - - imageLatch.await(); - ConfigurationImage ci = configurationImageAtomicReference.get(); - System.out.println("Got ConfigurationImage " + ci + ", " + ci.getSize()); System.exit(0); } - private static void verifyCrcNoPending(IoStream tsStream, LinkManager linkManager) { - BinaryProtocol bp = new BinaryProtocol(linkManager, tsStream); - linkManager.COMMUNICATION_EXECUTOR.submit(() -> { - if (tsStream.getDataBuffer().dropPending() != 0) - System.out.println("ERROR Extra data before CRC"); - bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); -// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); -// bp.getCrcFromController(Fields.TOTAL_CONFIG_SIZE); - if (tsStream.getDataBuffer().dropPending() != 0) - System.out.println("ERROR Extra data after CRC"); - }); - } }