From 5371b3b1fbed56a6e94cb6ad0a3c5ab3e33bcbe3 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 25 Jun 2020 20:24:42 -0400 Subject: [PATCH] refactoring: better dependency control --- java_console/io/src/com/rusefi/io/LinkManager.java | 5 ----- .../models/src/com/rusefi/rusEFIVersion.java | 2 +- .../com/rusefi/sensor_logs/PlainTextSensorLog.java | 8 +++++++- .../java/com/rusefi/sensor_logs/SensorLogger.java | 13 ++++++++++--- .../ui/src/main/java/com/rusefi/ui/UIContext.java | 2 +- .../java/com/rusefi/ui/etb/EtbCommandsPanel.java | 2 +- .../com/rusefi/ui/etb/EtbMonteCarloSequence.java | 12 +++++++----- 7 files changed, 27 insertions(+), 17 deletions(-) diff --git a/java_console/io/src/com/rusefi/io/LinkManager.java b/java_console/io/src/com/rusefi/io/LinkManager.java index bf92ae7d3f..2dd3e9dc4d 100644 --- a/java_console/io/src/com/rusefi/io/LinkManager.java +++ b/java_console/io/src/com/rusefi/io/LinkManager.java @@ -57,11 +57,6 @@ public class LinkManager { return result; } - public static BinaryProtocol getCurrentStreamStateStatic() { - Objects.requireNonNull(connector, "connector"); - return connector.getBinaryProtocol(); - } - public BinaryProtocol getCurrentStreamState() { Objects.requireNonNull(connector, "connector"); return connector.getBinaryProtocol(); diff --git a/java_console/models/src/com/rusefi/rusEFIVersion.java b/java_console/models/src/com/rusefi/rusEFIVersion.java index ca38a00da4..2a76cdde9a 100644 --- a/java_console/models/src/com/rusefi/rusEFIVersion.java +++ b/java_console/models/src/com/rusefi/rusEFIVersion.java @@ -3,6 +3,6 @@ package com.rusefi; import java.util.concurrent.atomic.AtomicReference; public class rusEFIVersion { - public static final int CONSOLE_VERSION = 20200623; + public static final int CONSOLE_VERSION = 20200625; public static AtomicReference firmwareVersion = new AtomicReference<>("N/A"); } diff --git a/java_console/ui/src/main/java/com/rusefi/sensor_logs/PlainTextSensorLog.java b/java_console/ui/src/main/java/com/rusefi/sensor_logs/PlainTextSensorLog.java index aebf67ae50..4ddef17c86 100644 --- a/java_console/ui/src/main/java/com/rusefi/sensor_logs/PlainTextSensorLog.java +++ b/java_console/ui/src/main/java/com/rusefi/sensor_logs/PlainTextSensorLog.java @@ -8,6 +8,7 @@ import com.rusefi.config.generated.Fields; import com.rusefi.core.Sensor; import com.rusefi.core.SensorCentral; import com.rusefi.io.LinkManager; +import com.rusefi.ui.UIContext; import com.rusefi.ui.config.ConfigField; import java.io.FileWriter; @@ -20,10 +21,15 @@ import java.io.Writer; * Andrey Belomutskiy, (c) 2013-2020 */ public class PlainTextSensorLog implements SensorLog { + private final UIContext uiContext; private Writer logFile; private long fileStartTime; + public PlainTextSensorLog(UIContext uiContext) { + this.uiContext = uiContext; + } + private void startIfNeeded() { if (logFile == null) { /* @@ -45,7 +51,7 @@ public class PlainTextSensorLog implements SensorLog { logFile.write("Captured " + FileLog.getDate() + "\r\n"); int debugMode = -1; - BinaryProtocol bp = LinkManager.getCurrentStreamStateStatic(); + BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState(); if (bp != null) { ConfigurationImage ci = bp.getControllerConfiguration(); if (ci != null) { 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 93ac4168c2..b213a155fc 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 @@ -4,6 +4,7 @@ import com.rusefi.core.Sensor; import com.rusefi.core.SensorCentral; import com.rusefi.io.ConnectionStatusLogic; import com.rusefi.io.ConnectionStatusValue; +import com.rusefi.ui.UIContext; import java.util.Arrays; import java.util.List; @@ -81,10 +82,16 @@ public class SensorLogger { Sensor.engineMakeCodeNameCrc16, Sensor.tuneCrc16, }; + private final UIContext uiContext; - private static List sensorLogs = Arrays.asList(new PlainTextSensorLog(), new BinarySensorLogRestarter()); + private List sensorLogs; - private static boolean isInitialized; + private boolean isInitialized; + + public SensorLogger(UIContext uiContext) { + this.uiContext = uiContext; + sensorLogs = Arrays.asList(new PlainTextSensorLog(uiContext), new BinarySensorLogRestarter()); + } public synchronized void init() { if (isInitialized) { @@ -102,7 +109,7 @@ public class SensorLogger { }); } - public static double getSecondsSinceFileStart() { + public double getSecondsSinceFileStart() { return sensorLogs.get(0).getSecondsSinceFileStart(); } diff --git a/java_console/ui/src/main/java/com/rusefi/ui/UIContext.java b/java_console/ui/src/main/java/com/rusefi/ui/UIContext.java index 23aa87f80e..8f4f2c3246 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/UIContext.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/UIContext.java @@ -6,7 +6,7 @@ import com.rusefi.sensor_logs.SensorLogger; public class UIContext { private final LinkManager linkManager = new LinkManager(); - public SensorLogger sensorLogger = new SensorLogger(); + public SensorLogger sensorLogger = new SensorLogger(this); public LinkManager getLinkManager() { return linkManager; diff --git a/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbCommandsPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbCommandsPanel.java index 2d9c98cb0f..fe02579833 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbCommandsPanel.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbCommandsPanel.java @@ -64,7 +64,7 @@ public class EtbCommandsPanel { content.add(new EnumConfigField(uiContext, Fields.DEBUGMODE, "Debug Mode").getContent()); content.add(createMagicSpotsPanel()); - content.add(UiUtils.wrap(new EtbMonteCarloSequence().getButton())); + content.add(UiUtils.wrap(new EtbMonteCarloSequence(uiContext).getButton())); content.add(UiUtils.wrap(new EtbReturnToNeutral().getContent())); } diff --git a/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbMonteCarloSequence.java b/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbMonteCarloSequence.java index 02590bf1c3..e5b832b269 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbMonteCarloSequence.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/etb/EtbMonteCarloSequence.java @@ -7,12 +7,12 @@ import com.rusefi.etb.EtbTarget; import com.rusefi.etb.StandardTestSequence; import com.rusefi.etb.TestSequenceStep; import com.rusefi.io.CommandQueue; +import com.rusefi.ui.UIContext; import javax.swing.*; import java.util.concurrent.atomic.AtomicInteger; import static com.romraider.util.ThreadUtil.sleep; -import static com.rusefi.sensor_logs.SensorLogger.getSecondsSinceFileStart; import static com.rusefi.Timeouts.SECOND; import static com.rusefi.config.generated.Fields.CMD_ETB_DUTY; import static com.rusefi.etb.TestSequenceStep.count; @@ -28,11 +28,13 @@ public class EtbMonteCarloSequence { private static final double DEFAULT_POSITION = 7; private static final int CLT_THRESHOLD = 75; private final JButton button = new JButton("ETB I feel lucky!"); + private final UIContext uiContext; private int counter; private double bestResultSoFar = 750; - public EtbMonteCarloSequence() { + public EtbMonteCarloSequence(UIContext uiContext) { + this.uiContext = uiContext; button.addActionListener(e -> { counter = 0; @@ -68,7 +70,7 @@ public class EtbMonteCarloSequence { CommandQueue.getInstance().write("set etb_d " + dFactor); MessagesCentral.getInstance().postMessage(EtbMonteCarloSequence.class, - getSecondsSinceFileStart() + " running " + stats); + uiContext.sensorLogger.getSecondsSinceFileStart() + " running " + stats); TestSequenceStep firstStep = new EtbTarget(10 * SECOND, DEFAULT_POSITION, null, TestSequenceStep.Condition.YES); TestSequenceStep.Condition condition = new TestSequenceStep.Condition() { @@ -108,10 +110,10 @@ public class EtbMonteCarloSequence { if (cycleResult < bestResultSoFar) { bestResultSoFar = cycleResult; MessagesCentral.getInstance().postMessage(EtbMonteCarloSequence.class, - getSecondsSinceFileStart() + ":" + stats + ":new_record:" + bestResultSoFar); + uiContext.sensorLogger.getSecondsSinceFileStart() + ":" + stats + ":new_record:" + bestResultSoFar); } MessagesCentral.getInstance().postMessage(EtbMonteCarloSequence.class, - getSecondsSinceFileStart() + ":" + stats + ":result:" + cycleResult); + uiContext.sensorLogger.getSecondsSinceFileStart() + ":" + stats + ":result:" + cycleResult); if (counter == TOTAL_CYCLES_COUNT) { stopETB(); MessagesCentral.getInstance().postMessage(EtbTestSequence.class, "ETB MC sequence done!");