From ef20cf8916bb5fe1cedc12ebd2ebc6d9b8d552ec Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 25 Jun 2022 19:42:11 -0400 Subject: [PATCH] visiting "live data" tab causes fatal error on ECU #4271 actual fix --- .../com/rusefi/binaryprotocol/BinaryProtocol.java | 2 +- .../java/com/rusefi/ui/livedocs/LiveDocsRegistry.java | 11 +++++------ .../src/main/java/com/rusefi/rusEFIVersion.java | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java index 50af4a0fd5..f4ef1badea 100644 --- a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -231,7 +231,7 @@ public class BinaryProtocol { textListener.onDataArrived((text + "\r\n").getBytes()); } if (linkManager.isNeedPullLiveData()) { - LiveDocsRegistry.LiveDataProvider liveDataProvider = LiveDocsRegistry.getLiveDataProvider(BinaryProtocol.this); + LiveDocsRegistry.LiveDataProvider liveDataProvider = LiveDocsRegistry.getLiveDataProvider(); LiveDocsRegistry.INSTANCE.refresh(liveDataProvider); } } diff --git a/java_console/io/src/main/java/com/rusefi/ui/livedocs/LiveDocsRegistry.java b/java_console/io/src/main/java/com/rusefi/ui/livedocs/LiveDocsRegistry.java index 8ea73268d8..6ea9f73d7b 100644 --- a/java_console/io/src/main/java/com/rusefi/ui/livedocs/LiveDocsRegistry.java +++ b/java_console/io/src/main/java/com/rusefi/ui/livedocs/LiveDocsRegistry.java @@ -2,7 +2,7 @@ package com.rusefi.ui.livedocs; import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.config.Field; -import com.rusefi.config.generated.Fields; +import com.rusefi.core.SensorCentral; import com.rusefi.enums.live_data_e; import com.rusefi.ldmp.StateDictionary; import org.jetbrains.annotations.NotNull; @@ -46,7 +46,7 @@ public enum LiveDocsRegistry { } @NotNull - public static LiveDataProvider getLiveDataProvider(BinaryProtocol binaryProtocol) { + public static LiveDataProvider getLiveDataProvider() { return context -> { Field[] values = StateDictionary.INSTANCE.getFields(context); int size = Field.getStructureSize(values); @@ -54,13 +54,12 @@ public enum LiveDocsRegistry { putShort(packet, 0, swap16(context.ordinal())); // offset putShort(packet, 2, swap16(size)); - byte[] responseWithCode = binaryProtocol.executeCommand(Fields.TS_GET_STRUCT, packet, "get LiveDoc"); - if (responseWithCode == null || responseWithCode.length != (size + 1) || responseWithCode[0] != Fields.TS_RESPONSE_OK) - return null; + int structOffset = StateDictionary.INSTANCE.getOffset(context); + byte[] overallOutputs = SensorCentral.getInstance().getResponse(); byte[] response = new byte[size]; - System.arraycopy(responseWithCode, 1, response, 0, size); + System.arraycopy(overallOutputs, structOffset, overallOutputs, 0, size); return response; }; } 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 c2a4e2f0c7..2f27ac71d9 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 = 20220618; + public static final int CONSOLE_VERSION = 20220625; public static AtomicReference firmwareVersion = new AtomicReference<>("N/A"); public static long classBuildTimeMillis() {