From 173ceae146fd601f8a8931b8e9070ed2eab4c89a Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 7 Sep 2022 16:27:56 -0400 Subject: [PATCH] extracting prime_injection --- .../engine_cycle/main_trigger_callback.cpp | 20 ---------------- .../engine_cycle/prime_injection.cpp | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/firmware/controllers/engine_cycle/main_trigger_callback.cpp b/firmware/controllers/engine_cycle/main_trigger_callback.cpp index 7dfb7b8c92..91fff94ae5 100644 --- a/firmware/controllers/engine_cycle/main_trigger_callback.cpp +++ b/firmware/controllers/engine_cycle/main_trigger_callback.cpp @@ -504,26 +504,6 @@ void PrimeController::onPrimeStart() { engine->executor.scheduleByTimestampNt("prime", &m_end, endTime, { onPrimeEndAdapter, this }); } -void PrimeController::onPrimeEnd() { - endSimultaneousInjectionOnlyTogglePins(); - - m_isPriming = false; -} - -floatms_t PrimeController::getPrimeDuration() const { - auto clt = Sensor::get(SensorType::Clt); - - // If the coolant sensor is dead, skip the prime. The engine will still start fine, but may take a little longer. - if (!clt) { - return 0; - } - - auto primeMass = - 0.001f * // convert milligram to gram - interpolate2d(clt.Value, engineConfiguration->primeBins, engineConfiguration->primeValues); - - return engine->module()->getInjectionDuration(primeMass); -} void updatePrimeInjectionPulseState() { static bool counterWasReset = false; diff --git a/firmware/controllers/engine_cycle/prime_injection.cpp b/firmware/controllers/engine_cycle/prime_injection.cpp index 298af42975..912a8141ab 100644 --- a/firmware/controllers/engine_cycle/prime_injection.cpp +++ b/firmware/controllers/engine_cycle/prime_injection.cpp @@ -2,6 +2,29 @@ * @file prime_injection.cpp */ +#include "pch.h" #include "prime_injection.h" +#include "efi_gpio.h" +#include "sensor.h" +void PrimeController::onPrimeEnd() { + endSimultaneousInjectionOnlyTogglePins(); + + m_isPriming = false; +} + +floatms_t PrimeController::getPrimeDuration() const { + auto clt = Sensor::get(SensorType::Clt); + + // If the coolant sensor is dead, skip the prime. The engine will still start fine, but may take a little longer. + if (!clt) { + return 0; + } + + auto primeMass = + 0.001f * // convert milligram to gram + interpolate2d(clt.Value, engineConfiguration->primeBins, engineConfiguration->primeValues); + + return engine->module()->getInjectionDuration(primeMass); +}