From 4f35b842d26b5fd45275192bbfe78cddaacf9260 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Wed, 1 Feb 2023 06:39:47 -0500 Subject: [PATCH] MADS: better brake state handling - part 2 --- selfdrive/car/interfaces.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 217e23b433..6c1e99c401 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -401,7 +401,8 @@ class CarInterfaceBase(ABC): return cs_out, CS def create_sp_events(self, CS, cs_out, events, main_enabled=False, allow_enable=True, enable_pressed=False, - enable_from_brake=False, enable_buttons=(ButtonType.accelCruise, ButtonType.decelCruise)): + enable_non_longitudinal=False, enable_pressed_mads=False, enable_from_brake=False, + enable_buttons=(ButtonType.accelCruise, ButtonType.decelCruise)): CS.disengageByBrake = CS.disengageByBrake or cs_out.disengageByBrake @@ -409,6 +410,9 @@ class CarInterfaceBase(ABC): enable_pressed = True enable_from_brake = True + if CS.disengageByBrake and cs_out.madsEnabled: + enable_non_longitudinal = True + if not cs_out.brakePressed and not cs_out.brakeHoldActive and not cs_out.parkingBrake: CS.disengageByBrake = False cs_out.disengageByBrake = False @@ -435,6 +439,7 @@ class CarInterfaceBase(ABC): else: # enabled MADS if not cs_out.cruiseState.enabled: enable_pressed = True + enable_pressed_mads = True if self.CP.pcmCruise: # do disable on button down if main_enabled: @@ -449,12 +454,12 @@ class CarInterfaceBase(ABC): events.add(EventName.buttonCancel) elif not self.enable_mads: cs_out.madsEnabled = False - if enable_pressed: - if enable_from_brake: + if enable_pressed or enable_non_longitudinal: + if enable_from_brake or enable_non_longitudinal: events.add(EventName.silentButtonEnable) else: events.add(EventName.buttonEnable) - if CS.disengageByBrake: + if CS.disengageByBrake and not enable_pressed_mads: events.add(EventName.cruiseEngageBlocked) if cs_out.cruiseState.enabled: