auto-sync

This commit is contained in:
rusEfi 2015-02-28 11:05:12 -06:00
parent 5b8c8c08d6
commit b4e24de3aa
14 changed files with 60 additions and 21 deletions

View File

@ -19,6 +19,8 @@ EXTERN_ENGINE;
void setBmwE34(DECLARE_ENGINE_PARAMETER_F) {
board_configuration_s * boardConfiguration = &engineConfiguration->bc;
engineConfiguration->algorithm = LM_SPEED_DENSITY;
boardConfiguration->tunerStudioThreadPeriod = 50;
engineConfiguration->rpmHardLimit = 6000;
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);

View File

@ -53,6 +53,8 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) {
// todo: 8.2 or 10k?
engineConfiguration->vbattDividerCoeff = ((float) (10 + 33)) / 10 * 2;
engineConfiguration->map.sensor.type = MT_SUBY_DENSO;
// todo engineConfiguration->afr.hwChannel = EFI_ADC_3;
initEgoSensor(&engineConfiguration->afr, ES_Innovate_MTX_L);

View File

@ -588,6 +588,8 @@ case MT_HONDA3BAR:
return "MT_HONDA3BAR";
case MT_MPX4250:
return "MT_MPX4250";
case MT_SUBY_DENSO:
return "MT_SUBY_DENSO";
}
return NULL;
}

View File

