From 80cf6d1943e68b7130cd6c468905daedfe00cf8d Mon Sep 17 00:00:00 2001 From: kifir Date: Wed, 24 Apr 2024 15:59:41 +0300 Subject: [PATCH] add check of bailed on dwell count #6373 --- firmware/controllers/algo/engine.h | 7 +++++-- firmware/controllers/algo/event_registry.h | 4 ---- .../controllers/engine_cycle/spark_logic.cpp | 2 +- .../test_odd_firing_engine.cpp | 2 ++ .../tests/trigger/test_real_noisy_trigger.cpp | 17 +++++++++-------- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index e40c8e1fa1..8b69593273 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -223,10 +223,13 @@ public: #if EFI_UNIT_TEST bool needTdcCallback = true; - int bailedOnDwell = 0; +private: + int bailedOnDwellCount = 0; +public: + int getBailedOnDwellCount() const { return bailedOnDwellCount; } + void incrementBailedOnDwellCount() { bailedOnDwellCount++; } #endif /* EFI_UNIT_TEST */ - int getGlobalConfigurationVersion(void) const; diff --git a/firmware/controllers/algo/event_registry.h b/firmware/controllers/algo/event_registry.h index c634da84f6..64af3a7989 100644 --- a/firmware/controllers/algo/event_registry.h +++ b/firmware/controllers/algo/event_registry.h @@ -55,10 +55,6 @@ public: scheduling_s dwellStartTimer; AngleBasedEvent sparkEvent; -#if EFI_UNIT_TEST - bool bailedOnDwell = false; -#endif - scheduling_s trailingSparkCharge; scheduling_s trailingSparkFire; diff --git a/firmware/controllers/engine_cycle/spark_logic.cpp b/firmware/controllers/engine_cycle/spark_logic.cpp index 92dc77a072..e0ea2b2586 100644 --- a/firmware/controllers/engine_cycle/spark_logic.cpp +++ b/firmware/controllers/engine_cycle/spark_logic.cpp @@ -334,7 +334,7 @@ void turnSparkPinHighStartCharging(IgnitionEvent *event) { } #if EFI_UNIT_TEST - event->bailedOnDwell = skippedDwellDueToTriggerNoised; + engine->incrementBailedOnDwellCount(); #endif diff --git a/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp b/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp index 7b96ce855d..0cf0cc58af 100644 --- a/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp +++ b/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp @@ -65,4 +65,6 @@ TEST(OddFireRunningMode, hd) { eth.assertEvent5("spark down2#3", 3, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(-180 + cylinderTwo - timing)); eth.assertEvent5("fuel down2#6", 6, (void*)turnInjectionPinLow, eth.angleToTimeUs(540 + PORT_INJECTION_OFFSET + cylinderTwo)); eth.assertEvent5("spark down2#7", 7, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(180 + cylinderOne - timing)); + + ASSERT_EQ(2, engine->getBailedOnDwellCount()) << "Please check if our dwell algorithm have really got better."; } diff --git a/unit_tests/tests/trigger/test_real_noisy_trigger.cpp b/unit_tests/tests/trigger/test_real_noisy_trigger.cpp index cc7effa0b3..06f0afc470 100644 --- a/unit_tests/tests/trigger/test_real_noisy_trigger.cpp +++ b/unit_tests/tests/trigger/test_real_noisy_trigger.cpp @@ -1,7 +1,7 @@ #include "pch.h" #include "logicdata_csv_reader.h" -static void testNoOverdwell(const char* file, bool instantRpm) { +static void testNoOverdwell(const char* file, bool instantRpm, const int expectedBailedOnDwellCount) { CsvReader reader(1, /* vvtCount */ 0); reader.open(file); @@ -49,29 +49,30 @@ static void testNoOverdwell(const char* file, bool instantRpm) { reader.processLine(ð); } - // nothing to check here, just that no coils got stuck on + ASSERT_EQ(expectedBailedOnDwellCount, engine->getBailedOnDwellCount()) + << "Please check if our dwell algorithm have really got better."; } TEST(RealNoisyTrigger, AvoidOverdwell1NoInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-1.csv", false); + testNoOverdwell("tests/trigger/resources/noisy-trigger-1.csv", false, 25); } TEST(RealNoisyTrigger, AvoidOverdwell1WithInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-1.csv", true); + testNoOverdwell("tests/trigger/resources/noisy-trigger-1.csv", true, 23); } TEST(RealNoisyTrigger, AvoidOverdwell2NoInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-2.csv", false); + testNoOverdwell("tests/trigger/resources/noisy-trigger-2.csv", false, 89); } TEST(RealNoisyTrigger, AvoidOverdwell2WithInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-2.csv", true); + testNoOverdwell("tests/trigger/resources/noisy-trigger-2.csv", true, 85); } TEST(RealNoisyTrigger, AvoidOverdwell3NoInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-3.csv", false); + testNoOverdwell("tests/trigger/resources/noisy-trigger-3.csv", false, 25); } TEST(RealNoisyTrigger, AvoidOverdwell3WithInstant) { - testNoOverdwell("tests/trigger/resources/noisy-trigger-3.csv", true); + testNoOverdwell("tests/trigger/resources/noisy-trigger-3.csv", true, 22); }