diff --git a/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java b/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java index 9fa8eb2dee..c53e005dc3 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java +++ b/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java @@ -6,7 +6,7 @@ import java.net.URL; import java.util.concurrent.atomic.AtomicReference; public class rusEFIVersion { - public static final int CONSOLE_VERSION = 20220127; + public static final int CONSOLE_VERSION = 20220128; public static AtomicReference firmwareVersion = new AtomicReference<>("N/A"); public static long classBuildTimeMillis() { diff --git a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java index 4210b48110..2d3dcca29e 100644 --- a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java +++ b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java @@ -51,13 +51,11 @@ public class BenchTestPane { private Component grabPerformanceTrace() { JButton button = new JButton("Grab PTrace"); - button.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState(); - PerformanceTraceHelper.grabPerformanceTrace(bp); - } + ActionListener actionListener = e -> uiContext.getLinkManager().COMMUNICATION_EXECUTOR.execute(() -> { + BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState(); + PerformanceTraceHelper.grabPerformanceTrace(button, bp); }); + button.addActionListener(actionListener); return UiUtils.wrap(button); } diff --git a/java_console/ui/src/main/java/com/rusefi/PerformanceTraceHelper.java b/java_console/ui/src/main/java/com/rusefi/PerformanceTraceHelper.java index e728d86d33..9ebd729655 100644 --- a/java_console/ui/src/main/java/com/rusefi/PerformanceTraceHelper.java +++ b/java_console/ui/src/main/java/com/rusefi/PerformanceTraceHelper.java @@ -1,14 +1,13 @@ package com.rusefi; -import com.opensr5.ConfigurationImage; import com.opensr5.Logger; -import com.opensr5.ini.IniFileModel; import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.config.generated.Fields; import com.rusefi.tracing.Entry; import com.rusefi.tracing.JsonOutput; import com.rusefi.ui.RpmModel; +import javax.swing.*; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; @@ -17,7 +16,11 @@ import static com.rusefi.binaryprotocol.IoHelper.checkResponseCode; import static com.rusefi.tools.ConsoleTools.startAndConnect; public class PerformanceTraceHelper { - public static void grabPerformanceTrace(BinaryProtocol bp) { + public static void grabPerformanceTrace(JComponent parent, BinaryProtocol bp) { + if (bp == null) { + JOptionPane.showMessageDialog(parent, "Failed to located serial ports"); + return; + } bp.executeCommand(new byte[]{Fields.TS_PERF_TRACE_BEGIN}, "begin trace"); try { @@ -25,7 +28,7 @@ public class PerformanceTraceHelper { byte[] packet = bp.executeCommand(new byte[]{Fields.TS_PERF_TRACE_GET_BUFFER}, "get trace", true); if (!checkResponseCode(packet, (byte) Fields.TS_RESPONSE_OK) || ((packet.length - 1) % 8) != 0) - throw new IllegalStateException("Unexpected packet"); + throw new IllegalStateException("Unexpected packet, length=" + (packet != null ? 0 : packet.length)); List data = Entry.parseBuffer(packet); @@ -42,7 +45,7 @@ public class PerformanceTraceHelper { public static void getPerformanceTune() { startAndConnect(linkManager -> { BinaryProtocol binaryProtocol = linkManager.getConnector().getBinaryProtocol(); - grabPerformanceTrace(binaryProtocol); + grabPerformanceTrace(null, binaryProtocol); System.exit(0); return null; });