diff --git a/lib/systems/src/PedalsSystem.cpp b/lib/systems/src/PedalsSystem.cpp index 63faa83cb..701cd633c 100644 --- a/lib/systems/src/PedalsSystem.cpp +++ b/lib/systems/src/PedalsSystem.cpp @@ -28,6 +28,7 @@ PedalsSystemData_s PedalsSystem::evaluate_pedals(const AnalogConversion_s &accel out.accelPercent = ((accel1.conversion + accel2.conversion) / 2.0); out.accelPercent = remove_deadzone_(out.accelPercent, accelParams_.deadzone_margin); out.accelPercent = std::max(out.accelPercent, 0.0f); + out.accelPressed = pedal_is_active_(accel1.conversion, accel2.conversion, accelParams_, false); out.accelImplausible = evaluate_pedal_implausibilities_(accel1, accel2, accelParams_, 0.1); out.brakeImplausible = evaluate_pedal_implausibilities_(brake, brakeParams_); out.brakeAndAccelPressedImplausibility = evaluate_brake_and_accel_pressed_(accel1, accel2, brake); @@ -49,7 +50,6 @@ PedalsSystemData_s PedalsSystem::evaluate_pedals(const AnalogConversion_s &accel out.mechBrakeActive = out.brakePercent >= brakeParams_.mechanical_activation_percentage; out.regenPercent = std::max(std::min(out.brakePercent / brakeParams_.mechanical_activation_percentage, 1.0f), 0.0f); - out.brakePressed = out.brakePercent > brakeParams_.activation_percentage; out.implausibilityExceededMaxDuration = max_duration_of_implausibility_exceeded_(curr_time); diff --git a/test/test_systems/pedals_system_test.h b/test/test_systems/pedals_system_test.h index e4dc8e54b..708175e70 100644 --- a/test/test_systems/pedals_system_test.h +++ b/test/test_systems/pedals_system_test.h @@ -450,5 +450,19 @@ TEST(PedalsSystemTesting, check_accel_never_negative_double) } +TEST(PedalsSystemTesting, check_accel_pressed) +{ + AnalogConversion_s test_pedal_good_val_accel = {1200, 0.2, AnalogSensorStatus_e::ANALOG_SENSOR_GOOD}; + AnalogConversion_s test_pedal_good_val_brake = {1001, 0.0, AnalogSensorStatus_e::ANALOG_SENSOR_GOOD}; + + auto params = gen_positive_slope_only_params(); + PedalsSystem pedals(params, params); + PedalsSystem pedals_single(params, params); + auto data_double = pedals.evaluate_pedals(test_pedal_good_val_accel, test_pedal_good_val_accel, test_pedal_good_val_brake, test_pedal_good_val_brake, 1300); + EXPECT_TRUE(data_double.accelPressed); + auto data_single = pedals_single.evaluate_pedals(test_pedal_good_val_accel, test_pedal_good_val_accel, test_pedal_good_val_brake, 1300); + EXPECT_TRUE(data_single.accelPressed); +} + #endif /* PEDALS_SYSTEM_TEST */