diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 1af03065af..3a98883d6c 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -32,6 +32,7 @@ class CarInterfaceBase(ABC): self.steering_unpressed = 0 self.low_speed_alert = False self.silent_steer_warning = True + self.disengage_on_gas = params.get("DisengageOnGas", encoding='utf8') if CarState is not None: self.CS = CarState(CP) @@ -123,7 +124,7 @@ class CarInterfaceBase(ABC): events.add(EventName.wrongCarMode) if cs_out.espDisabled: events.add(EventName.espDisabled) - if cs_out.gasPressed: + if cs_out.gasPressed and self.disengage_on_gas: events.add(EventName.gasPressed) if cs_out.stockFcw: events.add(EventName.stockFcw) @@ -152,7 +153,7 @@ class CarInterfaceBase(ABC): events.add(EventName.steerUnavailable) # Disable on rising edge of gas or brake. Also disable on brake when speed > 0. - if (cs_out.gasPressed and not self.CS.out.gasPressed) or \ + if (self.disengage_on_gas and cs_out.gasPressed and not self.CS.out.gasPressed) or \ (cs_out.brakePressed and (not self.CS.out.brakePressed or not cs_out.standstill)): events.add(EventName.pedalPressed) diff --git a/selfdrive/common/params.cc b/selfdrive/common/params.cc index ef19f44914..e425fda816 100644 --- a/selfdrive/common/params.cc +++ b/selfdrive/common/params.cc @@ -99,6 +99,7 @@ std::unordered_map keys = { {"DisableRadar_Allow", PERSISTENT}, {"DisableRadar", PERSISTENT}, // WARNING: THIS DISABLES AEB {"DisableUpdates", PERSISTENT}, + {"DisengageOnGas", PERSISTENT}, {"DongleId", PERSISTENT}, {"DoReboot", CLEAR_ON_MANAGER_START}, {"DoShutdown", CLEAR_ON_MANAGER_START}, diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index 77fb9543d2..ba2ce91435 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -38,6 +38,7 @@ def manager_init() -> None: default_params: List[Tuple[str, Union[str, bytes]]] = [ ("CompletedTrainingVersion", "0"), + ("DisengageOnGas", "1"), ("HasAcceptedTerms", "0"), ("OpenpilotEnabledToggle", "1"), ] diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 8e89899957..1f284877c4 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -71,6 +71,12 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { "In this mode openpilot will ignore lanelines and just drive how it thinks a human would.", "../assets/offroad/icon_road.png", }, + { + "DisengageOnGas", + "Disengage openpilot On Gas Press", + "Disengage openpilot on gas pedal press.", + "../assets/offroad/icon_speed_limit.png", + }, #ifdef ENABLE_MAPS { "NavSettingTime24h",