From 42088bfe679af8c2a0b09a23edfda3e99f1eed93 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 25 Sep 2021 23:21:27 -0400 Subject: [PATCH] Revert "rusEFI console to compare current bundle against auto-DFU bundle #3266" This reverts commit 40610783 --- .../com/rusefi/autodetect/PortDetector.java | 10 ++--- .../rusefi/autodetect/SerialAutoChecker.java | 39 ++++--------------- .../com/rusefi/maintenance/DfuFlasher.java | 12 +----- 3 files changed, 13 insertions(+), 48 deletions(-) diff --git a/java_console/io/src/main/java/com/rusefi/autodetect/PortDetector.java b/java_console/io/src/main/java/com/rusefi/autodetect/PortDetector.java index cfecf3604b..4098d7124f 100644 --- a/java_console/io/src/main/java/com/rusefi/autodetect/PortDetector.java +++ b/java_console/io/src/main/java/com/rusefi/autodetect/PortDetector.java @@ -29,7 +29,7 @@ public class PortDetector { * @return port name on which rusEFI was detected or null if none */ @Nullable - public static SerialAutoChecker.AutoDetectResult autoDetectSerial(Function callback) { + public static SerialAutoChecker.AutoDetectResult autoDetectSerial(Function callback) { String rusEfiAddress = System.getProperty("rusefi.address"); if (rusEfiAddress != null) { return getSignatureFromPorts(callback, new String[] {rusEfiAddress}); @@ -43,16 +43,12 @@ public class PortDetector { return getSignatureFromPorts(callback, serialPorts); } - public static SerialAutoChecker.AutoDetectResult getSignatureFromPorts(Function callback, String[] serialPorts) { + private static SerialAutoChecker.AutoDetectResult getSignatureFromPorts(Function callback, String[] serialPorts) { List serialFinder = new ArrayList<>(); CountDownLatch portFound = new CountDownLatch(1); AtomicReference result = new AtomicReference<>(); for (String serialPort : serialPorts) { - Thread thread = AUTO_DETECT_PORT.newThread( - () -> { - SerialAutoChecker checker = new SerialAutoChecker(serialPort, portFound, result, callback); - checker.openAndRunLogic(); - }); + Thread thread = AUTO_DETECT_PORT.newThread(new SerialAutoChecker(serialPort, portFound, result, callback)); serialFinder.add(thread); thread.start(); } diff --git a/java_console/io/src/main/java/com/rusefi/autodetect/SerialAutoChecker.java b/java_console/io/src/main/java/com/rusefi/autodetect/SerialAutoChecker.java index 1eec0eea46..77db59e4f7 100644 --- a/java_console/io/src/main/java/com/rusefi/autodetect/SerialAutoChecker.java +++ b/java_console/io/src/main/java/com/rusefi/autodetect/SerialAutoChecker.java @@ -15,15 +15,15 @@ import java.util.function.Function; import static com.rusefi.binaryprotocol.IoHelper.checkResponseCode; -public class SerialAutoChecker { +public class SerialAutoChecker implements Runnable { private final static Logging log = Logging.getLogging(SerialAutoChecker.class); private final String serialPort; private final CountDownLatch portFound; private final AtomicReference result; @Nullable - private final Function callback; + private final Function callback; - public SerialAutoChecker(String serialPort, CountDownLatch portFound, AtomicReference result, Function callback) { + public SerialAutoChecker(String serialPort, CountDownLatch portFound, AtomicReference result, Function callback) { this.serialPort = serialPort; this.portFound = portFound; this.result = result; @@ -34,16 +34,9 @@ public class SerialAutoChecker { this(serialPort, portFound, result, null); } - public void openAndRunLogic() { + @Override + public void run() { IoStream stream = SerialIoStreamJSerialComm.openPort(serialPort); - try { - runLogic(stream); - } finally { - stream.close(); - } - } - - public void runLogic(IoStream stream) { IncomingDataBuffer incomingData = stream.getDataBuffer(); boolean isPortFound = false; String signature; @@ -56,12 +49,14 @@ public class SerialAutoChecker { log.info("Got signature=" + signature + " from " + serialPort); if (signature.startsWith(Fields.PROTOCOL_SIGNATURE_PREFIX)) { if (callback != null) { - callback.apply(new CallbackContext(stream, signature)); + callback.apply(stream); } isPortFound = true; } } catch (IOException ignore) { return; + } finally { + stream.close(); } if (isPortFound) { /** @@ -72,24 +67,6 @@ public class SerialAutoChecker { } } - public static class CallbackContext { - private final IoStream stream; - private final String signature; - - public CallbackContext(IoStream stream, String signature) { - this.stream = stream; - this.signature = signature; - } - - public String getSignature() { - return signature; - } - - public IoStream getStream() { - return stream; - } - } - public static class AutoDetectResult { private final String serialPort; diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/DfuFlasher.java b/java_console/ui/src/main/java/com/rusefi/maintenance/DfuFlasher.java index 9bc4068878..293b7a6498 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/DfuFlasher.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/DfuFlasher.java @@ -5,7 +5,6 @@ import com.rusefi.ConsoleUI; import com.rusefi.Launcher; import com.rusefi.Timeouts; import com.rusefi.autodetect.PortDetector; -import com.rusefi.autodetect.SerialAutoChecker; import com.rusefi.io.DfuHelper; import com.rusefi.io.IoStream; import com.rusefi.io.serial.SerialIoStreamJSerialComm; @@ -17,10 +16,7 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; -import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; import static com.rusefi.StartupFrame.appendBundleName; @@ -57,18 +53,14 @@ public class DfuFlasher { if (!PortDetector.isAutoPort(port)) { messages.append("Using selected " + port + "\n"); - Function callback = null; // todo - AtomicReference result = new AtomicReference<>(); - SerialAutoChecker checker = new SerialAutoChecker(port, new CountDownLatch(1), result, callback); IoStream stream = SerialIoStreamJSerialComm.openPort(port); - checker.runLogic(stream); DfuHelper.sendDfuRebootCommand(stream, messages); } else { messages.append("Auto-detecting port...\n"); // instead of opening the just-detected port we execute the command using the same stream we used to discover port // it's more reliable this way - port = PortDetector.autoDetectSerial(callbackContext -> { - DfuHelper.sendDfuRebootCommand(callbackContext.getStream(), messages); + port = PortDetector.autoDetectSerial(stream -> { + DfuHelper.sendDfuRebootCommand(stream, messages); return null; }).getSerialPort(); if (port == null) {