refactoring: LaunchControlBase::isInsideRPMCondition method returns bool again

This commit is contained in:
kifir 2024-05-20 22:54:05 +03:00 committed by rusefillc
parent 61ac579754
commit 8a4f53214b
3 changed files with 25 additions and 16 deletions

View File

@ -73,22 +73,30 @@ bool LaunchControlBase::isInsideTpsCondition() const {
return engineConfiguration->launchTpsThreshold < tps.Value;
}
LaunchCondition LaunchControlBase::calculateRPMLaunchCondition(const int rpm) const {
const int launchRpm = engineConfiguration->launchRpm;
if (rpm < launchRpm) {
return LaunchCondition::NotMet;
} else {
return LaunchCondition::Launch;
}
}
/**
* Condition is true as soon as we are above LaunchRpm
*/
LaunchCondition LaunchControlBase::isInsideRPMCondition(int rpm) const {
int launchRpm = engineConfiguration->launchRpm;
return (launchRpm < rpm) ? LaunchCondition::Launch : LaunchCondition::NotMet;
bool LaunchControlBase::isInsideRPMCondition(const int rpm) const {
const LaunchCondition rpmLaunchCondition = calculateRPMLaunchCondition(rpm);
return rpmLaunchCondition == LaunchCondition::Launch;
}
LaunchCondition LaunchControlBase::isLaunchConditionMet(int rpm) {
LaunchCondition rpmLaunchCondition = isInsideRPMCondition(rpm);
bool LaunchControlBase::isLaunchConditionMet(const int rpm) {
activateSwitchCondition = isInsideSwitchCondition();
rpmCondition = (rpmLaunchCondition == LaunchCondition::Launch);
rpmCondition = isInsideRPMCondition(rpm);
speedCondition = isInsideSpeedCondition();
tpsCondition = isInsideTpsCondition();
return ((speedCondition && activateSwitchCondition && tpsCondition) == true) ? rpmLaunchCondition : LaunchCondition::NotMet;
return speedCondition && activateSwitchCondition && rpmCondition && tpsCondition;
}
LaunchControlBase::LaunchControlBase() {
@ -107,7 +115,7 @@ void LaunchControlBase::update() {
}
int rpm = Sensor::getOrZero(SensorType::Rpm);
combinedConditions = isLaunchConditionMet(rpm) == LaunchCondition::Launch;
combinedConditions = isLaunchConditionMet(rpm);
//and still recalculate in case user changed the values
retardThresholdRpm = engineConfiguration->launchRpm

View File

@ -27,8 +27,9 @@ public:
bool isInsideSpeedCondition() const;
bool isInsideTpsCondition() const;
bool isInsideSwitchCondition();
LaunchCondition isInsideRPMCondition(int rpm) const;
LaunchCondition isLaunchConditionMet(int rpm);
LaunchCondition calculateRPMLaunchCondition(int rpm) const;
bool isInsideRPMCondition(int rpm) const;
bool isLaunchConditionMet(int rpm);
bool isLaunchSparkRpmRetardCondition() const;
bool isLaunchFuelRpmRetardCondition() const;

View File

@ -78,9 +78,9 @@ TEST(LaunchControl, RPMCondition) {
engineConfiguration->launchRpm = 3000;
EXPECT_EQ(dut.isInsideRPMCondition(2900), LaunchCondition::NotMet);
EXPECT_EQ(dut.calculateRPMLaunchCondition(2900), LaunchCondition::NotMet);
EXPECT_EQ(dut.isInsideRPMCondition(3100), LaunchCondition::Launch);
EXPECT_EQ(dut.calculateRPMLaunchCondition(3100), LaunchCondition::Launch);
}
TEST(LaunchControl, SwitchInputCondition) {
@ -141,13 +141,13 @@ TEST(LaunchControl, CombinedCondition) {
Sensor::setMockValue(SensorType::VehicleSpeed, 10.0);
Sensor::setMockValue(SensorType::Rpm, 1200);
EXPECT_EQ(dut.isLaunchConditionMet(1200), LaunchCondition::NotMet);
EXPECT_FALSE(dut.isLaunchConditionMet(1200));
Sensor::setMockValue(SensorType::Rpm, 3200);
EXPECT_EQ(dut.isLaunchConditionMet(3200), LaunchCondition::Launch);
Sensor::setMockValue(SensorType::Rpm, 3200);
EXPECT_TRUE(dut.isLaunchConditionMet(3200));
Sensor::setMockValue(SensorType::VehicleSpeed, 40.0);
EXPECT_EQ(dut.isLaunchConditionMet(3200), LaunchCondition::NotMet);
EXPECT_FALSE(dut.isLaunchConditionMet(3200));
}