diff --git a/firmware/controllers/engine_cycle/main_trigger_callback.cpp b/firmware/controllers/engine_cycle/main_trigger_callback.cpp index c77ddbf127..b51126d3c4 100644 --- a/firmware/controllers/engine_cycle/main_trigger_callback.cpp +++ b/firmware/controllers/engine_cycle/main_trigger_callback.cpp @@ -127,6 +127,7 @@ void InjectorOutputPin::open(efitick_t nowNt DECLARE_ENGINE_PARAMETER_SUFFIX) { #if EFI_TOOTH_LOGGER LogTriggerInjectorState(nowNt, true PASS_ENGINE_PARAMETER_SUFFIX); #endif // EFI_TOOTH_LOGGER + INJECT_ENGINE_REFERENCE(this); setHigh(); } } diff --git a/firmware/controllers/engine_cycle/spark_logic.cpp b/firmware/controllers/engine_cycle/spark_logic.cpp index d4939b9d80..2352595d24 100644 --- a/firmware/controllers/engine_cycle/spark_logic.cpp +++ b/firmware/controllers/engine_cycle/spark_logic.cpp @@ -16,6 +16,7 @@ #include "tooth_logger.h" #include "hip9011.h" +#include "engine_ptr.h" #if EFI_ENGINE_CONTROL @@ -246,6 +247,7 @@ static void startDwellByTurningSparkPinHigh(IgnitionEvent *event, IgnitionOutput #if HW_CHECK_SPARK_FSIO enginePins.fsioOutputs[event->cylinderIndex].setValue(1); #endif // HW_CHECK_SPARK_FSIO + INJECT_ENGINE_REFERENCE(output); output->setHigh(); } diff --git a/firmware/controllers/system/efi_gpio.h b/firmware/controllers/system/efi_gpio.h index 1ba5ee9de7..7b2f79e66c 100644 --- a/firmware/controllers/system/efi_gpio.h +++ b/firmware/controllers/system/efi_gpio.h @@ -91,6 +91,8 @@ private: */ class NamedOutputPin : public virtual OutputPin { public: + DECLARE_ENGINE_PTR; + NamedOutputPin(); explicit NamedOutputPin(const char *name); void setHigh(); diff --git a/unit_tests/Makefile b/unit_tests/Makefile index 60756519e6..64e81babd9 100644 --- a/unit_tests/Makefile +++ b/unit_tests/Makefile @@ -143,6 +143,7 @@ CPPSRC = $(UTILSRC_CPP) \ $(TRIGGER_SRC_CPP) \ $(INIT_SRC_CPP) \ $(PROJECT_DIR)/../unit_tests/logicdata.cpp \ + $(DEVELOPMENT_DIR)/engine_sniffer.cpp \ $(PROJECT_DIR)/../unit_tests/main.cpp \ $(PROJECT_DIR)/console/binary/tooth_logger.cpp \ $(PROJECT_DIR)/console/binary_log/log_field.cpp \ diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index 4f0a20a48f..5b7c8ba6c9 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -11,6 +11,8 @@ #define EFI_ENABLE_ASSERTS TRUE +#define EFI_ENGINE_SNIFFER TRUE + #define EFI_PRINTF_FUEL_DETAILS TRUE #define EFI_CJ125 TRUE diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index 1b7e7b0d5f..bba60493b6 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -18,6 +18,12 @@ #include "tooth_logger.h" #include "logicdata.h" +#if EFI_ENGINE_SNIFFER +#include "engine_sniffer.h" +extern WaveChart waveChart; +#endif /* EFI_ENGINE_SNIFFER */ + + extern int timeNowUs; extern WarningCodeState unitTestWarningCodeState; extern engine_configuration_s & activeConfiguration; @@ -57,6 +63,9 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType, configuration_callb engine->setConfig(engine, &persistentConfig.engineConfiguration, &persistentConfig); EXPAND_Engine; + INJECT_ENGINE_REFERENCE(&waveChart); + waveChart.init(); + setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5); setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5); setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -20, 1.42);