refactoring: better dependency control

This commit is contained in:
rusefi 2020-06-25 20:24:42 -04:00
parent 1e497b626e
commit 5371b3b1fb
7 changed files with 27 additions and 17 deletions

View File

@ -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();

View File

@ -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<String> firmwareVersion = new AtomicReference<>("N/A");
}

View File

@ -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) {

View File

@ -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<SensorLog> sensorLogs = Arrays.asList(new PlainTextSensorLog(), new BinarySensorLogRestarter());
private List<SensorLog> 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();
}

View File

@ -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;

View File

@ -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()));
}

View File

@ -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!");