@ -180,7 +180,7 @@ typedef enum {
*/
LM_MAP = 2,
/**
* Speed Density algorithm - Engile Load is a function of MAP and ... TODO
* Speed Density algorithm - Engile Load is a function of MAP, VE and target AFR
* http://articles.sae.org/8539/
*/
LM_SPEED_DENSITY = 3,
@ -519,6 +519,7 @@ typedef enum {
MT_MPX4250 = 2,
MT_HONDA3BAR = 3,
MT_DODGE_NEON_2003 = 4,
MT_SUBY_DENSO = 5,
Force_4b_cranking_map_type = ENUM_32_BITS,
} air_pressure_sensor_type_e;

View File

@ -29,6 +29,8 @@ static FastInterpolation denso183(0, -6.64, 5, 182.78);
*/
static FastInterpolation honda3bar(0.5, 91.422, 3.0, 0);
static FastInterpolation subyDenso(0, 0, 5, 200);
static FastInterpolation mpx4250(0, 8, 5, 260);
static FastInterpolation dodgeNeon2003(0.5, 0, 4.5, 100);
@ -52,6 +54,8 @@ float decodePressure(float voltage, air_pressure_sensor_config_s * config) {
return honda3bar.getValue(voltage);
case MT_DODGE_NEON_2003:
return dodgeNeon2003.getValue(voltage);
case MT_SUBY_DENSO:
return subyDenso.getValue(voltage);
default:
firmwareError("Unknown MAP type: %d", config->type);
return NAN;

View File

@ -56,7 +56,7 @@ custom brain_input_pin_e 4 bits, U32, @OFFSET@, [0:6], "INVALID", "INVALID"
custom brain_pin_e 4 bits, U32, @OFFSET@, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
custom pin_output_mode_e 4 bits, U32, @OFFSET@, [0:1], "default", "default inverted", "open", "open inverted"
custom air_pressure_sensor_type_e 4 bits, U32, @OFFSET@, [0:1] "Custom", "DENSO183", "MPX4250", "INVALID"
custom air_pressure_sensor_type_e 4 bits, U32, @OFFSET@, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "INVALID", "INVALID"
custom adc_channel_e 4 bits, U32, @OFFSET@, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5"
struct air_pressure_sensor_config_s

View File

@ -40,7 +40,7 @@ pageSize = 8248, 1152, 1152, 1152, 1152, 1152, 1152
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated by ConfigDefinition.jar on Fri Feb 27 21:57:36 EST 2015
; this section was generated by ConfigDefinition.jar on Sat Feb 28 11:11:49 EST 2015
page = 1
engineType = bits, S32, 0, [0:2], "AUDI_AAN", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD", "FORD_INLINE_6_1995", "GY6_139QMB"
@ -70,7 +70,7 @@ page = 1
map_samplingWindow = array, F32, 460, [8], "deg", 1, 0, 0.0, 90, 2
map_sensor_valueAt0 = scalar, F32, 492, "kpa", 1, 0, 0, 450, 2
map_sensor_valueAt5 = scalar, F32, 496, "kpa", 1, 0, 0, 450, 2
map_sensor_type = bits, U32, 500, [0:1] "Custom", "DENSO183", "MPX4250", "INVALID"
map_sensor_type = bits, U32, 500, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "INVALID", "INVALID"
map_sensor_hwChannel = bits, U32, 504, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5"
clt_tempC_1 = scalar, F32, 508, "*C", 1, 0, -40, 200, 1
clt_tempC_2 = scalar, F32, 512, "*C", 1, 0, -40, 200, 1
@ -148,7 +148,7 @@ page = 1
;skipping diffLoadEnrichmentCoef offset 852
baroSensor_valueAt0 = scalar, F32, 856, "kpa", 1, 0, 0, 450, 2
baroSensor_valueAt5 = scalar, F32, 860, "kpa", 1, 0, 0, 450, 2
baroSensor_type = bits, U32, 864, [0:1] "Custom", "DENSO183", "MPX4250", "INVALID"
baroSensor_type = bits, U32, 864, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "INVALID", "INVALID"
baroSensor_hwChannel = bits, U32, 868, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5"
idleValvePin = bits, U32, 872, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
idleValvePinMode = bits, U32, 876, [0:1], "default", "default inverted", "open", "open inverted"

View File

@ -163,7 +163,13 @@ public class IoUtil {
static void realHardwareConnect(String port) {
LinkManager.start(port);
LinkManager.open();
LinkManager.open(new LinkManager.LinkStateListener() {
@Override
public void onConnectionFailed() {
System.out.println("CONNECTION FAILED, did you specify the right port name?");
System.exit(-1);
}
});
LinkManager.engineState.registerStringValueAction(EngineState.RUS_EFI_VERSION_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
LinkManager.engineState.registerStringValueAction(EngineState.OUTPIN_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
LinkManager.engineState.registerStringValueAction(AverageAnglesUtil.KEY, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);

View File

@ -5,7 +5,7 @@ package com.rusefi.io;
* 3/3/14
*/
public interface LinkConnector {
void connect();
void connect(LinkManager.LinkStateListener listener);
void send(String command) throws InterruptedException;

View File

@ -27,7 +27,7 @@ public class LinkManager {
public static final String LOG_VIEWER = "log viewer";
private static final LinkConnector VOID = new LinkConnector() {
@Override
public void connect() {
public void connect(LinkStateListener listener) {
}
@Override
@ -80,10 +80,14 @@ public class LinkManager {
/**
* todo: should this be merged into {@link #start(String)} ?
*/
public static void open() {
public static void open(LinkStateListener listener) {
if (connector == null)
throw new NullPointerException("connector");
connector.connect();
connector.connect(listener);
}
public static void open() {
open(LinkStateListener.VOID);
}
public static void send(String command) throws InterruptedException {
@ -103,4 +107,14 @@ public class LinkManager {
public static boolean hasError() {
return connector.hasError();
}
public static interface LinkStateListener {
public static final LinkStateListener VOID = new LinkStateListener() {
@Override
public void onConnectionFailed() {
}
};
void onConnectionFailed();
}
}

View File

@ -3,6 +3,7 @@ package com.rusefi.io.serial;
import com.rusefi.FileLog;
import com.rusefi.core.EngineState;
import com.rusefi.io.DataListener;
import com.rusefi.io.LinkManager;
import jssc.SerialPort;
import jssc.SerialPortException;
import org.jetbrains.annotations.NotNull;
@ -31,11 +32,14 @@ public class PortHolder {
@Nullable
private SerialPort serialPort;
void openPort(String port, DataListener dataListener) {
listener.onPortHolderMessage(SerialManager.class, "Opening port: " + port);
boolean openPort(String port, DataListener dataListener, LinkManager.LinkStateListener listener) {
this.listener.onPortHolderMessage(SerialManager.class, "Opening port: " + port);
if (port == null)
return;
open(port, dataListener);
return false;
boolean result = open(port, dataListener);
if (!result)
listener.onConnectionFailed();
return result;
}
public boolean open(String port, DataListener listener) {

View File

@ -2,6 +2,7 @@ package com.rusefi.io.serial;
import com.rusefi.FileLog;
import com.rusefi.io.LinkConnector;
import com.rusefi.io.LinkManager;
/**
* @author Andrey Belomutskiy
@ -13,9 +14,9 @@ public class SerialConnector implements LinkConnector {
}
@Override
public void connect() {
public void connect(LinkManager.LinkStateListener listener) {
FileLog.MAIN.logLine("SerialConnector: connecting");
SerialManager.scheduleOpening();
SerialManager.scheduleOpening(listener);
}
@Override

View File

@ -14,20 +14,22 @@ class SerialManager {
private static boolean closed;
static DataListener listener = new DataListener() {
static DataListener dataListener = new DataListener() {
public void onStringArrived(String string) {
// jTextAreaIn.append(string);
LinkManager.engineState.processNewData(string);
}
};
private static LinkManager.LinkStateListener listener;
public static void scheduleOpening() {
public static void scheduleOpening(LinkManager.LinkStateListener listener) {
SerialManager.listener = listener;
FileLog.rlog("scheduleOpening");
LinkManager.IO_EXECUTOR.execute(new Runnable() {
@Override
public void run() {
FileLog.rlog("scheduleOpening>openPort");
PortHolder.getInstance().openPort(port, listener);
PortHolder.getInstance().openPort(port, SerialManager.dataListener, SerialManager.listener);
}
});
}
@ -40,7 +42,7 @@ class SerialManager {
if (closed)
return;
PortHolder.getInstance().close();
PortHolder.getInstance().openPort(port, listener);
boolean result = PortHolder.getInstance().openPort(port, dataListener, SerialManager.listener);
}
});
}

View File

@ -60,9 +60,10 @@ public class TcpConnector implements LinkConnector {
/**
* this implementation is blocking
* @param listener
*/
@Override
public void connect() {
public void connect(LinkManager.LinkStateListener listener) {
FileLog.rlog("Connecting to " + port);
BufferedInputStream stream;
try {