From 1062d38cdb3b59a471d5ca5b23ccca6708acd7dc Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 16 May 2020 11:17:42 -0400 Subject: [PATCH] progress with restart! --- .../rusefi/binaryprotocol/BinaryProtocol.java | 2 +- .../com/rusefi/io/serial/SerialConnector.java | 2 +- .../io/serial/SerialIoStreamJSerialComm.java | 16 +++++++++++----- java_console/ui/src/com/rusefi/Launcher.java | 6 +++--- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java index 5d2de47a46..cb1efe8cc9 100644 --- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -231,7 +231,7 @@ public class BinaryProtocol implements BinaryProtocolCommands { if (!checkResponseCode(response, RESPONSE_OK) || response.length != requestSize + 1) { String code = (response == null || response.length == 0) ? "empty" : "code " + response[0]; - String info = response == null ? "null" : (code + " size " + response.length); + String info = response == null ? "NO RESPONSE" : (code + " size " + response.length); logger.error("readImage: Something is wrong, retrying... " + info); continue; } diff --git a/java_console/io/src/com/rusefi/io/serial/SerialConnector.java b/java_console/io/src/com/rusefi/io/serial/SerialConnector.java index 50eb01dc15..fd94d505f1 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialConnector.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialConnector.java @@ -43,7 +43,7 @@ public class SerialConnector implements LinkConnector { LinkManager.execute(new Runnable() { @Override public void run() { - MessagesCentral.getInstance().postMessage(getClass(), "Restarting serial IO"); + MessagesCentral.getInstance().postMessage(SerialConnector.this.getClass(), "Restarting serial IO"); portHolder.close(); portHolder.connectAndReadConfiguration(); } diff --git a/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java b/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java index da7a5a47d5..b5349ecd15 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java @@ -18,19 +18,23 @@ import org.jetbrains.annotations.NotNull; public class SerialIoStreamJSerialComm implements IoStream { private boolean isClosed; private SerialPort sp; + private final String port; - SerialIoStreamJSerialComm(SerialPort sp) { + SerialIoStreamJSerialComm(SerialPort sp, String port) { this.sp = sp; + this.port = port; } @Override public void setInputListener(DataListener listener) { sp.addDataListener(new SerialPortDataListener() { @Override - public int getListeningEvents() { return SerialPort.LISTENING_EVENT_DATA_AVAILABLE; } + public int getListeningEvents() { + return SerialPort.LISTENING_EVENT_DATA_AVAILABLE; + } + @Override - public void serialEvent(SerialPortEvent event) - { + public void serialEvent(SerialPortEvent event) { if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE) return; int bytesAvailable = sp.bytesAvailable(); @@ -54,8 +58,10 @@ public class SerialIoStreamJSerialComm implements IoStream { @Override public void close() { + FileLog.LOGGER.info(port + ": Closing port..."); isClosed = true; sp.closePort(); + FileLog.LOGGER.info(port + ": Closed port."); } @Override @@ -78,6 +84,6 @@ public class SerialIoStreamJSerialComm implements IoStream { SerialPort sp = SerialPort.getCommPort(port); sp.setBaudRate(baudRate); sp.openPort(); - return new SerialIoStreamJSerialComm(sp); + return new SerialIoStreamJSerialComm(sp, port); } } diff --git a/java_console/ui/src/com/rusefi/Launcher.java b/java_console/ui/src/com/rusefi/Launcher.java index fcf51c1757..093bb11b59 100644 --- a/java_console/ui/src/com/rusefi/Launcher.java +++ b/java_console/ui/src/com/rusefi/Launcher.java @@ -100,8 +100,6 @@ public class Launcher { getConfig().getRoot().setProperty(PORT_KEY, port); getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate); - LinkManager.start(port); - engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer")); if (!LinkManager.isLogViewerMode(port)) engineSnifferPanel.setOutpinListener(LinkManager.engineState); @@ -271,7 +269,8 @@ public class Launcher { System.err.println("rusEFI not detected"); return; } - new SerialConnector(autoDetectedPort).connect(new ConnectionStateListener() { + LinkManager.start(autoDetectedPort); + LinkManager.connector.connect(new ConnectionStateListener() { @Override public void onConnectionEstablished() { SensorLogger.init(); @@ -287,6 +286,7 @@ public class Launcher { private static void invokeCallback(String callback) { if (callback == null) return; + System.out.println("Invoking " + callback); ExecHelper.submitAction(new Runnable() { @Override public void run() {