From ec1a6a84dbb6833d8afeccf95601b6ee55f6e1a1 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Fri, 29 Apr 2022 15:23:22 -0400 Subject: [PATCH] knock reaction #202 LiveData --- .../controllers/engine_cycle/knock_controller.txt | 3 ++- .../engine_cycle/knock_controller_generated.h | 14 +++++++++++--- firmware/controllers/engine_cycle/knock_logic.h | 9 ++++----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/firmware/controllers/engine_cycle/knock_controller.txt b/firmware/controllers/engine_cycle/knock_controller.txt index 38791ba2d9..1ce575681a 100644 --- a/firmware/controllers/engine_cycle/knock_controller.txt +++ b/firmware/controllers/engine_cycle/knock_controller.txt @@ -1,5 +1,6 @@ struct_no_prefix knock_controller_s angle_t m_knockRetard;Degrees retarded: larger number = more retard - +float m_knockThreshold +uint32_t m_knockCount end_struct diff --git a/firmware/controllers/engine_cycle/knock_controller_generated.h b/firmware/controllers/engine_cycle/knock_controller_generated.h index 1487e96165..27f71c7e91 100644 --- a/firmware/controllers/engine_cycle/knock_controller_generated.h +++ b/firmware/controllers/engine_cycle/knock_controller_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Fri Apr 29 16:01:47 UTC 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle\knock_controller.txt Fri Apr 29 15:13:26 EDT 2022 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -10,8 +10,16 @@ struct knock_controller_s { * offset 0 */ angle_t m_knockRetard = (angle_t)0; + /** + * offset 4 + */ + float m_knockThreshold = (float)0; + /** + * offset 8 + */ + uint32_t m_knockCount = (uint32_t)0; }; -static_assert(sizeof(knock_controller_s) == 4); +static_assert(sizeof(knock_controller_s) == 12); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Fri Apr 29 16:01:47 UTC 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle\knock_controller.txt Fri Apr 29 15:13:26 EDT 2022 diff --git a/firmware/controllers/engine_cycle/knock_logic.h b/firmware/controllers/engine_cycle/knock_logic.h index 00dada3fcd..093a87809a 100644 --- a/firmware/controllers/engine_cycle/knock_logic.h +++ b/firmware/controllers/engine_cycle/knock_logic.h @@ -14,6 +14,10 @@ int getCylinderKnockBank(uint8_t cylinderNumber); class KnockController : public EngineModule, public knock_controller_s { public: + KnockController() { + // start with threshold higher than any possible knock to avoid recording spurious knocks + m_knockThreshold = 100; + } // EngineModule implementation void onFastCallback() override; @@ -26,11 +30,6 @@ public: virtual float getKnockThreshold() const; private: - // start with threshold higher than any possible knock to avoid recording spurious knocks - float m_knockThreshold = 100; - - uint32_t m_knockCount = 0; - using PD = PeakDetect; PD peakDetectors[12]; PD allCylinderPeakDetector;