MADS: better brake state handling - part 2

This commit is contained in:
Jason Wen
2023-02-01 06:39:47 -05:00
parent 79ad1395c0
commit 4f35b842d2
+9 -4
View File
@@ -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: