5#if EFI_SHAFT_POSITION_INPUT
55 if (rpm < engineConfiguration->lambdaProtectionMinRpm) {
60 if (load < engineConfiguration->lambdaProtectionMinLoad) {
71 if (timeSinceDfco < engineConfiguration->noFuelTrimAfterDfcoTime) {
78 if (timeSinceFuelCut < 2) {
FuelComputer fuelComputer
constexpr auto & module()
float getTimeout() const override
float getMaxAllowedLambda(float rpm, float load) const override
virtual SensorResult get() const =0
static float getOrZero(SensorType type)
static EngineAccessor engine
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
virtual bool isCurrentlyGood(float rpm, float load) const
virtual float getTimeout() const =0
virtual float getMaxAllowedLambda(float rpm, float load) const =0
void update(float rpm, float load)
Timer m_timeSinceGoodLambda
virtual bool restoreConditionsMet(float rpm, float load) const
scaled_channel< uint8_t, 1, 10 > lambdaProtectionRestoreLoad
scaled_channel< uint8_t, 10, 1 > lambdaProtectionTimeout
uint8_t lambdaProtectionRestoreTps
uint8_t lambdaProtectionMinTps
scaled_channel< uint8_t, 1, 100 > lambdaProtectionRestoreRpm
bool lambdaProtectionEnable
scaled_channel< uint16_t, 10000, 1 > targetLambda
scaled_channel< uint16_t, 100, 1 > lambdaTimeSinceGood
uint16_t lambdaMaxDeviationRpmBins[LAM_SIZE]
scaled_channel< uint8_t, 100, 1 > lambdaMaxDeviationTable[LAM_SIZE][LAM_SIZE]
uint16_t lambdaMaxDeviationLoadBins[LAM_SIZE]