88 if (rpm < preLaunchRpm) {
90 }
else if (launchRpm <= rpm) {
106 return currentRpmLaunchCondition;
158 if (sparkSkipStartRpm <= rpm) {
162 result =
interpolateClamped(sparkSkipStartRpm, initialIgnitionCutRatio, sparkSkipEndRpm, finalIgnitionCutRatio, rpm);
170 : allowHardCut(p_allowHardCut) {
177 const float luaSparkSkip,
179 const float launchOrShiftTorqueReductionControllerSparkSkipRatio
195 targetSkipRatio += launchOrShiftTorqueReductionControllerSparkSkipRatio;
float calculateSparkSkipRatio(float rpm) const
LaunchCondition calculateLaunchCondition(float rpm)
bool isLaunchRpmRetardCondition() const
bool isLaunchFuelRpmRetardCondition() const
float getFuelCoefficient() const
bool isLaunchSparkRpmRetardCondition() const
LaunchCondition calculateRPMLaunchCondition(float rpm)
bool isInsideSpeedCondition() const
bool isInsideTpsCondition() const
bool isInsideSwitchCondition()
virtual SensorResult get() const =0
static float getOrZero(SensorType type)
void updateTargetSkipRatio(float luaSoftSparkSkip, float tractionControlSparkSkip, float launchOrShiftTorqueReductionControllerSparkSkipRatio=0.0f)
SoftSparkLimiter(bool p_allowHardCut)
float interpolateClamped(float x1, float y1, float x2, float y2, float x)
bool getBrakePedalState()
bool getClutchDownState()
static constexpr engine_configuration_s * engineConfiguration
One header which acts as gateway to current engine state.
bool efiReadPin(brain_pin_e pin)
bool isBrainPinValid(brain_pin_e brainPin)
tractionControlSparkSkip("tractionControlSparkSkip", SensorCategory.SENSOR_INPUTS, FieldType.INT, 1396, 1.0, -1.0, -1.0, "")
torqueReductionActivationMode_e torqueReductionActivationMode
bool launchControlEnabled
uint16_t launchCorrectionsEndRpm
launchActivationMode_e launchActivationMode
int8_t initialIgnitionCutPercent
int8_t launchFuelAdderPercent
switch_input_pin_e launchActivatePin
pin_input_mode_e launchActivatePinMode
bool torqueReductionEnabled
int8_t finalIgnitionCutPercentBeforeLaunch
uint16_t torqueReductionArmingRpm
bool launchSparkCutEnable
bool useHardSkipInTraction
bool isBrakePedalActivated
bool launchActivatePinState
bool rpmPreLaunchCondition
bool isPreLaunchCondition
bool activateSwitchCondition
void tinymt32_init(tinymt32_t *random, uint32_t seed)
Tiny Mersenne Twister only 127 bit internal state.
static float tinymt32_generate_float(tinymt32_t *random)