From ccd2838745f824ba44c52c5e89ca82a0356b9efa Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 12 Oct 2020 23:01:22 -0400 Subject: [PATCH] Allow disabling of disengage-on-gas enforcement --- selfdrive/boardd/boardd.cc | 3 ++- selfdrive/car/interfaces.py | 6 +++++- selfdrive/manager.py | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index 1033c0825..530a4c20c 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -109,7 +109,8 @@ void safety_setter_thread() { cereal::CarParams::Reader car_params = cmsg.getRoot(); cereal::CarParams::SafetyModel safety_model = car_params.getSafetyModel(); - panda->set_unsafe_mode(0); // see safety_declarations.h for allowed values + LOGW("setting unsafe mode: disable enforcement of disengage on gas"); + panda->set_unsafe_mode(1); // see safety_declarations.h for allowed values auto safety_param = car_params.getSafetyParam(); LOGW("setting safety model: %d with param %d", (int)safety_model, safety_param); diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index f7078ed23..502cc087b 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -2,6 +2,7 @@ import os import time from cereal import car from common.kalman.simple_kalman import KF1D +from common.params import Params from common.realtime import DT_CTRL from selfdrive.car import gen_empty_fingerprint from selfdrive.config import Conversions as CV @@ -33,6 +34,9 @@ class CarInterfaceBase(): if CarController is not None: self.CC = CarController(self.cp.dbc_name, CP, self.VM) + params = Params() + self.is_disengage_on_gas_enabled = params.get("IsDisengageOnGasEnabled", encoding='utf8') == "1" + @staticmethod def calc_accel_override(a_ego, a_target, v_ego, v_target): return 1. @@ -119,7 +123,7 @@ class CarInterfaceBase(): # Disable on rising edge of gas or brake. Also disable on brake when speed > 0. # Optionally allow to press gas at zero speed to resume. # e.g. Chrysler does not spam the resume button yet, so resuming with gas is handy. FIXME! - if (cs_out.gasPressed and (not self.CS.out.gasPressed) and cs_out.vEgo > gas_resume_speed) or \ + if (cs_out.gasPressed and (not self.is_disengage_on_gas_enabled) and (not self.CS.out.gasPressed) and cs_out.vEgo > gas_resume_speed) or \ (cs_out.brakePressed and (not self.CS.out.brakePressed or not cs_out.standstill)): events.add(EventName.pedalPressed) diff --git a/selfdrive/manager.py b/selfdrive/manager.py index 1775c6388..a6cd99946 100755 --- a/selfdrive/manager.py +++ b/selfdrive/manager.py @@ -561,6 +561,7 @@ def main(): ("OpenpilotEnabledToggle", "1"), ("LaneChangeEnabled", "1"), ("IsDriverViewEnabled", "0"), + ("IsDisengageOnGasEnabled", "1"), ] # set unset params