diff --git a/java_console/models/src/com/rusefi/core/SensorCentral.java b/java_console/models/src/com/rusefi/core/SensorCentral.java index e2bd75aaee..ace2d86a3d 100644 --- a/java_console/models/src/com/rusefi/core/SensorCentral.java +++ b/java_console/models/src/com/rusefi/core/SensorCentral.java @@ -22,9 +22,9 @@ public class SensorCentral { public static final String RPM_KEY = "rpm"; private static final SensorCentral INSTANCE = new SensorCentral(); - private final Map values = new EnumMap(Sensor.class); + private final Map values = new EnumMap<>(Sensor.class); - private final Map> allListeners = new EnumMap>(Sensor.class); + private final Map> allListeners = new EnumMap<>(Sensor.class); public static SensorCentral getInstance() { return INSTANCE; @@ -73,6 +73,8 @@ public class SensorCentral { }; public void setValue(double value, final Sensor sensor) { + Double oldValue = values.get(sensor); + boolean isUpdated = oldValue == null || !oldValue.equals(value); values.put(sensor, value); List listeners; synchronized (allListeners) { @@ -90,6 +92,11 @@ public class SensorCentral { LoggerData d = new LoggerData() { + @Override + public String toString() { + return getName(); + } + @Override public String getId() { return sensor.getName(); @@ -137,7 +144,8 @@ public class SensorCentral { }; r.setDataValue(d, value); - TableUpdateHandler.getInstance().handleDataUpdate(r); + if (isUpdated) + TableUpdateHandler.getInstance().handleDataUpdate(r); } public static String getInternalAdcRepresentation(double value) { diff --git a/java_console/romraider/src/com/romraider/logger/ecu/ui/handler/table/TableUpdateHandler.java b/java_console/romraider/src/com/romraider/logger/ecu/ui/handler/table/TableUpdateHandler.java index c3d5e56aa6..cfcda0151b 100644 --- a/java_console/romraider/src/com/romraider/logger/ecu/ui/handler/table/TableUpdateHandler.java +++ b/java_console/romraider/src/com/romraider/logger/ecu/ui/handler/table/TableUpdateHandler.java @@ -50,6 +50,7 @@ public final class TableUpdateHandler implements DataUpdateHandler { if (tables != null && !tables.isEmpty()) { String formattedValue = loggerData.getSelectedConvertor().format(response.getDataValue(loggerData)); for (Table table : tables) { + table.clearLiveDataTrace(); table.highlightLiveData(formattedValue); } } diff --git a/java_console/romraider/src/com/romraider/maps/Table1D.java b/java_console/romraider/src/com/romraider/maps/Table1D.java index 21a11ebb52..ed78f00175 100644 --- a/java_console/romraider/src/com/romraider/maps/Table1D.java +++ b/java_console/romraider/src/com/romraider/maps/Table1D.java @@ -283,6 +283,18 @@ public class Table1D extends Table { } } + boolean ec = false; + + @Override + public void clearLiveDataTrace() { + super.clearLiveDataTrace(); + if (!ec) { + ec = true; + getAxisParent().clearLiveDataTrace(); + ec = false; + } + } + @Override public void updateTableLabel() { this.getAxisParent().updateTableLabel(); diff --git a/java_console/ui/src/com/rusefi/Launcher.java b/java_console/ui/src/com/rusefi/Launcher.java index e73908fe34..263982d28b 100644 --- a/java_console/ui/src/com/rusefi/Launcher.java +++ b/java_console/ui/src/com/rusefi/Launcher.java @@ -34,7 +34,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; * @see com.rusefi.StartupFrame */ public class Launcher { - public static final int CONSOLE_VERSION = 20150310; + public static final int CONSOLE_VERSION = 20150311; public static final boolean SHOW_STIMULATOR = false; public static final String TAB_INDEX = "main_tab"; private final String port;