auto-sync

This commit is contained in:
rusEfi 2014-09-04 11:05:52 -05:00
parent cb07c7d50b
commit 6e54c9d632
7 changed files with 57 additions and 16 deletions

View File

@ -307,6 +307,7 @@ void updateDevConsoleState(void) {
static void showFuelMap2(float rpm, float engineLoad) { static void showFuelMap2(float rpm, float engineLoad) {
float baseFuel = getBaseTableFuel((int) rpm, engineLoad); float baseFuel = getBaseTableFuel((int) rpm, engineLoad);
scheduleMsg(&logger2, "algo=%d", engineConfiguration->algorithm);
float iatCorrection = getIatCorrection(getIntakeAirTemperature()); float iatCorrection = getIatCorrection(getIntakeAirTemperature());
float cltCorrection = getCltCorrection(getCoolantTemperature()); float cltCorrection = getCltCorrection(getCoolantTemperature());
float injectorLag = getInjectorLag(getVBatt()); float injectorLag = getInjectorLag(getVBatt());

View File

@ -22,7 +22,7 @@
<jvmarg value="-ea"/> <jvmarg value="-ea"/>
<jvmarg value="-XX:+HeapDumpOnOutOfMemoryError"/> <jvmarg value="-XX:+HeapDumpOnOutOfMemoryError"/>
<formatter type="brief"/> <formatter type="brief"/>
<classpath path="build/classes:lib/junit.jar:lib/SteelSeries-3.9.30.jar"/> <classpath path="lib/jssc.jar:build/classes:lib/junit.jar:lib/SteelSeries-3.9.30.jar"/>
<batchtest todir="build"> <batchtest todir="build">
<fileset dir="autotest/src" includes="**/test/**/*Test.java"/> <fileset dir="autotest/src" includes="**/test/**/*Test.java"/>
<fileset dir="io/src" includes="**/test/**/*Test.java"/> <fileset dir="io/src" includes="**/test/**/*Test.java"/>

View File

@ -2,8 +2,6 @@ package com.rusefi.io.serial;
import com.irnems.FileLog; import com.irnems.FileLog;
import com.irnems.core.EngineState; import com.irnems.core.EngineState;
import com.irnems.core.MessagesCentral;
import com.rusefi.io.CommandQueue;
import com.rusefi.io.DataListener; import com.rusefi.io.DataListener;
import jssc.SerialPort; import jssc.SerialPort;
import jssc.SerialPortException; import jssc.SerialPortException;
@ -15,7 +13,7 @@ import org.jetbrains.annotations.Nullable;
* 7/25/13 * 7/25/13
* (c) Andrey Belomutskiy * (c) Andrey Belomutskiy
*/ */
class PortHolder { public class PortHolder {
// private static final int BAUD_RATE = 8 * 115200;// 921600; // private static final int BAUD_RATE = 8 * 115200;// 921600;
// private static final int BAUD_RATE = 2 * 115200; // private static final int BAUD_RATE = 2 * 115200;
private static final int BAUD_RATE = 115200; private static final int BAUD_RATE = 115200;
@ -26,22 +24,19 @@ class PortHolder {
public static long startedAt = System.currentTimeMillis(); public static long startedAt = System.currentTimeMillis();
public PortHolderListener listener = PortHolderListener.VOID;
private PortHolder() { private PortHolder() {
} }
@Nullable @Nullable
private SerialPort serialPort; private SerialPort serialPort;
void openPort(String port, final EngineState es) { void openPort(String port, DataListener dataListener) {
MessagesCentral.getInstance().postMessage(SerialManager.class, "Opening port: " + port); listener.onPortHolderMessage(SerialManager.class, "Opening port: " + port);
if (port == null) if (port == null)
return; return;
open(port, new DataListener() { open(port, dataListener);
public void onStringArrived(String string) {
// jTextAreaIn.append(string);
es.processNewData(string);
}
});
} }
public boolean open(String port, DataListener listener) { public boolean open(String port, DataListener listener) {
@ -105,14 +100,14 @@ class PortHolder {
*/ */
public void packAndSend(String command) throws InterruptedException { public void packAndSend(String command) throws InterruptedException {
FileLog.MAIN.logLine("Sending [" + command + "]"); FileLog.MAIN.logLine("Sending [" + command + "]");
MessagesCentral.getInstance().postMessage(CommandQueue.class, "Sending [" + command + "]"); listener.onPortHolderMessage(PortHolder.class, "Sending [" + command + "]");
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
synchronized (portLock) { synchronized (portLock) {
while (serialPort == null) { while (serialPort == null) {
if (System.currentTimeMillis() - now > 3 * MINUTE) 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); portLock.wait(MINUTE);
} }
// we are here only when serialPort!=null, that means we have a connection // we are here only when serialPort!=null, that means we have a connection

View File

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

View File

@ -2,6 +2,7 @@ package com.rusefi.io.serial;
import com.irnems.FileLog; import com.irnems.FileLog;
import com.irnems.core.MessagesCentral; import com.irnems.core.MessagesCentral;
import com.rusefi.io.DataListener;
import com.rusefi.io.LinkManager; import com.rusefi.io.LinkManager;
/** /**
@ -13,13 +14,20 @@ class SerialManager {
private static boolean closed; 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() { public static void scheduleOpening() {
FileLog.rlog("scheduleOpening"); FileLog.rlog("scheduleOpening");
LinkManager.IO_EXECUTOR.execute(new Runnable() { LinkManager.IO_EXECUTOR.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
FileLog.rlog("scheduleOpening>openPort"); FileLog.rlog("scheduleOpening>openPort");
PortHolder.getInstance().openPort(port, LinkManager.engineState); PortHolder.getInstance().openPort(port, listener);
} }
}); });
} }
@ -32,7 +40,7 @@ class SerialManager {
if (closed) if (closed)
return; return;
PortHolder.getInstance().close(); PortHolder.getInstance().close();
PortHolder.getInstance().openPort(port, LinkManager.engineState); PortHolder.getInstance().openPort(port, listener);
} }
}); });
} }

View File

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

View File

@ -1,6 +1,8 @@
package com.irnems.core; package com.irnems.core;
import com.irnems.FileLog; import com.irnems.FileLog;
import com.rusefi.io.serial.PortHolder;
import com.rusefi.io.serial.PortHolderListener;
import javax.swing.*; import javax.swing.*;
import java.util.List; import java.util.List;
@ -17,6 +19,12 @@ public class MessagesCentral {
private final List<MessageListener> listeners = new CopyOnWriteArrayList<MessageListener>(); private final List<MessageListener> listeners = new CopyOnWriteArrayList<MessageListener>();
private MessagesCentral() { private MessagesCentral() {
PortHolder.getInstance().listener = new PortHolderListener() {
@Override
public void onPortHolderMessage(Class clazz, String message) {
postMessage(clazz, message);
}
};
} }
public static MessagesCentral getInstance() { public static MessagesCentral getInstance() {