diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 5a0fc8b88e..5471a5bcba 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -307,6 +307,7 @@ void updateDevConsoleState(void) { static void showFuelMap2(float rpm, float engineLoad) { float baseFuel = getBaseTableFuel((int) rpm, engineLoad); + scheduleMsg(&logger2, "algo=%d", engineConfiguration->algorithm); float iatCorrection = getIatCorrection(getIntakeAirTemperature()); float cltCorrection = getCltCorrection(getCoolantTemperature()); float injectorLag = getInjectorLag(getVBatt()); diff --git a/java_console/build.xml b/java_console/build.xml index 8528913833..33bffbf859 100644 --- a/java_console/build.xml +++ b/java_console/build.xml @@ -22,7 +22,7 @@ - + diff --git a/java_console/io/src/com/rusefi/io/serial/PortHolder.java b/java_console/io/src/com/rusefi/io/serial/PortHolder.java index 779d240bdd..a59fc89d39 100644 --- a/java_console/io/src/com/rusefi/io/serial/PortHolder.java +++ b/java_console/io/src/com/rusefi/io/serial/PortHolder.java @@ -2,8 +2,6 @@ package com.rusefi.io.serial; import com.irnems.FileLog; import com.irnems.core.EngineState; -import com.irnems.core.MessagesCentral; -import com.rusefi.io.CommandQueue; import com.rusefi.io.DataListener; import jssc.SerialPort; import jssc.SerialPortException; @@ -15,7 +13,7 @@ import org.jetbrains.annotations.Nullable; * 7/25/13 * (c) Andrey Belomutskiy */ -class PortHolder { +public class PortHolder { // private static final int BAUD_RATE = 8 * 115200;// 921600; // private static final int BAUD_RATE = 2 * 115200; private static final int BAUD_RATE = 115200; @@ -26,22 +24,19 @@ class PortHolder { public static long startedAt = System.currentTimeMillis(); + public PortHolderListener listener = PortHolderListener.VOID; + private PortHolder() { } @Nullable private SerialPort serialPort; - void openPort(String port, final EngineState es) { - MessagesCentral.getInstance().postMessage(SerialManager.class, "Opening port: " + port); + void openPort(String port, DataListener dataListener) { + listener.onPortHolderMessage(SerialManager.class, "Opening port: " + port); if (port == null) return; - open(port, new DataListener() { - public void onStringArrived(String string) { - // jTextAreaIn.append(string); - es.processNewData(string); - } - }); + open(port, dataListener); } public boolean open(String port, DataListener listener) { @@ -105,14 +100,14 @@ class PortHolder { */ public void packAndSend(String command) throws InterruptedException { FileLog.MAIN.logLine("Sending [" + command + "]"); - MessagesCentral.getInstance().postMessage(CommandQueue.class, "Sending [" + command + "]"); + listener.onPortHolderMessage(PortHolder.class, "Sending [" + command + "]"); long now = System.currentTimeMillis(); synchronized (portLock) { while (serialPort == null) { if (System.currentTimeMillis() - now > 3 * MINUTE) - MessagesCentral.getInstance().postMessage(PortHolder.class, "Looks like connection is gone :("); + listener.onPortHolderMessage(PortHolder.class, "Looks like connection is gone :("); portLock.wait(MINUTE); } // we are here only when serialPort!=null, that means we have a connection diff --git a/java_console/io/src/com/rusefi/io/serial/PortHolderListener.java b/java_console/io/src/com/rusefi/io/serial/PortHolderListener.java new file mode 100644 index 0000000000..cf23afa508 --- /dev/null +++ b/java_console/io/src/com/rusefi/io/serial/PortHolderListener.java @@ -0,0 +1,15 @@ +package com.rusefi.io.serial; + +/** + * (c) Andrey Belomutskiy + * 9/4/14 + */ +public interface PortHolderListener { + PortHolderListener VOID = new PortHolderListener() { + @Override + public void onPortHolderMessage(Class clazz, String message) { + } + }; + + void onPortHolderMessage(final Class clazz, final String message); +} diff --git a/java_console/io/src/com/rusefi/io/serial/SerialManager.java b/java_console/io/src/com/rusefi/io/serial/SerialManager.java index e74c61b906..3394dc79a2 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialManager.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialManager.java @@ -2,6 +2,7 @@ package com.rusefi.io.serial; import com.irnems.FileLog; import com.irnems.core.MessagesCentral; +import com.rusefi.io.DataListener; import com.rusefi.io.LinkManager; /** @@ -13,13 +14,20 @@ class SerialManager { private static boolean closed; + static DataListener listener = new DataListener() { + public void onStringArrived(String string) { + // jTextAreaIn.append(string); + LinkManager.engineState.processNewData(string); + } + }; + public static void scheduleOpening() { FileLog.rlog("scheduleOpening"); LinkManager.IO_EXECUTOR.execute(new Runnable() { @Override public void run() { FileLog.rlog("scheduleOpening>openPort"); - PortHolder.getInstance().openPort(port, LinkManager.engineState); + PortHolder.getInstance().openPort(port, listener); } }); } @@ -32,7 +40,7 @@ class SerialManager { if (closed) return; PortHolder.getInstance().close(); - PortHolder.getInstance().openPort(port, LinkManager.engineState); + PortHolder.getInstance().openPort(port, listener); } }); } diff --git a/java_console/io/src/com/rusefi/io/test/LinkManagerTest.java b/java_console/io/src/com/rusefi/io/test/LinkManagerTest.java new file mode 100644 index 0000000000..6f802e40a7 --- /dev/null +++ b/java_console/io/src/com/rusefi/io/test/LinkManagerTest.java @@ -0,0 +1,14 @@ +package com.rusefi.io.test; + +import org.junit.Test; + +/** + * @author Andrey Belomutskiy + * 9/4/14 + */ +public class LinkManagerTest { + @Test + public void testEncoding() { + + } +} diff --git a/java_console/models/src/com/irnems/core/MessagesCentral.java b/java_console/models/src/com/irnems/core/MessagesCentral.java index c23e564b02..c904093760 100644 --- a/java_console/models/src/com/irnems/core/MessagesCentral.java +++ b/java_console/models/src/com/irnems/core/MessagesCentral.java @@ -1,6 +1,8 @@ package com.irnems.core; import com.irnems.FileLog; +import com.rusefi.io.serial.PortHolder; +import com.rusefi.io.serial.PortHolderListener; import javax.swing.*; import java.util.List; @@ -17,6 +19,12 @@ public class MessagesCentral { private final List listeners = new CopyOnWriteArrayList(); private MessagesCentral() { + PortHolder.getInstance().listener = new PortHolderListener() { + @Override + public void onPortHolderMessage(Class clazz, String message) { + postMessage(clazz, message); + } + }; } public static MessagesCentral getInstance() {