diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 85a08e76a8..d81807a882 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -165,10 +165,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat * D14/W10 O2 Sensor */ engineConfiguration->afrSensor.afrAdcChannel = EFI_ADC_13; - /** - * VBatt - */ - engineConfiguration->vbattAdcChannel = EFI_ADC_14; + + commonFrankensoAnalogInputs(engineConfiguration); engineConfiguration->vbattDividerCoeff = ((float) (8.2 + 33)) / 8.2 * 2; boardConfiguration->injectionPins[0] = GPIOB_8; diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index e37438aba4..d047bf82f9 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -271,16 +271,14 @@ static void setMiata1994_common(engine_configuration_s *engineConfiguration, boa setFrankenso_01_LCD(boardConfiguration); + commonFrankensoAnalogInputs(engineConfiguration); + engineConfiguration->tpsAdcChannel = EFI_ADC_2; engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; engineConfiguration->mafAdcChannel = EFI_ADC_0; engineConfiguration->cltAdcChannel = EFI_ADC_12; engineConfiguration->iatAdcChannel = EFI_ADC_11; - /** - * VBatt - */ - engineConfiguration->vbattAdcChannel = EFI_ADC_14; } diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 5eef721331..492709f964 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -590,5 +590,12 @@ operation_mode_e getOperationMode(engine_configuration_s const *engineConfigurat if (engineConfiguration->rpmMultiplier == 1) return FOUR_STROKE_CRANK_SENSOR; return FOUR_STROKE_CAM_SENSOR; - } + +void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration) { + /** + * VBatt + */ + engineConfiguration->vbattAdcChannel = EFI_ADC_14; +} + diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index edad65ffbd..59445f4023 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -511,6 +511,8 @@ void printFloatArray(const char *prefix, float array[], int size); void incrementGlobalConfigurationVersion(void); int getGlobalConfigurationVersion(void); +void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/firmware/controllers/trigger/trigger_emulator_algo.cpp b/firmware/controllers/trigger/trigger_emulator_algo.cpp index d4dbe008c3..ebc8cd5396 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.cpp +++ b/firmware/controllers/trigger/trigger_emulator_algo.cpp @@ -134,7 +134,7 @@ static void resumeStimulator(void) { stopEmulationAtIndex = DO_NOT_STOP; } -void initTriggerEmulatorLogic(void) { +void initTriggerEmulatorLogic(Engine *engine) { initLogging(&logger, "position sensor(s) emulator"); trigger_shape_s *s = &engineConfiguration2->triggerShape; diff --git a/firmware/controllers/trigger/trigger_emulator_algo.h b/firmware/controllers/trigger/trigger_emulator_algo.h index 1b828ba443..ffd450bb31 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.h +++ b/firmware/controllers/trigger/trigger_emulator_algo.h @@ -8,6 +8,7 @@ #ifndef TRIGGER_EMULATOR_ALGO_H_ #define TRIGGER_EMULATOR_ALGO_H_ +#include "engine.h" #include "pwm_generator_logic.h" class TriggerEmulatorHelper { @@ -20,6 +21,6 @@ public: void handleEmulatorCallback(PwmConfig *state, int stateIndex); }; -void initTriggerEmulatorLogic(void); +void initTriggerEmulatorLogic(Engine *engine); #endif /* TRIGGER_EMULATOR_ALGO_H_ */ diff --git a/firmware/emulation/engine_emulator.cpp b/firmware/emulation/engine_emulator.cpp index 2e2e01a32d..7a5bd8090a 100644 --- a/firmware/emulation/engine_emulator.cpp +++ b/firmware/emulation/engine_emulator.cpp @@ -15,6 +15,7 @@ #include "status_loop.h" #include "wave_analyzer.h" #include "pin_repository.h" +#include "pwm_generator_logic.h" extern "C" { #include "poten.h" @@ -94,14 +95,14 @@ static void initECUstimulator(void) { chThdCreateStatic(eeThreadStack, sizeof(eeThreadStack), NORMALPRIO, (tfunc_t) eeThread, NULL); } -void initEngineEmulator(board_configuration_s *boardConfiguration) { +void initEngineEmulator(Engine *engine) { if (hasFirmwareError()) return; #if EFI_POTENTIOMETER - initPotentiometers(boardConfiguration); + initPotentiometers(&engine->engineConfiguration->bc); #endif /* EFI_POTENTIOMETER */ //initECUstimulator(); - initTriggerEmulator(); + initTriggerEmulator(engine); } diff --git a/firmware/emulation/engine_emulator.h b/firmware/emulation/engine_emulator.h index b26cb557ec..71a3cda401 100644 --- a/firmware/emulation/engine_emulator.h +++ b/firmware/emulation/engine_emulator.h @@ -8,7 +8,7 @@ #ifndef ENGINE_EMULATOR_H_ #define ENGINE_EMULATOR_H_ -#include "engine_configuration.h" -void initEngineEmulator(board_configuration_s *boardConfiguration); +#include "engine.h" +void initEngineEmulator(Engine *engine); #endif /* ENGINE_EMULATOR_H_ */ diff --git a/firmware/emulation/trigger_emulator.cpp b/firmware/emulation/trigger_emulator.cpp index a52c0b90fb..ce9914f370 100644 --- a/firmware/emulation/trigger_emulator.cpp +++ b/firmware/emulation/trigger_emulator.cpp @@ -22,12 +22,13 @@ #include "trigger_emulator_algo.h" #include "trigger_central.h" -extern engine_configuration_s *engineConfiguration; -extern board_configuration_s *boardConfiguration; - extern PwmConfig triggerSignal; -void initTriggerEmulator(void) { +void initTriggerEmulator(Engine *engine) { + + engine_configuration_s *engineConfiguration = engine->engineConfiguration; + board_configuration_s *boardConfiguration = &engineConfiguration->bc; + #if EFI_EMULATE_POSITION_SENSORS || defined(__DOXYGEN__) print("Emulating %s\r\n", getConfigurationName(engineConfiguration->engineType)); @@ -47,7 +48,7 @@ void initTriggerEmulator(void) { &boardConfiguration->triggerSimulatorPinModes[2]); #endif /* EFI_PROD_CODE */ - initTriggerEmulatorLogic(); + initTriggerEmulatorLogic(engine); #else print("No position sensor(s) emulation\r\n"); #endif /* EFI_EMULATE_POSITION_SENSORS */ diff --git a/firmware/emulation/trigger_emulator.h b/firmware/emulation/trigger_emulator.h index e354f70d6b..3ed22918eb 100644 --- a/firmware/emulation/trigger_emulator.h +++ b/firmware/emulation/trigger_emulator.h @@ -12,10 +12,9 @@ #include "main.h" #include "trigger_structure.h" -#include "engine_configuration.h" -#include "pwm_generator_logic.h" +#include "engine.h" -void initTriggerEmulator(void); +void initTriggerEmulator(Engine *engine); void setTriggerEmulatorRPM(int value); #endif /* DIST_EMULATOR_H_ */ diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 7dc3ed5e35..38597aed11 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -180,7 +180,7 @@ void runRusEfi(void) { #endif #if EFI_ENGINE_EMULATOR - initEngineEmulator(boardConfiguration); + initEngineEmulator(&engine); #endif startStatusThreads(&engine); @@ -249,5 +249,5 @@ void firmwareError(const char *fmt, ...) { } int getRusEfiVersion(void) { - return 20141103; + return 20141105; } diff --git a/firmware/svnversion.h b/firmware/svnversion.h index 1174f235f4..d1ec72ba19 100644 --- a/firmware/svnversion.h +++ b/firmware/svnversion.h @@ -1,5 +1,5 @@ // This file was generated by Version2Header -// Fri Oct 31 08:26:33 EDT 2014 +// Tue Nov 04 16:07:39 EST 2014 #ifndef VCS_VERSION -#define VCS_VERSION "5014" +#define VCS_VERSION "5101" #endif diff --git a/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp b/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp index 5b1f9dc7e7..10ef85c41a 100644 --- a/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp +++ b/win32_functional_tests/simulator/rusEfiFunctionalTest.cpp @@ -78,7 +78,7 @@ void rusEfiFunctionalTest(void) { initAnalogChart(); - initTriggerEmulator(); + initTriggerEmulator(&engine); initMainEventListener(&engine, engineConfiguration2);