116 void updateLtit(
float rpm,
float clt,
bool acActive,
bool fan1Active,
bool fan2Active,
float idleIntegral);
float m_modeledFlowIdleTiming
PidIndustrial industrialWithOverrideIdlePid
bool isIdlingOrTaper() const override
void onFastCallback() override final
bool isCoastingAdvance() const override
Phase getCurrentPhase() const override
float getCrankingTaperFraction(float clt) const override
float getClosedLoop(IIdleController::Phase phase, float tpsPos, float rpm, float targetRpm) override
void onConfigurationChange(engine_configuration_s const *previousConfig) override final
Phase determinePhase(float rpm, TargetInfo targetRpm, SensorResult tps, float vss, float crankingTaperFraction) override
float m_idleTimingSoftEntryEndTime
float m_lastAutomaticPosition
void onEngineStop() override final
float getIdleTimingAdjustment(float rpm) override
efitimeus_t restoreAfterPidResetTimeUs
percent_t getOpenLoop(Phase phase, float rpm, float clt, SensorResult tps, float crankingTaperFraction) override
TargetInfo getTargetRpm(float clt) override
void onIgnitionStateChanged(bool ignitionOn) override
efitimeus_t lastTimeRunningUs
percent_t getCrankingOpenLoop(float clt) const override
float m_crankTaperEndTime
void updateLtit(float rpm, float clt, bool acActive, bool fan1Active, bool fan2Active, float idleIntegral)
percent_t getRunningOpenLoop(IIdleController::Phase phase, float rpm, float clt, SensorResult tps) override
static constexpr engine_configuration_s * engineConfiguration
void setTargetIdleRpm(int value)
void setDefaultIdleParameters()
void setManualIdleValvePosition(int positionPercent)
void applyIACposition(percent_t position)
void startIdleBench(void)
percent_t getIdlePosition()
static CCM_OPTIONAL FunctionalSensor clt(SensorType::Clt, MS2NT(10))
Base class for sensors. Inherit this class to implement a new type of sensor.
expected< float > SensorResult
bool operator==(const TargetInfo &other) const
virtual float getCrankingOpenLoop(float clt) const =0
virtual float getIdleTimingAdjustment(float rpm)=0
virtual bool isIdlingOrTaper() const =0
virtual float getRunningOpenLoop(IIdleController::Phase phase, float rpm, float clt, SensorResult tps)=0
virtual TargetInfo getTargetRpm(float clt)=0
virtual float getCrankingTaperFraction(float clt) const =0
virtual float getClosedLoop(Phase phase, float tps, float rpm, float target)=0
virtual bool isCoastingAdvance() const =0
virtual float getOpenLoop(Phase phase, float rpm, float clt, SensorResult tps, float crankingTaperFraction)=0
virtual Phase getCurrentPhase() const =0
virtual Phase determinePhase(float rpm, TargetInfo targetRpm, SensorResult tps, float vss, float crankingTaperFraction)=0
bool useSeparateIdleTablesForCrankingTaper
bool useIdleAdvanceWhileCoasting