diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 298f98d65b..eadad2debd 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -585,7 +585,7 @@ bool validateConfig() { ensureArrayIsAscending("Pedal map pedal", config->pedalToTpsPedalBins); ensureArrayIsAscending("Pedal map RPM", config->pedalToTpsRpmBins); - if (engineConfiguration->hpfpCamLobes > 0) { + if (isGdiEngine()) { ensureArrayIsAscending("HPFP compensation", engineConfiguration->hpfpCompensationRpmBins); ensureArrayIsAscending("HPFP deadtime", engineConfiguration->hpfpDeadtimeVoltsBins); ensureArrayIsAscending("HPFP lobe profile", engineConfiguration->hpfpLobeProfileQuantityBins); diff --git a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp index a73abea11f..1e75b585ea 100644 --- a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp +++ b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp @@ -150,12 +150,16 @@ angle_t HpfpQuantity::pumpAngleFuel(int rpm, HpfpController *model) { engineConfiguration->hpfpLobeProfileAngle); } +bool isGdiEngine() { + return engineConfiguration->hpfpCamLobes > 0; +} + void HpfpController::onFastCallback() { // Pressure current/target calculation int rpm = Sensor::getOrZero(SensorType::Rpm); isHpfpInactive = rpm < rpm_spinning_cutoff || - engineConfiguration->hpfpCamLobes == 0 || + !isGdiEngine() || engineConfiguration->hpfpPumpVolume == 0 || !enginePins.hpfpValve.isInitialized(); // What conditions can we not handle? diff --git a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.h b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.h index e75ec18800..05644ff93c 100644 --- a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.h +++ b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.h @@ -31,6 +31,8 @@ public: angle_t findNextLobe(); ///< Calculate the angle (after crank TDC) for the top of the next lobe }; +bool isGdiEngine(); + class HpfpController; class HpfpQuantity {