From 002a2ce0167417121e8b47f9d9552b420297d4bd Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 28 Feb 2024 21:44:02 -0500 Subject: [PATCH] only: encapsulation/better name --- firmware/controllers/algo/event_registry.h | 7 ++++++- firmware/controllers/engine_cycle/spark_logic.cpp | 2 +- firmware/controllers/system/timer/trigger_scheduler.cpp | 4 ++-- unit_tests/test-framework/engine_test_helper.cpp | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/firmware/controllers/algo/event_registry.h b/firmware/controllers/algo/event_registry.h index dcd46aeecf..6049d2eab2 100644 --- a/firmware/controllers/algo/event_registry.h +++ b/firmware/controllers/algo/event_registry.h @@ -21,7 +21,10 @@ struct AngleBasedEvent { */ AngleBasedEvent *nextToothEvent = nullptr; - angle_t enginePhase; + // angular position of this event + angle_t getAngle() const { + return enginePhase; + } void setAngle(angle_t p_enginePhase) { enginePhase = p_enginePhase; @@ -29,6 +32,8 @@ struct AngleBasedEvent { bool shouldSchedule(float currentPhase, float nextPhase) const; float getAngleFromNow(float currentPhase) const; +private: + angle_t enginePhase; }; #define MAX_OUTPUTS_FOR_IGNITION 2 diff --git a/firmware/controllers/engine_cycle/spark_logic.cpp b/firmware/controllers/engine_cycle/spark_logic.cpp index 705254f3f3..88d7d24559 100644 --- a/firmware/controllers/engine_cycle/spark_logic.cpp +++ b/firmware/controllers/engine_cycle/spark_logic.cpp @@ -402,7 +402,7 @@ static void scheduleSparkEvent(bool limitedSpark, IgnitionEvent *event, #if EFI_UNIT_TEST if (verboseMode) { printf("spark dwell@ %.1f spark@ %.2f id=%d\r\n", event->dwellAngle, - event->sparkEvent.enginePhase, + event->sparkEvent.getAngle(), event->sparkId); } #endif diff --git a/firmware/controllers/system/timer/trigger_scheduler.cpp b/firmware/controllers/system/timer/trigger_scheduler.cpp index fdb0b405f9..9b2f0eaa53 100644 --- a/firmware/controllers/system/timer/trigger_scheduler.cpp +++ b/firmware/controllers/system/timer/trigger_scheduler.cpp @@ -45,10 +45,10 @@ bool TriggerScheduler::scheduleOrQueue(const char *msg, AngleBasedEvent *event, } void TriggerScheduler::schedule(const char *msg, AngleBasedEvent* event, action_s action) { - if (event->enginePhase < 0) { + if (event->getAngle() < 0) { // at the moment we expect API consumer to wrap angle. shall we do the wrapping in the enginePhase setter? // i.e. what is the best level to take care of the range constraint? - criticalError("Negative angle %s %f", msg, event->enginePhase); + criticalError("Negative angle %s %f", msg, event->getAngle()); } event->action = action; diff --git a/unit_tests/test-framework/engine_test_helper.cpp b/unit_tests/test-framework/engine_test_helper.cpp index 6fc20b15e8..f5f40bded4 100644 --- a/unit_tests/test-framework/engine_test_helper.cpp +++ b/unit_tests/test-framework/engine_test_helper.cpp @@ -320,7 +320,7 @@ const AngleBasedEvent * EngineTestHelper::assertTriggerEvent(const char *msg, assertEqualsM4(msg, " callback up/down", (void*)event->action.getCallback() == (void*) callback, 1); } - assertEqualsM4(msg, " angle", enginePhase, event->enginePhase); + assertEqualsM4(msg, " angle", enginePhase, event->getAngle()); return event; }