From ed22f680cdf941acb7d011fbf8d73c43dfd34f14 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 28 Feb 2015 11:05:12 -0600 Subject: [PATCH] auto-sync --- firmware/config/engines/bmw_e34.cpp | 2 ++ firmware/config/engines/mazda_626.cpp | 2 ++ .../controllers/algo/auto_generated_enums.cpp | 2 ++ firmware/controllers/algo/rusefi_enums.h | 3 ++- firmware/controllers/sensors/map.cpp | 4 ++++ firmware/rusefi_config.ini | 2 +- .../autotest/src/com/rusefi/IoUtil.java | 8 +++++++- .../io/src/com/rusefi/io/LinkConnector.java | 2 +- .../io/src/com/rusefi/io/LinkManager.java | 20 ++++++++++++++++--- .../src/com/rusefi/io/serial/PortHolder.java | 12 +++++++---- .../com/rusefi/io/serial/SerialConnector.java | 5 +++-- .../com/rusefi/io/serial/SerialManager.java | 10 ++++++---- .../src/com/rusefi/io/tcp/TcpConnector.java | 3 ++- 13 files changed, 57 insertions(+), 18 deletions(-) diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index 7257babf7e..c4931c659e 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -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); diff --git a/firmware/config/engines/mazda_626.cpp b/firmware/config/engines/mazda_626.cpp index 01472da781..73c1f9deff 100644 --- a/firmware/config/engines/mazda_626.cpp +++ b/firmware/config/engines/mazda_626.cpp @@ -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); diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 8aece066c8..b19cd7e681 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -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; } diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 6a0de58d15..60e7ccb139 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -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; diff --git a/firmware/controllers/sensors/map.cpp b/firmware/controllers/sensors/map.cpp index e60e3aba83..032c3cd293 100644 --- a/firmware/controllers/sensors/map.cpp +++ b/firmware/controllers/sensors/map.cpp @@ -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; diff --git a/firmware/rusefi_config.ini b/firmware/rusefi_config.ini index 7962e69894..9c3301017c 100644 --- a/firmware/rusefi_config.ini +++ b/firmware/rusefi_config.ini @@ -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 diff --git a/java_console/autotest/src/com/rusefi/IoUtil.java b/java_console/autotest/src/com/rusefi/IoUtil.java index c26fded1e8..d73dd98d19 100644 --- a/java_console/autotest/src/com/rusefi/IoUtil.java +++ b/java_console/autotest/src/com/rusefi/IoUtil.java @@ -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) EngineState.ValueCallback.VOID); LinkManager.engineState.registerStringValueAction(EngineState.OUTPIN_TAG, (EngineState.ValueCallback) EngineState.ValueCallback.VOID); LinkManager.engineState.registerStringValueAction(AverageAnglesUtil.KEY, (EngineState.ValueCallback) EngineState.ValueCallback.VOID); diff --git a/java_console/io/src/com/rusefi/io/LinkConnector.java b/java_console/io/src/com/rusefi/io/LinkConnector.java index e6aa7e717c..540e5837e4 100644 --- a/java_console/io/src/com/rusefi/io/LinkConnector.java +++ b/java_console/io/src/com/rusefi/io/LinkConnector.java @@ -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; diff --git a/java_console/io/src/com/rusefi/io/LinkManager.java b/java_console/io/src/com/rusefi/io/LinkManager.java index 5a10a9c0fd..285db036cb 100644 --- a/java_console/io/src/com/rusefi/io/LinkManager.java +++ b/java_console/io/src/com/rusefi/io/LinkManager.java @@ -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(); + } } 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 b79f2aa443..6e11df6e76 100644 --- a/java_console/io/src/com/rusefi/io/serial/PortHolder.java +++ b/java_console/io/src/com/rusefi/io/serial/PortHolder.java @@ -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) { diff --git a/java_console/io/src/com/rusefi/io/serial/SerialConnector.java b/java_console/io/src/com/rusefi/io/serial/SerialConnector.java index 731789e09e..05f978baa1 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialConnector.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialConnector.java @@ -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 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 0dd0c7c9d0..2554918d05 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialManager.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialManager.java @@ -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); } }); } diff --git a/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java b/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java index df85e309cf..7e87c45032 100644 --- a/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java +++ b/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java @@ -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 {