39 case DIGITAL_SWITCH_INPUT: {
94 const float afr = lambda1.Value * STOICH_RATIO;
110 if (rpmSensorReading.Valid) {
111 const float rpm = rpmSensorReading.Value;
112 if (rpmHysteresis.checkIfLimitIsExceeded(
132 result =
efiReadPin(triggerPin, triggerPinMode);
141 if (currentSensorResult.Valid) {
142 const float currentValue = currentSensorResult.Value;
145 case LUA_GAUGE_LOWER_BOUND: {
146 result = (armingValue <= currentValue);
149 case LUA_GAUGE_UPPER_BOUND: {
150 result = (currentValue <= armingValue);
RegisteredOutputPin nitrousRelay
bool checkTriggerPinState() const
void updateRpmConditionSatisfied()
float getFuelCoefficient() const
void onSlowCallback() override
void updateMapConditionSatisfied()
void updateAfrConditionSatisfied()
bool checkLuaGauge() const
void updateSpeedConditionSatisfied()
SensorType getLuaGauge() const
void updateCltConditionSatisfied()
void updateTpsConditionSatisfied()
void setValue(const char *msg, int logicValue, bool isForce=false)
virtual SensorResult get() const =0
static constexpr engine_configuration_s * engineConfiguration
static CCM_OPTIONAL FunctionalSensor clt(SensorType::Clt, MS2NT(10))
bool efiReadPin(brain_pin_e pin)
bool isBrainPinValid(brain_pin_e brainPin)
expected< float > SensorResult
uint16_t nitrousDeactivationRpm
pin_input_mode_e nitrousControlTriggerPinMode
int16_t nitrousMaximumMap
int16_t nitrousMinimumClt
bool nitrousControlEnabled
uint16_t nitrousActivationRpm
switch_input_pin_e nitrousControlTriggerPin
uint16_t nitrousMinimumVehicleSpeed
scaled_channel< uint8_t, 10, 1 > nitrousMaximumAfr
lua_gauge_meaning_e nitrousLuaGaugeMeaning
nitrous_arming_method_e nitrousControlArmingMethod
float nitrousLuaGaugeArmingValue
int8_t nitrousFuelAdderPercent
lua_gauge_e nitrousLuaGauge
uint16_t nitrousDeactivationRpmWindow
bool isNitrousMapCondition
bool isNitrousAfrCondition
bool isNitrousRpmCondition
bool isNitrousCltCondition
bool isNitrousTpsCondition
bool isNitrousSpeedCondition