diff --git a/java_console/autotest/src/com/rusefi/functional_tests/EcuTestHelper.java b/java_console/autotest/src/com/rusefi/functional_tests/EcuTestHelper.java index ecfa36e473..4e53a707b1 100644 --- a/java_console/autotest/src/com/rusefi/functional_tests/EcuTestHelper.java +++ b/java_console/autotest/src/com/rusefi/functional_tests/EcuTestHelper.java @@ -6,6 +6,7 @@ import com.rusefi.IoUtil; import com.rusefi.TestingUtils; import com.rusefi.Timeouts; import com.rusefi.config.generated.Fields; +import com.rusefi.core.ISensorCentral; import com.rusefi.core.Sensor; import com.rusefi.core.SensorCentral; import com.rusefi.io.CommandQueue; @@ -44,17 +45,18 @@ public class EcuTestHelper { sleepSeconds(settleTime); AtomicReference result = new AtomicReference<>(); long start = System.currentTimeMillis(); - SensorCentral.SensorListener listener = value -> { - double actualRpm = SensorCentral.getInstance().getValue(Sensor.RPM); + + ISensorCentral.ListenerToken listener = SensorCentral.getInstance().addListener(Sensor.RPM, actualRpm -> { if (!isCloseEnough(rpm, actualRpm)) { long seconds = (System.currentTimeMillis() - start) / 1000; result.set("Got " + actualRpm + " while trying to stay at " + rpm + " after " + seconds + " seconds"); } - }; - SensorCentral.getInstance().addListener(Sensor.RPM, listener); + }); + sleepSeconds(testDuration); callback.apply(result.get()); - SensorCentral.getInstance().removeListener(Sensor.RPM, listener); + + listener.remove(); } @NotNull @@ -131,7 +133,7 @@ public class EcuTestHelper { sleepSeconds(2); sendCommand("set " + Fields.CMD_ENGINE_TYPE + " " + type, COMPLEX_COMMAND_RETRY, Timeouts.SET_ENGINE_TIMEOUT); // TODO: document the reason for this sleep?! - sleepSeconds(3); + sleepSeconds(1); sendCommand(getEnableCommand(Fields.CMD_PWM)); sendCommand(getEnableCommand(Fields.CMD_SELF_STIMULATION)); // // we need to skip one chart since it might have been produced with previous engine type diff --git a/java_console/io/src/main/java/com/rusefi/io/ConnectionStatusLogic.java b/java_console/io/src/main/java/com/rusefi/io/ConnectionStatusLogic.java index b9f2970d2b..faed011a56 100644 --- a/java_console/io/src/main/java/com/rusefi/io/ConnectionStatusLogic.java +++ b/java_console/io/src/main/java/com/rusefi/io/ConnectionStatusLogic.java @@ -31,12 +31,7 @@ public class ConnectionStatusLogic { private List listeners = new CopyOnWriteArrayList<>(); private ConnectionStatusLogic() { - SensorCentral.getInstance().addListener(Sensor.TIME_SECONDS, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - markConnected(); - } - }); + SensorCentral.getInstance().addListener(Sensor.TIME_SECONDS, value -> markConnected()); MessagesCentral.getInstance().addListener(new MessagesCentral.MessageListener() { @Override diff --git a/java_console/models/src/main/java/com/rusefi/core/SensorStats.java b/java_console/models/src/main/java/com/rusefi/core/SensorStats.java index 2aaacbb76f..1591452fbe 100644 --- a/java_console/models/src/main/java/com/rusefi/core/SensorStats.java +++ b/java_console/models/src/main/java/com/rusefi/core/SensorStats.java @@ -48,36 +48,30 @@ public class SensorStats { public static void startStandardDeviation(Sensor source, final Sensor destination) { final CyclicBuffer cb = new CyclicBuffer(30); - SensorCentral.getInstance().addListener(source, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - cb.add(value); - if (cb.getSize() == cb.getMaxSize()) { - double stdDev = DataBuffer.getStandardDeviation(cb.getValues()); - SensorCentral.getInstance().setValue(stdDev, destination); - } + SensorCentral.getInstance().addListener(source, + value -> { + cb.add(value); + if (cb.getSize() == cb.getMaxSize()) { + double stdDev = DataBuffer.getStandardDeviation(cb.getValues()); + SensorCentral.getInstance().setValue(stdDev, destination); } } ); } public static void startDelta(Sensor input1, final Sensor input2, final Sensor destination) { - SensorCentral.getInstance().addListener(input1, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - double valueMs = 1.0 * (value - SensorCentral.getInstance().getValue(input2)) / EngineReport.ENGINE_SNIFFER_TICKS_PER_MS; + SensorCentral.getInstance().addListener(input1, + value -> { + double valueMs = (value - SensorCentral.getInstance().getValue(input2)) / EngineReport.ENGINE_SNIFFER_TICKS_PER_MS; SensorCentral.getInstance().setValue(valueMs, destination); - } - }); + }); } public static void startConversion(final Sensor source, final Sensor destination, final SensorConversion conversion) { - SensorCentral.getInstance().addListener(source, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { + SensorCentral.getInstance().addListener(source, + value -> { double converted = conversion.convertValue(value); SensorCentral.getInstance().setValue(converted, destination); - } - }); + }); } } diff --git a/java_console/ui/src/main/java/com/rusefi/sensor_logs/SensorLogger.java b/java_console/ui/src/main/java/com/rusefi/sensor_logs/SensorLogger.java index fbce55dae3..ffbd7e3c79 100644 --- a/java_console/ui/src/main/java/com/rusefi/sensor_logs/SensorLogger.java +++ b/java_console/ui/src/main/java/com/rusefi/sensor_logs/SensorLogger.java @@ -96,15 +96,13 @@ public class SensorLogger { return; } isInitialized = true; - SensorCentral.getInstance().addListener(Sensor.TIME_SECONDS, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { + SensorCentral.getInstance().addListener(Sensor.TIME_SECONDS, + value -> { if (ConnectionStatusLogic.INSTANCE.getValue() != ConnectionStatusValue.CONNECTED) return; for (SensorLog sensorLog : sensorLogs) sensorLog.writeSensorLogLine(); - } - }); + }); } public double getSecondsSinceFileStart() { diff --git a/java_console/ui/src/main/java/com/rusefi/ui/FuelTunePane.java b/java_console/ui/src/main/java/com/rusefi/ui/FuelTunePane.java index 95de37f12a..35ea9f66d2 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/FuelTunePane.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/FuelTunePane.java @@ -285,9 +285,7 @@ public class FuelTunePane { public void showContent() { final ISensorCentral sc = SensorCentral.getInstance(); - sc.addListener(Sensor.RPM, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { + sc.addListener(Sensor.RPM, value -> { if (!collect.isSelected()) return; int rpm = (int) value; @@ -303,7 +301,7 @@ public class FuelTunePane { incomingDataPoints.add(newPoint); } } - }); + ); loadArray(veLoadBins, veLoadOffset); loadArray(veRpmBins, veRpmOffset); diff --git a/java_console/ui/src/main/java/com/rusefi/ui/RpmModel.java b/java_console/ui/src/main/java/com/rusefi/ui/RpmModel.java index 74c51ad37e..d0461e587f 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/RpmModel.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/RpmModel.java @@ -27,12 +27,7 @@ public class RpmModel { } private RpmModel() { - SensorCentral.getInstance().addListener(Sensor.RPM, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - setValue((int) value); - } - }); + SensorCentral.getInstance().addListener(Sensor.RPM, value -> setValue((int) value)); } public void setValue(int rpm) { diff --git a/java_console/ui/src/main/java/com/rusefi/ui/light/LightweightGUI.java b/java_console/ui/src/main/java/com/rusefi/ui/light/LightweightGUI.java index 5a1fa7dcde..94c29e0421 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/light/LightweightGUI.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/light/LightweightGUI.java @@ -45,13 +45,7 @@ public class LightweightGUI { JLabel firmwareVersion = new JLabel(); - SensorCentral.getInstance().addListener(Sensor.FIRMWARE_VERSION, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - firmwareVersion.setText(Integer.toString((int) value)); - } - }); - + SensorCentral.getInstance().addListener(Sensor.FIRMWARE_VERSION, value -> firmwareVersion.setText(Integer.toString((int) value))); leftPanel.add(firmwareVersion); content.add(topPanel, BorderLayout.NORTH); diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java index b6da953547..26b2ca7d0d 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java @@ -123,12 +123,7 @@ public class LiveDocPanel { } }); result.addControl(label); - SensorCentral.getInstance().addListener(sensor, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - label.setText(niceToString(value, LIVE_DATA_PRECISION)); - } - }); + SensorCentral.getInstance().addListener(sensor, value -> label.setText(niceToString(value, LIVE_DATA_PRECISION))); } else if (r instanceof IfRequest) { IfRequest request = (IfRequest) r; diff --git a/java_console/ui/src/main/java/com/rusefi/ui/widgets/IntGaugeLabel.java b/java_console/ui/src/main/java/com/rusefi/ui/widgets/IntGaugeLabel.java index 16cc2551d3..81baf1452a 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/widgets/IntGaugeLabel.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/widgets/IntGaugeLabel.java @@ -16,11 +16,7 @@ public class IntGaugeLabel extends JLabel { public IntGaugeLabel(final String shortName, Sensor sensor) { if (sensor.getType() != FieldType.INT) throw new IllegalArgumentException(sensor.name()); - SensorCentral.getInstance().addListener(sensor, new SensorCentral.SensorListener() { - @Override - public void onSensorUpdate(double value) { - IntGaugeLabel.this.setText(shortName + ": " + (int)value); - } - }); + + SensorCentral.getInstance().addListener(sensor, value -> setText(shortName + ": " + (int)value)); } } diff --git a/java_console/ui/src/main/java/com/rusefi/ui/widgets/SensorGauge.java b/java_console/ui/src/main/java/com/rusefi/ui/widgets/SensorGauge.java index ba64c56b9c..feb66891bf 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/widgets/SensorGauge.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/widgets/SensorGauge.java @@ -55,13 +55,14 @@ public class SensorGauge { gauge.setBackgroundColor(BackgroundColor.LIGHT_GRAY); - SensorCentral.getInstance().addListener(sensor, new SensorCentral.SensorListener() { - public void onSensorUpdate(double value) { + SensorCentral.getInstance().addListener(sensor, + value -> { if (GaugesPanel.IS_PAUSED) return; gauge.setValue(sensor.translateValue(value)); } - }); + ); + gauge.setValue(sensor.translateValue(SensorCentral.getInstance().getValue(sensor))); gauge.setLcdDecimals(2);