Rename fields to enhance `nitrous_control_state` view #6783
This commit is contained in:
parent
c2581cc7a6
commit
7f73b9b1f6
|
@ -123,9 +123,7 @@ angle_t getRunningAdvance(float rpm, float engineLoad) {
|
|||
) {
|
||||
return engineConfiguration->torqueReductionIgnitionRetard;
|
||||
}
|
||||
if (engineConfiguration->nitrousControlEnabled
|
||||
&& engine->module<NitrousController>()->isNitrousConditionSatisfied
|
||||
) {
|
||||
if (engineConfiguration->nitrousControlEnabled && engine->module<NitrousController>()->isNitrousCondition) {
|
||||
advanceAngle -= engineConfiguration->nitrousIgnitionRetard;
|
||||
}
|
||||
#endif /* EFI_LAUNCH_CONTROL */
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
struct_no_prefix nitrous_control_state_s
|
||||
|
||||
bit isArmed
|
||||
bit isNitrousSpeedConditionSatisfied
|
||||
bit isTpsConditionSatisfied
|
||||
bit isCltConditionSatisfied
|
||||
bit isMapConditionSatisfied
|
||||
bit isAfrConditionSatisfied
|
||||
bit isNitrousRpmConditionSatisfied
|
||||
bit isNitrousConditionSatisfied
|
||||
bit isNitrousArmed
|
||||
bit isNitrousSpeedCondition
|
||||
bit isNitrousTpsCondition
|
||||
bit isNitrousCltCondition
|
||||
bit isNitrousMapCondition
|
||||
bit isNitrousAfrCondition
|
||||
bit isNitrousRpmCondition
|
||||
bit isNitrousCondition
|
||||
|
||||
end_struct
|
|
@ -16,19 +16,19 @@ void NitrousController::onSlowCallback() {
|
|||
updateMapConditionSatisfied();
|
||||
updateAfrConditionSatisfied();
|
||||
updateRpmConditionSatisfied();
|
||||
isNitrousConditionSatisfied = (
|
||||
isArmed && isTpsConditionSatisfied && isNitrousSpeedConditionSatisfied && isCltConditionSatisfied
|
||||
&& isMapConditionSatisfied && isAfrConditionSatisfied && isNitrousRpmConditionSatisfied
|
||||
isNitrousCondition = (
|
||||
isNitrousArmed && isNitrousSpeedCondition && isNitrousTpsCondition && isNitrousCltCondition
|
||||
&& isNitrousMapCondition && isNitrousAfrCondition && isNitrousRpmCondition
|
||||
);
|
||||
} else {
|
||||
isNitrousConditionSatisfied = false;
|
||||
isNitrousCondition = false;
|
||||
}
|
||||
enginePins.nitrousRelay.setValue(isNitrousConditionSatisfied);
|
||||
enginePins.nitrousRelay.setValue(isNitrousCondition);
|
||||
}
|
||||
|
||||
float NitrousController::getFuelCoefficient() const {
|
||||
float result = 1.0f;
|
||||
if (engineConfiguration->nitrousControlEnabled && isNitrousConditionSatisfied) {
|
||||
if (engineConfiguration->nitrousControlEnabled && isNitrousCondition) {
|
||||
result += engineConfiguration->nitrousFuelAdderPercent / 100.0f;
|
||||
}
|
||||
return result;
|
||||
|
@ -37,15 +37,15 @@ float NitrousController::getFuelCoefficient() const {
|
|||
void NitrousController::updateArmingState() {
|
||||
switch (engineConfiguration->nitrousControlArmingMethod) {
|
||||
case DIGITAL_SWITCH_INPUT: {
|
||||
isArmed = checkTriggerPinState();
|
||||
isNitrousArmed = checkTriggerPinState();
|
||||
break;
|
||||
}
|
||||
case LUA_GAUGE: {
|
||||
isArmed = checkLuaGauge();
|
||||
isNitrousArmed = checkLuaGauge();
|
||||
break;
|
||||
}
|
||||
default: { // Unexpected value!!!
|
||||
isArmed = false;
|
||||
isNitrousArmed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -54,37 +54,36 @@ void NitrousController::updateArmingState() {
|
|||
void NitrousController::updateSpeedConditionSatisfied() {
|
||||
if (engineConfiguration->nitrousMinimumVehicleSpeed != 0) {
|
||||
const expected<float> speed = Sensor::get(SensorType::VehicleSpeed);
|
||||
isNitrousSpeedConditionSatisfied =
|
||||
speed.Valid && (engineConfiguration->nitrousMinimumVehicleSpeed <= speed.Value);
|
||||
isNitrousSpeedCondition = speed.Valid && (engineConfiguration->nitrousMinimumVehicleSpeed <= speed.Value);
|
||||
} else {
|
||||
isNitrousSpeedConditionSatisfied = true;
|
||||
isNitrousSpeedCondition = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NitrousController::updateTpsConditionSatisfied() {
|
||||
if (engineConfiguration->nitrousMinimumTps != 0) {
|
||||
const expected<float> tps = Sensor::get(SensorType::DriverThrottleIntent);
|
||||
isTpsConditionSatisfied = tps.Valid && (engineConfiguration->nitrousMinimumTps <= tps.Value);
|
||||
isNitrousTpsCondition = tps.Valid && (engineConfiguration->nitrousMinimumTps <= tps.Value);
|
||||
} else {
|
||||
isTpsConditionSatisfied = true;
|
||||
isNitrousTpsCondition = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NitrousController::updateCltConditionSatisfied() {
|
||||
if (engineConfiguration->nitrousMinimumClt != 0) {
|
||||
const expected<float> clt = Sensor::get(SensorType::Clt);
|
||||
isCltConditionSatisfied = clt.Valid && (engineConfiguration->nitrousMinimumClt <= clt.Value);
|
||||
isNitrousCltCondition = clt.Valid && (engineConfiguration->nitrousMinimumClt <= clt.Value);
|
||||
} else {
|
||||
isCltConditionSatisfied = true;
|
||||
isNitrousCltCondition = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NitrousController::updateMapConditionSatisfied() {
|
||||
if (engineConfiguration->nitrousMaximumMap != 0) {
|
||||
const expected<float> map = Sensor::get(SensorType::Map);
|
||||
isMapConditionSatisfied = map.Valid && (map.Value <= engineConfiguration->nitrousMaximumMap);
|
||||
isNitrousMapCondition = map.Valid && (map.Value <= engineConfiguration->nitrousMaximumMap);
|
||||
} else {
|
||||
isMapConditionSatisfied = true;
|
||||
isNitrousMapCondition = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,12 +92,12 @@ void NitrousController::updateAfrConditionSatisfied() {
|
|||
const expected<float> lambda1 = Sensor::get(SensorType::Lambda1);
|
||||
if (lambda1.Valid) {
|
||||
const float afr = lambda1.Value * STOICH_RATIO;
|
||||
isAfrConditionSatisfied = (afr <= static_cast<float>(engineConfiguration->nitrousMaximumAfr));
|
||||
isNitrousAfrCondition = (afr <= static_cast<float>(engineConfiguration->nitrousMaximumAfr));
|
||||
} else {
|
||||
isAfrConditionSatisfied = false;
|
||||
isNitrousAfrCondition = false;
|
||||
}
|
||||
} else {
|
||||
isAfrConditionSatisfied = true;
|
||||
isNitrousAfrCondition = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -115,12 +114,12 @@ void NitrousController::updateRpmConditionSatisfied() {
|
|||
engineConfiguration->nitrousDeactivationRpm,
|
||||
engineConfiguration->nitrousDeactivationRpmWindow
|
||||
)) {
|
||||
isNitrousRpmConditionSatisfied = false;
|
||||
isNitrousRpmCondition = false;
|
||||
} else {
|
||||
isNitrousRpmConditionSatisfied = (engineConfiguration->nitrousActivationRpm <= rpm);
|
||||
isNitrousRpmCondition = (engineConfiguration->nitrousActivationRpm <= rpm);
|
||||
}
|
||||
} else {
|
||||
isNitrousRpmConditionSatisfied = false;
|
||||
isNitrousRpmCondition = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,43 +31,43 @@ void NitrousTestBase::armNitrousControl() {
|
|||
setMockState(TEST_NITROUS_CONTROL_ARMING_PIN, true);
|
||||
periodicSlowCallback();
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isArmed);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousArmed);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfySpeedCondition() {
|
||||
updateVehicleSpeed(TEST_MIN_VEHICLE_SPEED, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousSpeedConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousSpeedCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfyTpsCondition() {
|
||||
updateApp(TEST_MIN_TPS, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isTpsConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousTpsCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfyCltCondition() {
|
||||
updateClt(TEST_MIN_CLT, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isCltConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousCltCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfyMapCondition() {
|
||||
updateMap(TEST_MAX_MAP, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isMapConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousMapCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfyAfrCondition() {
|
||||
updateLambda1(TEST_LAMBDA1, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isAfrConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousAfrCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::satisfyRpmCondition() {
|
||||
updateRpm(TEST_ACTIVATION_RPM, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousRpmConditionSatisfied);
|
||||
EXPECT_TRUE(getModule<NitrousController>().isNitrousRpmCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::activateNitrousControl() {
|
||||
|
@ -84,43 +84,43 @@ void NitrousTestBase::unarmNitrousControl() {
|
|||
setMockState(TEST_NITROUS_CONTROL_ARMING_PIN, false);
|
||||
periodicSlowCallback();
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isArmed);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousArmed);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfySpeedCondition() {
|
||||
updateVehicleSpeed(TEST_MIN_VEHICLE_SPEED - EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousSpeedConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousSpeedCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfyTpsCondition() {
|
||||
updateApp(TEST_MIN_TPS - EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isTpsConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousTpsCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfyCltCondition() {
|
||||
updateClt(TEST_MIN_CLT - EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isCltConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousCltCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfyMapCondition() {
|
||||
updateMap(TEST_MAX_MAP + EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isMapConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousMapCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfyAfrCondition() {
|
||||
updateLambda1(TEST_LAMBDA1 + EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isAfrConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousAfrCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::unsatisfyRpmCondition() {
|
||||
updateRpm(TEST_ACTIVATION_RPM - EPS5D, &TestBase::periodicSlowCallback);
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousRpmConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousRpmCondition);
|
||||
}
|
||||
|
||||
void NitrousTestBase::deactivateNitrousControl() {
|
||||
|
@ -134,6 +134,6 @@ void NitrousTestBase::deactivateNitrousControl() {
|
|||
}
|
||||
|
||||
void NitrousTestBase::checkNitrousCondition(const bool expected, const char* const context) {
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousConditionSatisfied, expected) << context;
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousCondition, expected) << context;
|
||||
EXPECT_EQ(enginePins.nitrousRelay.getLogicValue(), expected) << context;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace {
|
|||
void NitrousAfrConditionTest::checkAfrCondition(const std::vector<AfrConditionTestData>& testData) {
|
||||
for (const AfrConditionTestData& item: testData) {
|
||||
updateLambda1(item.lambda1, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isAfrConditionSatisfied, item.expectedAfrCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousAfrCondition, item.expectedAfrCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace {
|
|||
void NitrousArmingTest::checkArmingAfterPeriodicFastCallback(const bool shouldBeArmed, const char* const context) {
|
||||
periodicSlowCallback();
|
||||
|
||||
EXPECT_EQ(getModule<NitrousController>().isArmed, shouldBeArmed) << context;
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousArmed, shouldBeArmed) << context;
|
||||
}
|
||||
|
||||
TEST_F(NitrousArmingTest, checkDefault) {
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace {
|
|||
void NitrousCltConditionTest::checkCltCondition(const std::vector<CltConditionTestData>& testData) {
|
||||
for (const CltConditionTestData& item: testData) {
|
||||
updateClt(item.clt, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isCltConditionSatisfied, item.expectedCltCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousCltCondition, item.expectedCltCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,13 +17,13 @@ namespace {
|
|||
|
||||
setUpTestConfiguration();
|
||||
|
||||
EXPECT_FALSE(getModule<NitrousController>().isArmed);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousSpeedConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isTpsConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isCltConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isMapConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isAfrConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousRpmConditionSatisfied);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousArmed);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousSpeedCondition);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousTpsCondition);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousCltCondition);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousMapCondition);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousAfrCondition);
|
||||
EXPECT_FALSE(getModule<NitrousController>().isNitrousRpmCondition);
|
||||
|
||||
checkNitrousCondition(false, "No conditions are satisfied");
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace {
|
|||
void NitrousMapConditionTest::checkMapCondition(const std::vector<MapConditionTestData>& testData) {
|
||||
for (const MapConditionTestData& item: testData) {
|
||||
updateMap(item.map, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isMapConditionSatisfied, item.expectedMapCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousMapCondition, item.expectedMapCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace {
|
|||
void NitrousRpmConditionTest::checkRpmCondition(const std::vector<RpmConditionTestData>& testData) {
|
||||
for (const RpmConditionTestData& item: testData) {
|
||||
updateRpm(item.rpm, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousRpmConditionSatisfied, item.expectedRpmCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousRpmCondition, item.expectedRpmCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace {
|
|||
void NitrousSpeedConditionTest::checkSpeedCondition(const std::vector<SpeedConditionTestData>& testData) {
|
||||
for (const SpeedConditionTestData& item: testData) {
|
||||
updateVehicleSpeed(item.speed, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousSpeedConditionSatisfied, item.expectedSpeedCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousSpeedCondition, item.expectedSpeedCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace {
|
|||
void NitrousTpsConditionTest::checkTpsCondition(const std::vector<TpsConditionTestData>& testData) {
|
||||
for (const TpsConditionTestData& item: testData) {
|
||||
updateApp(item.tps, &TestBase::periodicSlowCallback);
|
||||
EXPECT_EQ(getModule<NitrousController>().isTpsConditionSatisfied, item.expectedTpsCondition)
|
||||
EXPECT_EQ(getModule<NitrousController>().isNitrousTpsCondition, item.expectedTpsCondition)
|
||||
<< item.context;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue