From 199edc16860dcda130f6aff02106cdb6c58fa7b5 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Thu, 23 Apr 2015 15:05:57 -0400 Subject: [PATCH] auto-sync --- firmware/config/engines/GY6_139QMB.cpp | 2 +- firmware/config/engines/bmw_e34.cpp | 2 +- firmware/config/engines/dodge_neon.cpp | 4 +- firmware/config/engines/dodge_ram.cpp | 3 +- firmware/config/engines/mazda_626.cpp | 4 +- firmware/config/engines/subaru.cpp | 2 +- .../controllers/algo/engine_configuration.cpp | 4 +- ...ngine_configuration_generated_structures.h | 8 ++-- firmware/controllers/algo/rusefi_enums.h | 8 ++-- firmware/controllers/engine_controller.cpp | 4 +- firmware/controllers/map_averaging.cpp | 8 ++-- firmware/controllers/settings.cpp | 6 +-- .../controllers/trigger/rpm_calculator.cpp | 10 ++-- .../controllers/trigger/trigger_chrysler.cpp | 11 +++++ .../controllers/trigger/trigger_chrysler.h | 1 + .../controllers/trigger/trigger_decoder.cpp | 4 ++ firmware/development/analog_chart.h | 16 ------- firmware/development/development.mk | 2 +- .../{analog_chart.cpp => sensor_chart.cpp} | 16 +++---- firmware/development/sensor_chart.h | 16 +++++++ firmware/integration/Fields.java | 4 +- firmware/integration/rusefi_config.txt | 6 +-- firmware/rusefi.cpp | 2 +- firmware/tunerstudio/rusefi.ini | 8 ++-- .../ui/src/com/rusefi/AnalogChartPanel.java | 3 +- java_console/ui/src/com/rusefi/Launcher.java | 2 +- .../com/rusefi/ui/config/EnumConfigField.java | 48 +++++++++++++++++++ unit_tests/test_trigger_decoder.cpp | 2 + win32_functional_tests/Makefile | 2 +- .../simulator/rusEfiFunctionalTest.cpp | 4 +- 30 files changed, 139 insertions(+), 73 deletions(-) delete mode 100644 firmware/development/analog_chart.h rename firmware/development/{analog_chart.cpp => sensor_chart.cpp} (79%) create mode 100644 firmware/development/sensor_chart.h create mode 100644 java_console/ui/src/com/rusefi/ui/config/EnumConfigField.java diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp index 73fa7ad894..7148a4f011 100644 --- a/firmware/config/engines/GY6_139QMB.cpp +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -20,7 +20,7 @@ void setGy6139qmbDefaultEngineConfiguration( engineConfiguration->analogInputDividerCoefficient = 1.52; engineConfiguration->algorithm = LM_MAP; engineConfiguration->globalTriggerAngleOffset = 45; - engineConfiguration->bc.analogChartMode = AC_MAP; + engineConfiguration->bc.sensorChartMode = SC_MAP; engineConfiguration->specs.displacement = 0.072; // 72cc engineConfiguration->specs.cylindersCount = 1; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index a3bb587399..c52e0fe4f7 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -60,7 +60,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_F) { setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER); // for best performance at high RPM, we need to turn off 'Engine Sniffer' and 'Sensor Sniffer' - boardConfiguration->analogChartMode = AC_OFF; + boardConfiguration->sensorChartMode = SC_OFF; engineConfiguration->isDigitalChartEnabled = false; engineConfiguration->isCylinderCleanupEnabled = false; diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index e15993b39f..a1c2e8d7a4 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -182,7 +182,7 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { setThermistorConfiguration(&engineConfiguration->clt, 0, 32500, 30, 7550, 100, 700); engineConfiguration->clt.bias_resistor = 2700; - engineConfiguration->analogChartFrequency = 7; + engineConfiguration->sensorChartFrequency = 7; } void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { @@ -357,7 +357,7 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->cltAdcChannel = EFI_ADC_12; - boardConfiguration->analogChartMode = AC_MAP; + boardConfiguration->sensorChartMode = SC_MAP; boardConfiguration->isFastAdcEnabled = true; engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003; diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index b2fe8b3a1a..c398d5aada 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -17,8 +17,7 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_F) { board_configuration_s * boardConfiguration = &engineConfiguration->bc; setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); - engineConfiguration->trigger.type = TT_ONE_PLUS_TOOTHED_WHEEL_60_2; - + engineConfiguration->trigger.type = TT_DODGE_RAM; //Base engine setting engineConfiguration->specs.cylindersCount = 8; diff --git a/firmware/config/engines/mazda_626.cpp b/firmware/config/engines/mazda_626.cpp index f0c64bbdc5..607c08dd5f 100644 --- a/firmware/config/engines/mazda_626.cpp +++ b/firmware/config/engines/mazda_626.cpp @@ -26,8 +26,8 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->digitalChartSize = 150; - boardConfiguration->analogChartMode = AC_TRIGGER; - engineConfiguration->analogChartFrequency = 2; + boardConfiguration->sensorChartMode = SC_TRIGGER; + engineConfiguration->sensorChartFrequency = 2; engineConfiguration->injector.flow = 330; engineConfiguration->specs.displacement = 2.0; diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index db4c0db23e..a8eca667a1 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -22,5 +22,5 @@ void setSubaru2003Wrx(engine_configuration_s *engineConfiguration) { engineConfiguration->trigger.customTotalToothCount = 5; engineConfiguration->trigger.customSkippedToothCount = 1; - engineConfiguration->analogChartFrequency = 2; + engineConfiguration->sensorChartFrequency = 2; } diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index aec1331c27..7bc91cf69f 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -296,7 +296,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->fixedModeTiming = 50; // performance optimization - boardConfiguration->analogChartMode = AC_OFF; + boardConfiguration->sensorChartMode = SC_OFF; engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; engineConfiguration->baroSensor.hwChannel = EFI_ADC_4; @@ -310,7 +310,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->injectionAngle = 0; engineConfiguration->ignitionBaseAngle = 0; engineConfiguration->overrideCrankingIgnition = true; - engineConfiguration->analogChartFrequency = 20; + engineConfiguration->sensorChartFrequency = 20; engineConfiguration->algorithm = LM_PLAIN_MAF; diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 4b48882940..9d1dc3f0ce 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated by config_definition.jar on Sat Apr 18 18:59:21 EDT 2015 +// this section was generated by config_definition.jar on Thu Apr 23 14:13:44 EDT 2015 // begin #include "rusefi_types.h" typedef struct { @@ -604,7 +604,7 @@ typedef struct { /** * offset 784 */ - analog_chart_e analogChartMode; + sensor_chart_e sensorChartMode; /** * offset 788 */ @@ -839,7 +839,7 @@ typedef struct { /** * offset 512 */ - int analogChartFrequency; + int sensorChartFrequency; /** * offset 516 */ @@ -1283,4 +1283,4 @@ typedef struct { } persistent_config_s; // end -// this section was generated by config_definition.jar on Sat Apr 18 18:59:21 EDT 2015 +// this section was generated by config_definition.jar on Thu Apr 23 14:13:44 EDT 2015 diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index cb23a6df11..27157fe0fa 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -542,14 +542,14 @@ typedef enum { } can_device_mode_e; typedef enum { - AC_OFF = 0, + SC_OFF = 0, /** * You would use this value if you want to see a detailed graph of your trigger events */ - AC_TRIGGER = 1, AC_MAP = 2, + SC_TRIGGER = 1, SC_MAP = 2, - Internal_ForceMyEnumIntSize_analog_chart = ENUM_32_BITS, -} analog_chart_e; + Internal_ForceMyEnumIntSize_sensor_chart = ENUM_32_BITS, +} sensor_chart_e; typedef enum { CUSTOM = 0, diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 11afca5530..ea163c364b 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -21,6 +21,7 @@ * If not, see . */ +#include #include "main.h" #include "engine_configuration.h" #include "trigger_central.h" @@ -39,7 +40,6 @@ #include "engine_math.h" #include "wave_analyzer.h" #include "allsensors.h" -#include "analog_chart.h" #include "electronic_throttle.h" #include "map_averaging.h" #include "malfunction_central.h" @@ -469,7 +469,7 @@ void initEngineContoller(Logging *sharedLogger, Engine *engine) { #endif #if EFI_ANALOG_CHART || defined(__DOXYGEN__) - initAnalogChart(); + initSensorChart(); #endif /* EFI_ANALOG_CHART */ initAlgo(sharedLogger, engineConfiguration); diff --git a/firmware/controllers/map_averaging.cpp b/firmware/controllers/map_averaging.cpp index 21bd4a43cd..46a526a74a 100644 --- a/firmware/controllers/map_averaging.cpp +++ b/firmware/controllers/map_averaging.cpp @@ -35,7 +35,7 @@ #include "engine_math.h" #if EFI_ANALOG_CHART -#include "analog_chart.h" +#include #endif /* EFI_ANALOG_CHART */ #define FAST_MAP_CHART_SKIP_FACTOR 16 @@ -108,7 +108,7 @@ static void startAveraging(void *arg) { * as fast as possible */ void mapAveragingCallback(adcsample_t adcValue) { - if(!isAveraging && boardConfiguration->analogChartMode != AC_MAP) { + if(!isAveraging && boardConfiguration->sensorChartMode != SC_MAP) { return; } @@ -118,11 +118,11 @@ void mapAveragingCallback(adcsample_t adcValue) { #if (EFI_ANALOG_CHART && EFI_ANALOG_SENSORS) || defined(__DOXYGEN__) - if (boardConfiguration->analogChartMode == AC_MAP) + if (boardConfiguration->sensorChartMode == SC_MAP) if (perRevolutionCounter % FAST_MAP_CHART_SKIP_FACTOR == 0) { float voltage = adcToVoltsDivided(adcValue); float currentPressure = getMapByVoltage(voltage); - acAddData(getCrankshaftAngleNt(getTimeNowNt() PASS_ENGINE_PARAMETER), currentPressure); + scAddData(getCrankshaftAngleNt(getTimeNowNt() PASS_ENGINE_PARAMETER), currentPressure); } #endif /* EFI_ANALOG_CHART */ diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 0b4b301a79..115f451f20 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -352,8 +352,8 @@ static void setMalfunctionIndicatorPinMode(int value) { doPrintConfiguration(engine); } -static void setAnalogChartMode(int value) { - boardConfiguration->analogChartMode = (analog_chart_e) value; +static void setSensorChartMode(int value) { + boardConfiguration->sensorChartMode = (sensor_chart_e) value; doPrintConfiguration(engine); } @@ -915,7 +915,7 @@ void initSettings(engine_configuration_s *engineConfiguration) { addConsoleActionF("set_ignition_offset", setIgnitionOffset); addConsoleActionF("set_injection_offset", setInjectionOffset); addConsoleActionF("set_global_trigger_offset_angle", setGlobalTriggerAngleOffset); - addConsoleActionI("set_analog_chart_mode", setAnalogChartMode); + addConsoleActionI("set_sensor_chart_mode", setSensorChartMode); addConsoleActionI("set_fixed_mode_timing", setFixedModeTiming); addConsoleActionI("set_timing_mode", setTimingMode); addConsoleActionI("set_engine_type", setEngineType); diff --git a/firmware/controllers/trigger/rpm_calculator.cpp b/firmware/controllers/trigger/rpm_calculator.cpp index 4547ed652c..740266d940 100644 --- a/firmware/controllers/trigger/rpm_calculator.cpp +++ b/firmware/controllers/trigger/rpm_calculator.cpp @@ -25,7 +25,7 @@ #endif #if ! EFI_UNIT_TEST -#include "analog_chart.h" +#include #endif #include "efilib2.h" @@ -146,8 +146,8 @@ void rpmShaftPositionCallback(trigger_event_e ckpSignalType, uint32_t index DECL if (index != 0) { #if EFI_ANALOG_CHART || defined(__DOXYGEN__) - if (boardConfiguration->analogChartMode == AC_TRIGGER) - acAddData(getCrankshaftAngleNt(nowNt PASS_ENGINE_PARAMETER), 1000 * ckpSignalType + index); + if (boardConfiguration->sensorChartMode == SC_TRIGGER) + scAddData(getCrankshaftAngleNt(nowNt PASS_ENGINE_PARAMETER), 1000 * ckpSignalType + index); #endif return; } @@ -174,8 +174,8 @@ void rpmShaftPositionCallback(trigger_event_e ckpSignalType, uint32_t index DECL rpmState->onNewEngineCycle(); rpmState->lastRpmEventTimeNt = nowNt; #if EFI_ANALOG_CHART || defined(__DOXYGEN__) - if (boardConfiguration->analogChartMode == AC_TRIGGER) - acAddData(getCrankshaftAngleNt(nowNt PASS_ENGINE_PARAMETER), index); + if (boardConfiguration->sensorChartMode == SC_TRIGGER) + scAddData(getCrankshaftAngleNt(nowNt PASS_ENGINE_PARAMETER), index); #endif engine->m.rpmCbTime = GET_TIMESTAMP() - engine->m.beforeRpmCb; } diff --git a/firmware/controllers/trigger/trigger_chrysler.cpp b/firmware/controllers/trigger/trigger_chrysler.cpp index a3625934e7..acefb46017 100644 --- a/firmware/controllers/trigger/trigger_chrysler.cpp +++ b/firmware/controllers/trigger/trigger_chrysler.cpp @@ -7,6 +7,17 @@ #include "trigger_chrysler.h" +void initDodgeRam(TriggerShape *s) { + + s->reset(FOUR_STROKE_CAM_SENSOR, false); + s->useRiseEdge = true; + + s->isSynchronizationNeeded = false; + + s->addEvent(540, T_PRIMARY, TV_HIGH); + s->addEvent(720, T_PRIMARY, TV_LOW); +} + void configureNeon2003TriggerShape(TriggerShape *s) { s->reset(FOUR_STROKE_CAM_SENSOR, false); diff --git a/firmware/controllers/trigger/trigger_chrysler.h b/firmware/controllers/trigger/trigger_chrysler.h index 32aa8dfa07..e645ab6cba 100644 --- a/firmware/controllers/trigger/trigger_chrysler.h +++ b/firmware/controllers/trigger/trigger_chrysler.h @@ -14,5 +14,6 @@ void configureNeon1995TriggerShape(TriggerShape *s); void configureNeon2003TriggerShape(TriggerShape *s); +void initDodgeRam(TriggerShape *s); #endif /* TRIGGER_CHRYSLER_H_ */ diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 0fdbaac960..9ef9b2f60a 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -391,6 +391,10 @@ void initializeTriggerShape(Logging *logger, engine_configuration_s const *engin initializeMitsubishi4g18(triggerShape); break; + case TT_DODGE_RAM: + initDodgeRam(triggerShape); + break; + default: firmwareError("initializeTriggerShape() not implemented: %d", triggerConfig->type); ; diff --git a/firmware/development/analog_chart.h b/firmware/development/analog_chart.h deleted file mode 100644 index 64875e9f3c..0000000000 --- a/firmware/development/analog_chart.h +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @file analog_chart.h - * - * @date Dec 20, 2013 - * @author Andrey Belomutskiy, (c) 2012-2015 - */ - -#ifndef ANALOG_CHART_H_ -#define ANALOG_CHART_H_ - -#include "global.h" - -void acAddData(float angle, float value); -void initAnalogChart(void); - -#endif /* ANALOG_CHART_H_ */ diff --git a/firmware/development/development.mk b/firmware/development/development.mk index d7452d211b..b103e17c71 100644 --- a/firmware/development/development.mk +++ b/firmware/development/development.mk @@ -4,7 +4,7 @@ DEV_SRC = development/test/test.c \ DEV_SRC_CPP = development/trigger_emulator.cpp \ development/hw_layer/poten.cpp \ - development/analog_chart.cpp \ + development/sensor_chart.cpp \ development/rfi_perftest.cpp \ development/engine_emulator.cpp \ $(PROJECT_DIR)/development/wave_chart.cpp \ diff --git a/firmware/development/analog_chart.cpp b/firmware/development/sensor_chart.cpp similarity index 79% rename from firmware/development/analog_chart.cpp rename to firmware/development/sensor_chart.cpp index 1fb14f3c8e..c2b1a4991f 100644 --- a/firmware/development/analog_chart.cpp +++ b/firmware/development/sensor_chart.cpp @@ -5,8 +5,8 @@ * @author Andrey Belomutskiy, (c) 2012-2015 */ +#include #include "main.h" -#include "analog_chart.h" #include "engine.h" #include "rpm_calculator.h" #include "status_loop.h" @@ -21,12 +21,12 @@ static int initialized = FALSE; extern engine_configuration_s *engineConfiguration; -void acAddData(float angle, float value) { +void scAddData(float angle, float value) { if (!initialized) { return; // this is possible because of initialization sequence } - if (engineConfiguration->analogChartFrequency < 2) { + if (engineConfiguration->sensorChartFrequency < 2) { /** * analog chart frequency cannot be 1 because of the way * data flush is implemented, see below @@ -35,7 +35,7 @@ void acAddData(float angle, float value) { return; } - if (getRevolutionCounter() % engineConfiguration->analogChartFrequency != 0) { + if (getRevolutionCounter() % engineConfiguration->sensorChartFrequency != 0) { /** * We are here if we do NOT need to add an event to the analog chart */ @@ -66,12 +66,12 @@ void acAddData(float angle, float value) { } } -static void setAnalogChartFrequency(int value) { - engineConfiguration->analogChartFrequency = value; +static void setSensorChartFrequency(int value) { + engineConfiguration->sensorChartFrequency = value; } -void initAnalogChart(void) { - addConsoleActionI("set_analog_chart_freq", setAnalogChartFrequency); +void initSensorChart(void) { + addConsoleActionI("set_sensor_chart_freq", setSensorChartFrequency); initialized = true; } diff --git a/firmware/development/sensor_chart.h b/firmware/development/sensor_chart.h new file mode 100644 index 0000000000..0441da226f --- /dev/null +++ b/firmware/development/sensor_chart.h @@ -0,0 +1,16 @@ +/** + * @file sensor_chart.h + * + * @date Dec 20, 2013 + * @author Andrey Belomutskiy, (c) 2012-2015 + */ + +#ifndef SENSOR_CHART_H_ +#define SENSOR_CHART_H_ + +#include "global.h" + +void scAddData(float angle, float value); +void initSensorChart(void); + +#endif /* SENSOR_CHART_H_ */ diff --git a/firmware/integration/Fields.java b/firmware/integration/Fields.java index 25e2ee06c3..c50d28c7a3 100644 --- a/firmware/integration/Fields.java +++ b/firmware/integration/Fields.java @@ -5,8 +5,8 @@ package com.rusefi.config; */ public class Fields { - public static final Field SENSOR_SNIFFER_FREQUENCY = new Field(@@analogChartFrequency@@, FieldType.INT); - public static final Field SENSOR_SNIFFER_MODE = new Field(@@analogChartMode@@, FieldType.ANALOG_CHART_E); + public static final Field SENSOR_SNIFFER_FREQUENCY = new Field(@@sensorChartFrequency@@, FieldType.INT); + public static final Field SENSOR_SNIFFER_MODE = new Field(@@sensorChartMode@@, FieldType.ANALOG_CHART_E); public static final Field GLOBAL_FUEL_CORRECTION = new Field(@@globalFuelCorrection@@, FieldType.FLOAT); public static final Field ENGINE_SNIFFER_SIZE = new Field(@@digitalChartSize@@, FieldType.INT); public static final Field isDigitalChartEnabled = new Field(@@isDigitalChartEnabled@@, FieldType.BIT, 5); diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index a280552425..fc6e6df418 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -197,7 +197,7 @@ log_format_e logFormat; adc_channel_e tpsAdcChannel; int overrideCrankingIgnition; - int analogChartFrequency;;"index", 1, 0, 0, 300, 0 ; size 4 + int sensorChartFrequency;;"index", 1, 0, 0, 300, 0 ; size 4 struct trigger_config_s @brief Trigger wheel(s) configuration @@ -393,8 +393,8 @@ custom fsio_setting_t 4 scalar, F32, @OFFSET@, "Val", 1, 0, 0, brain_pin_e joystickCPin; brain_pin_e joystickDPin; -custom analog_chart_e 4 bits, S32, @OFFSET@, [0:1], "none", "trigger", "MAP", "INVALID" -analog_chart_e analogChartMode; +custom sensor_chart_e 4 bits, S32, @OFFSET@, [0:1], "none", "trigger", "MAP", "INVALID" +sensor_chart_e sensorChartMode; maf_sensor_type_e mafSensorType; brain_pin_e vehicleSpeedSensorInputPin; diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index c8235c6df5..3b3f1c6618 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -290,5 +290,5 @@ int getRusEfiVersion(void) { return 123; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE[0] * 0 != 0) return 3211; // this is here to make the compiler happy about the unused array - return 20150421; + return 20150423; } diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 42f93d6302..e5eaa488f1 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -40,7 +40,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated by ConfigDefinition.jar on Sat Apr 18 18:59:23 EDT 2015 +; this section was generated by ConfigDefinition.jar on Thu Apr 23 14:13:46 EDT 2015 pageSize = 15288 page = 1 @@ -120,7 +120,7 @@ page = 1 HD44780height = scalar, S32, 500, "index", 1, 0, 0, 300, 0 tpsAdcChannel = bits, U32, 504, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ;skipping overrideCrankingIgnition offset 508 - analogChartFrequency = scalar, S32, 512, "index", 1, 0, 0, 300, 0 ; size 4 + sensorChartFrequency = scalar, S32, 512, "index", 1, 0, 0, 300, 0 ; size 4 trigger_type = bits, U32, 516, [0:4], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" trigger_customIsSynchronizationNeeded= bits, U32, 520, [0:0], "false", "true" trigger_customNeedSecondTriggerInput= bits, U32, 520, [1:1], "false", "true" @@ -360,7 +360,7 @@ page = 1 joystickBPin = bits, U32, 1388, [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" joystickCPin = bits, U32, 1392, [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" joystickDPin = bits, U32, 1396, [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" - analogChartMode = bits, S32, 1400, [0:1], "none", "trigger", "MAP", "INVALID" + sensorChartMode = bits, S32, 1400, [0:1], "none", "trigger", "MAP", "INVALID" ;skipping mafSensorType offset 1404 vehicleSpeedSensorInputPin = bits, U32, 1408, [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" clutchUpPin = bits, U32, 1412, [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" @@ -1260,7 +1260,7 @@ fileVersion = { 20150406 } field = "" field = "Fuel Algorithm", algorithm field = "" - field = "analog chart", analogChartMode + field = "sensor chart", sensorChartMode field = "#System ON/OFF" field = "CylinderCleanup", isCylinderCleanupEnabled field = "Injection", isInjectionEnabled diff --git a/java_console/ui/src/com/rusefi/AnalogChartPanel.java b/java_console/ui/src/com/rusefi/AnalogChartPanel.java index 263583be0b..e15d76561a 100644 --- a/java_console/ui/src/com/rusefi/AnalogChartPanel.java +++ b/java_console/ui/src/com/rusefi/AnalogChartPanel.java @@ -2,6 +2,7 @@ package com.rusefi; import com.rusefi.config.Fields; import com.rusefi.ui.RpmModel; +import com.rusefi.ui.config.EnumConfigField; import com.rusefi.ui.util.UiUtils; import com.rusefi.ui.engine.EngineSnifferPanel; import com.rusefi.ui.config.ConfigField; @@ -106,7 +107,7 @@ public class AnalogChartPanel { lowerPanel.setBorder(BorderFactory.createLineBorder(Color.white)); content.add(lowerPanel, BorderLayout.SOUTH); - lowerPanel.add(new ConfigField(Fields.SENSOR_SNIFFER_MODE, "Sensor chart mode").getContent()); + lowerPanel.add(new EnumConfigField(Fields.SENSOR_SNIFFER_MODE, "Mode", "Off", "Trigger", "MAP").getContent()); lowerPanel.add(new ConfigField(Fields.SENSOR_SNIFFER_FREQUENCY, "Every XXX engine cycles").getContent()); lowerPanel.add(new ConfigField(Fields.GLOBAL_FUEL_CORRECTION, "Global Fuel Correction").getContent()); } diff --git a/java_console/ui/src/com/rusefi/Launcher.java b/java_console/ui/src/com/rusefi/Launcher.java index 917de9763b..d384926cda 100644 --- a/java_console/ui/src/com/rusefi/Launcher.java +++ b/java_console/ui/src/com/rusefi/Launcher.java @@ -32,7 +32,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; * @see com.rusefi.StartupFrame */ public class Launcher { - public static final int CONSOLE_VERSION = 20150422; + public static final int CONSOLE_VERSION = 20150423; public static final boolean SHOW_STIMULATOR = false; private static final String TAB_INDEX = "main_tab"; protected static final String PORT_KEY = "port"; diff --git a/java_console/ui/src/com/rusefi/ui/config/EnumConfigField.java b/java_console/ui/src/com/rusefi/ui/config/EnumConfigField.java new file mode 100644 index 0000000000..026bf4cdab --- /dev/null +++ b/java_console/ui/src/com/rusefi/ui/config/EnumConfigField.java @@ -0,0 +1,48 @@ +package com.rusefi.ui.config; + +import com.rusefi.config.Field; +import com.rusefi.core.MessagesCentral; +import com.rusefi.core.Pair; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class EnumConfigField extends BaseConfigField { + private final JComboBox view = new JComboBox<>(); + private boolean ec; + + public EnumConfigField(final Field field, String caption, String... options) { + super(field); + + for (String option : options) + view.addItem(option); + + createUi(caption, view); + + MessagesCentral.getInstance().addListener(new MessagesCentral.MessageListener() { + @Override + public void onMessage(Class clazz, String message) { + if (Field.isIntValueMessage(message)) { + Pair p = Field.parseResponse(message); + if (p != null && p.first == field.getOffset()) { + int value = (Integer) p.second; + ec = true; + view.setSelectedIndex(value); + onValueArrived(); + ec = false; + } + } + } + }); + + view.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (ec) + return; + sendValue(field, Integer.toString(view.getSelectedIndex())); + } + }); + } +} \ No newline at end of file diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index 26cc7e4750..ab14e4edcd 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -509,6 +509,8 @@ void testTriggerDecoder(void) { // lame duty cycle implementation! testTriggerDecoder2("ford aspire", FORD_ASPIRE_1996, 4, 0.0, 0.5); + testTriggerDecoder2("dodge ram", DODGE_RAM, 0, 0.7500, 0); + //testTriggerDecoder2("bmw", BMW_E34, 0, 0.9750, 0.5167); testTriggerDecoder2("bmw", BMW_E34, 0, 0.4667, 0.0); diff --git a/win32_functional_tests/Makefile b/win32_functional_tests/Makefile index 028cfe9f65..a0be900738 100644 --- a/win32_functional_tests/Makefile +++ b/win32_functional_tests/Makefile @@ -121,7 +121,7 @@ CPPSRC = $(UTILSRC_CPP) \ $(CONTROLLERS_ALGO_SRC_CPP) \ $(PROJECT_DIR)/controllers/settings.cpp \ $(PROJECT_DIR)/controllers/engine_controller.cpp \ - $(PROJECT_DIR)/development/analog_chart.cpp \ + $(PROJECT_DIR)/development/sensor_chart.cpp \ $(TRIGGER_SRC_CPP) \ $(TRIGGER_DECODERS_SRC_CPP) \ $(SYSTEMSRC_CPP) \ diff --git a/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp b/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp index 7eeb2fe493..055ab4aea1 100644 --- a/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp +++ b/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp @@ -22,7 +22,7 @@ #include "trigger_emulator_algo.h" #include "main_trigger_callback.h" #include "allsensors.h" -#include "analog_chart.h" +#include "sensor_chart.h" #include "injector_central.h" #include "engine.h" #include "tunerstudio.h" @@ -90,7 +90,7 @@ void rusEfiFunctionalTest(void) { initRpmCalculator(engine); #if EFI_ANALOG_CHART - initAnalogChart(); + initSensorChart(); #endif /* EFI_ANALOG_CHART */ initTriggerEmulator(&sharedLogger, engine);