diff --git a/java_console/autotest/src/com/rusefi/AutoTest.java b/java_console/autotest/src/com/rusefi/AutoTest.java index 4f45bd53f9..77b5601222 100644 --- a/java_console/autotest/src/com/rusefi/AutoTest.java +++ b/java_console/autotest/src/com/rusefi/AutoTest.java @@ -93,18 +93,18 @@ public class AutoTest { setEngineType(32); changeRpm(900); // first let's get to expected RPM - assertRpmDoesNotJump(20000, 15, 30, FAIL); + assertRpmDoesNotJump(20000, 15, 30, FAIL, linkManager.getCommandQueue()); } private void testV12() { setEngineType(40); changeRpm(700); // first let's get to expected RPM - assertRpmDoesNotJump(15000, 15, 30, FAIL); + assertRpmDoesNotJump(15000, 15, 30, FAIL, linkManager.getCommandQueue()); } - public static void assertRpmDoesNotJump(int rpm, int settleTime, int testDuration, Function callback) { - IoUtil.changeRpm(CommandQueue.getInstance(), rpm); + public static void assertRpmDoesNotJump(int rpm, int settleTime, int testDuration, Function callback, CommandQueue commandQueue) { + IoUtil.changeRpm(commandQueue, rpm); sleepSeconds(settleTime); AtomicReference result = new AtomicReference<>(); SensorCentral.SensorListener listener = new SensorCentral.SensorListener() { @@ -155,13 +155,13 @@ public class AutoTest { String msg = "BMW"; EngineChart chart; changeRpm(200); - chart = nextChart1(); + chart = nextChart(); double x = 173.988; // something is wrong here - it's a 6 cylinder here, why 4 cylinder cycle? assertWave(msg, chart, EngineChart.SPARK_1, 0.0199666, x, x + 180, x + 360, x + 540); changeRpm(1200); - chart = nextChart1(); + chart = nextChart(); x = 688.464; // something is wrong here - it's a 6 cylinder here, why 4 cylinder cycle? @@ -173,7 +173,7 @@ public class AutoTest { } void changeRpm(final int rpm) { - IoUtil.changeRpm(CommandQueue.getInstance(), rpm); + IoUtil.changeRpm(linkManager.getCommandQueue(), rpm); } private void testMitsu() { @@ -208,7 +208,7 @@ public class AutoTest { String msg = "mazda 626 default cranking"; changeRpm(200); EngineChart chart; - chart = nextChart1(); + chart = nextChart(); double x = 102; assertWave(msg, chart, EngineChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540); @@ -274,12 +274,12 @@ public class AutoTest { assertWave(true, msg, chart, EngineChart.INJECTOR_4, 0.29233, 0.1, 0.2, x); sendCommand("set_whole_timing_map 520"); - chart = nextChart1(); + chart = nextChart(); x = 328; assertWave(true, msg, chart, EngineChart.SPARK_1, 0.13299999999999998, EngineReport.RATIO, EngineReport.RATIO, x + 180, x + 540); sendCommand("set_whole_timing_map 0"); - chart = nextChart1(); + chart = nextChart(); x = 128; assertWave(true, msg, chart, EngineChart.SPARK_1, 0.13299999999999998, EngineReport.RATIO, EngineReport.RATIO, x + 180, x + 540); } @@ -292,7 +292,7 @@ public class AutoTest { changeRpm(260); changeRpm(200); String msg = "ProtegeLX cranking"; - chart = nextChart1(); + chart = nextChart(); assertEquals("", 12, SensorCentral.getInstance().getValue(Sensor.VBATT), 0.1); double x = 107; assertWave(msg, chart, EngineChart.SPARK_3, 0.194433, x); @@ -303,7 +303,7 @@ public class AutoTest { msg = "ProtegeLX running"; changeRpm(2000); - chart = nextChart1(); + chart = nextChart(); x = 112; assertWave(msg, chart, EngineChart.SPARK_1, 0.13333333333333333, x, x + 180, x + 360, x + 540); x = 0; @@ -320,7 +320,7 @@ public class AutoTest { * note that command order matters - RPM change resets wave chart */ changeRpm(2000); - chart = nextChart1(); + chart = nextChart(); String msg = "1995 Neon"; double x = -70; @@ -340,7 +340,7 @@ public class AutoTest { sendComplexCommand("set algorithm 3"); changeRpm(2600); changeRpm(2000); - chart = nextChart1(); + chart = nextChart(); x = -70; assertWaveFall(msg, chart, EngineChart.INJECTOR_4, 0.493, x + 540); } @@ -353,7 +353,7 @@ public class AutoTest { setEngineType(4); EngineChart chart; changeRpm(2000); - chart = nextChart1(); + chart = nextChart(); String msg = "Fiesta"; double x = 312; @@ -367,7 +367,7 @@ public class AutoTest { setEngineType(7); EngineChart chart; changeRpm(2000); - chart = nextChart1(); + chart = nextChart(); String msg = "ford 6"; @@ -376,7 +376,7 @@ public class AutoTest { assertWaveNull(msg, chart, EngineChart.TRIGGER_2); sendComplexCommand("set " + "trigger_type" + " 1"); // TT_FORD_ASPIRE - chart = nextChart1(); + chart = nextChart(); assertTrue(msg, chart.get(EngineChart.TRIGGER_2) != null); } @@ -392,14 +392,14 @@ public class AutoTest { changeRpm(200); double x; - chart = nextChart1(); + chart = nextChart(); assertEquals(12, SensorCentral.getInstance().getValue(Sensor.VBATT)); x = 55; assertWave("aspire default cranking ", chart, EngineChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540); changeRpm(600); - chart = nextChart1(); + chart = nextChart(); x = 78; assertWave(true, "aspire default running ", chart, EngineChart.SPARK_1, 0.04, 0.1, 0.1, x, x + 180, x + 360, x + 540); @@ -557,7 +557,7 @@ public class AutoTest { try { LinkManager linkManager = new LinkManager(); IoUtil.connectToSimulator(linkManager, startSimulator); - new AutoTest(linkManager, CommandQueue.getInstance()).mainTestBody(); + new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody(); } catch (Throwable e) { e.printStackTrace(); failed = true; diff --git a/java_console/autotest/src/com/rusefi/RealHwTest.java b/java_console/autotest/src/com/rusefi/RealHwTest.java index 3656d10636..1ba2e46f89 100644 --- a/java_console/autotest/src/com/rusefi/RealHwTest.java +++ b/java_console/autotest/src/com/rusefi/RealHwTest.java @@ -85,6 +85,6 @@ public class RealHwTest { private static void runRealHardwareTest(String port) throws Exception { LinkManager linkManager = new LinkManager(); IoUtil.realHardwareConnect(linkManager, port); - new AutoTest(linkManager, CommandQueue.getInstance()).mainTestBody(); + new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody(); } } diff --git a/java_console/autotest/src/com/rusefi/TestingUtils.java b/java_console/autotest/src/com/rusefi/TestingUtils.java index d91e0e937e..567e558c61 100644 --- a/java_console/autotest/src/com/rusefi/TestingUtils.java +++ b/java_console/autotest/src/com/rusefi/TestingUtils.java @@ -112,10 +112,6 @@ public class TestingUtils { return chart; } - static EngineChart nextChart1() { - return nextChart(); - } - static String getNextWaveChart(CommandQueue commandQueue) { IoUtil.sendCommand(Fields.CMD_RESET_ENGINE_SNIFFER, commandQueue); String result = getEngineChart(); diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java index 73db43569c..99125368a9 100644 --- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -173,7 +173,7 @@ public class BinaryProtocol implements BinaryProtocolCommands { /** * this here to make CommandQueue happy */ - CommandQueue.getInstance().handleConfirmationMessage(CommandQueue.CONFIRMATION_PREFIX + command); + linkManager.getCommandQueue().handleConfirmationMessage(CommandQueue.CONFIRMATION_PREFIX + command); } /** diff --git a/java_console/io/src/com/rusefi/io/LinkManager.java b/java_console/io/src/com/rusefi/io/LinkManager.java index 87959e5c39..15126dd64d 100644 --- a/java_console/io/src/com/rusefi/io/LinkManager.java +++ b/java_console/io/src/com/rusefi/io/LinkManager.java @@ -62,6 +62,10 @@ public class LinkManager { return connector.getBinaryProtocol(); } + public CommandQueue getCommandQueue() { + return CommandQueue.getInstance(); + } + public enum LogLevel { INFO, DEBUG, diff --git a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java index 9c65479430..3943ccfb94 100644 --- a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java +++ b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java @@ -105,22 +105,22 @@ public class BenchTestPane { } private Component createDizzyTest() { - CommandControl panel = new FixedCommandControl("Dizzy", "dizzy.jpg", TEST, "dizzybench"); + CommandControl panel = new FixedCommandControl(uiContext, "Dizzy", "dizzy.jpg", TEST, "dizzybench"); return panel.getContent(); } private Component createFanTest() { - CommandControl panel = new FixedCommandControl("Radiator Fan", "radiator_fan.jpg", TEST, "fanbench"); + CommandControl panel = new FixedCommandControl(uiContext, "Radiator Fan", "radiator_fan.jpg", TEST, "fanbench"); return panel.getContent(); } private Component createAcRelayTest() { - CommandControl panel = new FixedCommandControl("A/C Compressor Relay", ".jpg", TEST, "acrelaybench"); + CommandControl panel = new FixedCommandControl(uiContext, "A/C Compressor Relay", ".jpg", TEST, "acrelaybench"); return panel.getContent(); } private Component createFuelPumpTest() { - CommandControl panel = new FixedCommandControl("Fuel Pump", "fuel_pump.jpg", TEST, "fuelpumpbench"); + CommandControl panel = new FixedCommandControl(uiContext, "Fuel Pump", "fuel_pump.jpg", TEST, "fuelpumpbench"); return panel.getContent(); } diff --git a/java_console/ui/src/main/java/com/rusefi/FixedCommandControl.java b/java_console/ui/src/main/java/com/rusefi/FixedCommandControl.java index cba544a863..490f9fb497 100644 --- a/java_console/ui/src/main/java/com/rusefi/FixedCommandControl.java +++ b/java_console/ui/src/main/java/com/rusefi/FixedCommandControl.java @@ -1,10 +1,12 @@ package com.rusefi; +import com.rusefi.ui.UIContext; + public class FixedCommandControl extends CommandControl { private final String command; - public FixedCommandControl(String labelText, String iconFileName, String buttonText, String command) { - super(labelText, iconFileName, buttonText); + public FixedCommandControl(UIContext uiContext, String labelText, String iconFileName, String buttonText, String command) { + super(uiContext, labelText, iconFileName, buttonText); this.command = command; } diff --git a/java_console/ui/src/main/java/com/rusefi/PresetsPane.java b/java_console/ui/src/main/java/com/rusefi/PresetsPane.java index ebeb85b268..b858451949 100644 --- a/java_console/ui/src/main/java/com/rusefi/PresetsPane.java +++ b/java_console/ui/src/main/java/com/rusefi/PresetsPane.java @@ -1,7 +1,6 @@ package com.rusefi; import com.rusefi.config.generated.Fields; -import com.rusefi.io.CommandQueue; import com.rusefi.ui.UIContext; import org.jetbrains.annotations.NotNull; @@ -23,15 +22,15 @@ public class PresetsPane { public PresetsPane(UIContext uiContext) { this.uiContext = uiContext; - content.add(new SetEngineTypeCommandControl("Frankenso Miata NA6 Stage 0", "/engines/miata_na.png", Fields.ET_FRANKENSO_MIATA_NA6_VAF).getContent()); - content.add(new SetEngineTypeCommandControl("Frankenso Miata NA6 Stage 1", "/engines/miata_na.png", Fields.ET_FRANKENSO_MIATA_NA6).getContent()); - content.add(new SetEngineTypeCommandControl("Frankenso Miata NB2", "/engines/miata_nb.png", Fields.ET_FRANKENSO_MIATA_NB2).getContent()); - content.add(new SetEngineTypeCommandControl("MRE Miata NB2 MAF", "engines/miata_nb.png", Fields.ET_MRE_MIATA_NB2_MAF).getContent()); - content.add(new SetEngineTypeCommandControl("Frankenso V12", "/engines/v12", TEST_V_12).getContent()); - content.add(new SetEngineTypeCommandControl("ETB bench", "", ETB_BENCH).getContent()); - content.add(new SetEngineTypeCommandControl("Minimal", "", MINIMAL_PINS).getContent()); - content.add(new SetEngineTypeCommandControl("MRE old test", "", Fields.ET_MRE_OLD_TEST_BOARD).getContent()); - content.add(new SetEngineTypeCommandControl("MRE new test", "", Fields.ET_MRE_NEW_TEST_BOARD).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext,"Frankenso Miata NA6 Stage 0", "/engines/miata_na.png", Fields.ET_FRANKENSO_MIATA_NA6_VAF).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "Frankenso Miata NA6 Stage 1", "/engines/miata_na.png", Fields.ET_FRANKENSO_MIATA_NA6).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "Frankenso Miata NB2", "/engines/miata_nb.png", Fields.ET_FRANKENSO_MIATA_NB2).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "MRE Miata NB2 MAF", "engines/miata_nb.png", Fields.ET_MRE_MIATA_NB2_MAF).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "Frankenso V12", "/engines/v12", TEST_V_12).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "ETB bench", "", ETB_BENCH).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "Minimal", "", MINIMAL_PINS).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "MRE old test", "", Fields.ET_MRE_OLD_TEST_BOARD).getContent()); + content.add(new SetEngineTypeCommandControl(uiContext, "MRE new test", "", Fields.ET_MRE_NEW_TEST_BOARD).getContent()); } public JPanel getContent() { @@ -41,8 +40,8 @@ public class PresetsPane { private class SetEngineTypeCommandControl extends FixedCommandControl { private final String labelTest; - public SetEngineTypeCommandControl(String labelTest, String imageFileName, int engineType) { - super(labelTest, imageFileName, CommandControl.SET, "set " + Fields.CMD_ENGINE_TYPE + " " + engineType); + public SetEngineTypeCommandControl(UIContext uiContext, String labelTest, String imageFileName, int engineType) { + super(uiContext, labelTest, imageFileName, CommandControl.SET, "set " + Fields.CMD_ENGINE_TYPE + " " + engineType); this.labelTest = labelTest; } diff --git a/java_console/ui/src/main/java/com/rusefi/ui/widgets/AnyCommand.java b/java_console/ui/src/main/java/com/rusefi/ui/widgets/AnyCommand.java index 7766b01196..7b7b8e4a13 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/widgets/AnyCommand.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/widgets/AnyCommand.java @@ -6,6 +6,7 @@ import com.rusefi.FileLog; import com.rusefi.InfixConverter; import com.rusefi.core.MessagesCentral; import com.rusefi.io.CommandQueue; +import com.rusefi.io.LinkManager; import com.rusefi.ui.RecentCommands; import com.rusefi.ui.UIContext; import com.rusefi.ui.storage.Node; @@ -114,7 +115,7 @@ public class AnyCommand { private void sendCommand(String rawCommand) { if (!isValidInput(rawCommand)) return; - String cmd = prepareCommand(rawCommand); + String cmd = prepareCommand(rawCommand, uiContext.getLinkManager()); if (cmd == null) { /** * {@link #DECODE_RPN} for example does not send out anything @@ -129,12 +130,12 @@ public class AnyCommand { reentrant = false; } - public static String prepareCommand(String rawCommand) { + public static String prepareCommand(String rawCommand, LinkManager linkManager) { try { if (rawCommand.startsWith("eval" + " ")) { return prepareEvalCommand(rawCommand); } else if (rawCommand.toLowerCase().startsWith("stim_check" + " ")) { - handleStimulationSelfCheck(rawCommand); + handleStimulationSelfCheck(rawCommand, linkManager); return null; } else if (rawCommand.toLowerCase().startsWith(DECODE_RPN + " ")) { handleDecodeRpn(rawCommand); @@ -154,7 +155,7 @@ public class AnyCommand { * stim_check 3000 5 30 * would set RPM to 3000, give it 5 seconds to settle, and test for 30 seconds */ - private static void handleStimulationSelfCheck(String rawCommand) { + private static void handleStimulationSelfCheck(String rawCommand, LinkManager linkManager) { String[] parts = rawCommand.split(" ", 4); if (parts.length != 4) { MessagesCentral.getInstance().postMessage(AnyCommand.class, "Invalid command length " + parts); @@ -178,7 +179,7 @@ public class AnyCommand { return null; } }; - AutoTest.assertRpmDoesNotJump(rpm, settleTime, durationTime, callback); + AutoTest.assertRpmDoesNotJump(rpm, settleTime, durationTime, callback, linkManager.getCommandQueue()); } }).start(); } diff --git a/java_console/ui/src/main/java/com/rusefi/ui/widgets/test/AnyCommandTest.java b/java_console/ui/src/main/java/com/rusefi/ui/widgets/test/AnyCommandTest.java index c37511cf6f..54c6bed599 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/widgets/test/AnyCommandTest.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/widgets/test/AnyCommandTest.java @@ -10,6 +10,10 @@ import static org.junit.Assert.assertEquals; * 3/9/2017. */ public class AnyCommandTest { + private static String prepareCommand(String rawCommand) { + return AnyCommand.prepareCommand(rawCommand, null); + } + @Test public void testUnquote() { assertEquals("1 2 3", AnyCommand.unquote(" \"1 2 3\" ")); @@ -17,13 +21,13 @@ public class AnyCommandTest { @Test public void testPrepareEvalCommand() { - assertEquals("rpn_eval \"2 3 +\"", AnyCommand.prepareCommand("eval \"2 + 3\" ")); + assertEquals("rpn_eval \"2 3 +\"", prepareCommand("eval \"2 + 3\" ")); } @Test public void testSetFSIOexpression() { // todo: parameter order needs to be in postfix form - assertEquals("set_rpn_expression 1 \"rpm fsio_setting 0 >\"", AnyCommand.prepareCommand("set_fsio_expression 1 \"rpm > fsio_setting 0\"")); + assertEquals("set_rpn_expression 1 \"rpm fsio_setting 0 >\"", prepareCommand("set_fsio_expression 1 \"rpm > fsio_setting 0\"")); } @Test @@ -32,6 +36,6 @@ public class AnyCommandTest { assertEquals("tps > 10", AnyCommand.unquote("\u201Ctps > 10\u201D")); - assertEquals("set_rpn_expression 1 \"tps 10 >\"", AnyCommand.prepareCommand("Set_fsio_expression 1 \u201Ctps > 10\u201D")); + assertEquals("set_rpn_expression 1 \"tps 10 >\"", prepareCommand("Set_fsio_expression 1 \u201Ctps > 10\u201D")); } }