From a93e788401efd659fc18af848dcf563e5c89ce33 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sun, 18 May 2025 10:14:03 -0400 Subject: [PATCH] Reapply "MADS: wrongCarMode alert only with selfdrive enable (#931)" (#933) * Revert "MADS: `wrongCarMode` alert only with selfdrive enable (#931)" This reverts commit 6d516a7704410b69a2707dfcb856eba5be519f81. * Reapply "MADS: `wrongCarMode` alert only with selfdrive enable (#931)" This reverts commit c9487597e4ae4aa10a7111d963c5933d472bc88e. * Reapply "MADS: `wrongCarMode` alert only with selfdrive enable (#931)" This reverts commit c9487597e4ae4aa10a7111d963c5933d472bc88e. --- sunnypilot/mads/mads.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/sunnypilot/mads/mads.py b/sunnypilot/mads/mads.py index 456be0188..e3ee7cd83 100644 --- a/sunnypilot/mads/mads.py +++ b/sunnypilot/mads/mads.py @@ -81,6 +81,13 @@ class ModularAssistiveDrivingSystem: return False + def get_wrong_car_mode(self, alert_only: bool) -> None: + if alert_only: + if self.events.has(EventName.wrongCarMode): + self.replace_event(EventName.wrongCarMode, EventNameSP.wrongCarModeAlertOnly) + else: + self.events.remove(EventName.wrongCarMode) + def transition_paused_state(self): if self.state_machine.state != State.paused: self.events_sp.add(EventNameSP.silentLkasDisable) @@ -121,6 +128,10 @@ class ModularAssistiveDrivingSystem: self.events.remove(EventName.manualRestart) selfdrive_enable_events = self.events.has(EventName.pcmEnable) or self.events.has(EventName.buttonEnable) + set_speed_btns_enable = any(be.type in SET_SPEED_BUTTONS for be in CS.buttonEvents) + + # wrongCarMode alert only or actively block control + self.get_wrong_car_mode(selfdrive_enable_events or set_speed_btns_enable) if selfdrive_enable_events: if self.pedal_pressed_non_gas_pressed(CS): @@ -160,11 +171,6 @@ class ModularAssistiveDrivingSystem: self.events.remove(EventName.buttonCancel) self.events.remove(EventName.pedalPressed) self.events.remove(EventName.wrongCruiseMode) - if any(be.type in SET_SPEED_BUTTONS for be in CS.buttonEvents): - if self.events.has(EventName.wrongCarMode): - self.replace_event(EventName.wrongCarMode, EventNameSP.wrongCarModeAlertOnly) - else: - self.events.remove(EventName.wrongCarMode) def update(self, CS: structs.CarState): if not self.enabled_toggle: