47 chibios_rt::CriticalSectionLocker csl;
92 #if EFI_LAUNCH_CONTROL
98 #define MAKE_HUMAN_READABLE_ADVANCE(advance) (advance > getEngineState()->engineCycle / 2 ? advance - getEngineState()->engineCycle : advance)
103 #if EFI_SHAFT_POSITION_INPUT
131 float m_postCrankingFactor = interpolate3d(
139 m_postCrankingFactor = 1.0f;
155 float stage1InjectionMass = untrimmedInjectionMass - stage2InjectionMass;
181 for (
size_t i = 0; i < STFT_BANK_COUNT; i++) {
182 float corr = clResult.banks[i];
205 #if EFI_LAUNCH_CONTROL
209 #if EFI_ANTILAG_SYSTEM
215 #if EFI_ENGINE_CONTROL
221 if (!cisnan(newTCharge)) {
231 #define VCS_VERSION "123"
260 criticalError(
"Tune is password protected. Please use console to unlock tune.");
267 efiPrintf(
"Nope rebooting...");
272 efiPrintf(
"Unlocked! Burning...");
angle_t getAdvance(int rpm, float engineLoad)
size_t getMultiSparkCount(int rpm)
angle_t getCylinderIgnitionTrim(size_t cylinderNumber, int rpm, float ignitionLoad)
void recalculateAuxValveTiming()
FuelComputer fuelComputer
SoftSparkLimiter softSparkLimiter
IgnitionState ignitionState
float stftCorrection[STFT_BANK_COUNT]
bool slowCallBackWasInvoked
LaunchControlBase launchController
RpmCalculator rpmCalculator
constexpr auto & module()
AntilagSystemBase antilagController
LambdaMonitor lambdaMonitor
SoftSparkLimiter hardSparkLimiter
void updateTChargeK(int rpm, float tps)
efitick_t timeSinceLastTChargeK
float injectionMass[MAX_CYLINDER_COUNT]
void periodicFastCallback()
bool shouldUpdateInjectionTiming
angle_t trailingSparkAngle
floatms_t injectionDuration
floatms_t injectionDurationStage2
float injectionStage2Fraction
multispark_state multispark
angle_t timingAdvance[MAX_CYLINDER_COUNT]
floatms_t getSparkDwell(int rpm)
void updateRevLimit(int rpm)
angle_t getLimitingTimingRetard() const
trigger_config_s getType() const override
bool isVerboseTriggerSynchDetails() const override
bool isCranking() const override
uint32_t getRevolutionCounterSinceStart(void) const
virtual SensorResult get() const =0
static float getOrZero(SensorType type)
void setTargetSkipRatio(float targetSkipRatio)
virtual bool isVerboseTriggerSynchDetails() const =0
trigger_config_s TriggerType
bool VerboseTriggerSynchDetails
virtual trigger_config_s getType() const =0
trigger_config_s getType() const override
bool isVerboseTriggerSynchDetails() const override
warningBuffer_t recentWarnings
void addWarningCode(ObdCode code)
bool isWarningNow() const
Timer timeSinceLastWarning
ClosedLoopFuelResult fuelClosedLoopCorrection()
float limitRateOfChange(float newValue, float oldValue, float incrLimitPerSec, float decrLimitPerSec, float secsPassed)
void unlockEcu(int password)
LimpManager * getLimpManager()
trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode)
bool warning(ObdCode code, const char *fmt,...)
float getCylinderFuelTrim(size_t cylinderNumber, int rpm, float fuelLoad)
float getStage2InjectionFraction(int rpm, float load)
angle_t getCltTimingCorrection()
angle_t getInjectionOffset(float rpm, float load)
float getIatFuelCorrection()
percent_t getInjectorDutyCycle(int rpm)
float getBaroCorrection()
float getCltFuelCorrection()
Engine warm-up fuel correction.
float getInjectionMass(int rpm)
@ CUSTOM_SLOW_NOT_INVOKED
@ EngineStatePeriodicFastCallback
engine_configuration_s * engineConfiguration
correctedIgnitionAdvance("Timing: ignition", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 896, 0.02, 0.0, 0.0, "deg")
temperature_t getTCharge(int rpm, float tps)
void update(float rpm, float load)
bool enableStagedInjection
float tChargeAirIncrLimit
bool verboseTriggerSynchDetails
float postCrankingDurationBins[CRANKING_ENRICH_COUNT]
float postCrankingCLTBins[CRANKING_ENRICH_COUNT]
vvt_mode_e vvtMode[CAMS_PER_BANK]
uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]
float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]
float tChargeAirDecrLimit
bool useHardSkipInTraction
float tractionControlSparkSkip
scaled_channel< uint16_t, 100, 1 > afrTableYAxis
angle_t dwellDurationAngle
scaled_channel< int16_t, 50, 1 > baseIgnitionAdvance
scaled_channel< int16_t, 100, 1 > cltTimingCorrection
scaled_channel< int16_t, 50, 1 > correctedIgnitionAdvance
float postCrankingFuelCorrection
float intakeTemperatureCoefficient
float coolantTemperatureCoefficient
float timeSinceCrankingInSecs
scaled_channel< int16_t, 100, 1 > tCharge
T * find(const TSearch &search) const