From e362198880779cf75819c4ff65b46d9474d9ee82 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Mon, 4 Sep 2023 19:28:25 -0400 Subject: [PATCH] MADS: allow Disengage on Accelerator (#243) * MADS: allow Disengage on Accelerator * make sure to disable in interfaces --- selfdrive/car/interfaces.py | 5 +++-- selfdrive/controls/controlsd.py | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 8c74c721007164..e9ffaadae50213 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -390,13 +390,14 @@ def get_sp_v_cruise_non_pcm_state(self, cs_out, acc_enabled, button_events, vCru return acc_enabled, button_events def get_sp_cancel_cruise_state(self, mads_enabled, acc_enabled=False): - mads_enabled = False if not self.enable_mads else mads_enabled + mads_enabled = False if not self.enable_mads or self.disengage_on_accelerator else mads_enabled return mads_enabled, acc_enabled def get_sp_pedal_disengage(self, cs_out): + accel_pedal = cs_out.gasPressed and not self.CS.out.gasPressed and self.disengage_on_accelerator brake = cs_out.brakePressed and (not self.CS.out.brakePressed or not cs_out.standstill) regen = cs_out.regenBraking and (not self.CS.out.regenBraking or not cs_out.standstill) - return brake or regen + return accel_pedal or brake or regen def get_sp_cruise_main_state(self, cs_out, CS): if not CS.control_initialized: diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index ccd5c5786952d7..74add0ae4a08d5 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -116,9 +116,6 @@ def __init__(self, sm=None, pm=None, can_sock=None, CI=None): self.mads_disengage_lateral_on_brake = self.params.get_bool("DisengageLateralOnBrake") self.mads_dlob = self.enable_mads and self.mads_disengage_lateral_on_brake self.mads_ndlob = self.enable_mads and not self.mads_disengage_lateral_on_brake - if self.enable_mads and self.disengage_on_accelerator: - self.params.put_bool("DisengageOnAccelerator", False) - self.disengage_on_accelerator = False self.CP.alternativeExperience = 0 if not self.disengage_on_accelerator: self.CP.alternativeExperience |= ALTERNATIVE_EXPERIENCE.DISABLE_DISENGAGE_ON_GAS