From e5133de70f67ec604118082e47cc4bbafffea336 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sun, 26 Jul 2020 20:33:18 -0700 Subject: [PATCH] add mock airmass mode --- firmware/controllers/algo/auto_generated_enums.cpp | 2 ++ firmware/controllers/algo/engine.h | 5 +++++ firmware/controllers/algo/fuel_math.cpp | 3 +++ firmware/controllers/algo/rusefi_enums.h | 3 +++ 4 files changed, 13 insertions(+) diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 3174670568..f7b61ecdb6 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -735,6 +735,8 @@ case LM_SPEED_DENSITY: return "LM_SPEED_DENSITY"; case LM_ALPHA_N_2: return "LM_ALPHA_N_2"; +case LM_MOCK: + return "LM_MOCK"; } return NULL; } diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index 6ec879af4e..7ecc25b9cf 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -16,6 +16,7 @@ #include "accel_enrichment.h" #include "trigger_central.h" #include "local_version_holder.h" +#include "airmass.h" #if EFI_SIGNAL_EXECUTOR_ONE_TIMER // PROD real firmware uses this implementation @@ -334,6 +335,10 @@ public: void knockLogic(float knockVolts DECLARE_ENGINE_PARAMETER_SUFFIX); void printKnockState(void); +#if EFI_UNIT_TEST + AirmassModelBase* mockAirmassModel = nullptr; +#endif + private: /** * By the way: diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index 7de041a545..4711e33a39 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -179,6 +179,9 @@ AirmassModelBase* getAirmassModel(DECLARE_ENGINE_PARAMETER_SIGNATURE) { case LM_SPEED_DENSITY: return &sdAirmass; case LM_REAL_MAF: return &mafAirmass; case LM_ALPHA_N_2: return &alphaNAirmass; +#if EFI_UNIT_TEST + case LM_MOCK: return engine->mockAirmassModel; +#endif default: return nullptr; } } diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 9736c26d92..915318e7b4 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -446,6 +446,9 @@ typedef enum { // todo: rename after LM_ALPHA_N is removed LM_ALPHA_N_2 = 5, + // This mode is for unit testing only, so that tests don't have to rely on a particular real airmass mode + LM_MOCK = 100, + Force_4_bytes_size_engine_load_mode = ENUM_32_BITS, } engine_load_mode_e;