From a75abd788b9b3e6e15fec27a5fd71513e033ecb9 Mon Sep 17 00:00:00 2001 From: dragonpilot Date: Fri, 13 Sep 2019 11:51:58 +1000 Subject: [PATCH] Add ability to disable steering limit alert --- common/params.py | 1 + selfdrive/controls/controlsd.py | 11 +++++++---- selfdrive/dragonpilot/dragonconf/__init__.py | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/common/params.py b/common/params.py index 1c62d3dfa..6435ccf7f 100755 --- a/common/params.py +++ b/common/params.py @@ -120,6 +120,7 @@ keys = { "DragonUIVolumeBoost": [TxType.PERSISTENT], "DragonGreyPandaMode": [TxType.PERSISTENT], "DragonDrivingUI": [TxType.PERSISTENT], + "DragonDisplaySteeringLimitAlert": [TxType.PERSISTENT], } diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 11fabb21d..808a5309a 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -217,7 +217,7 @@ def state_transition(frame, CS, CP, state, events, soft_disable_timer, v_cruise_ def state_control(frame, rcv_frame, plan, path_plan, CS, CP, state, events, v_cruise_kph, v_cruise_kph_last, - AM, rk, driver_status, LaC, LoC, VM, read_only, is_metric, cal_perc, dragon_lat_control): + AM, rk, driver_status, LaC, LoC, VM, read_only, is_metric, cal_perc, dragon_lat_control, dragon_display_steering_limit_alert): """Given the state, this function returns an actuators packet""" actuators = car.CarControl.Actuators.new_message() @@ -267,8 +267,9 @@ def state_control(frame, rcv_frame, plan, path_plan, CS, CP, state, events, v_cr actuators.steer, actuators.steerAngle, lac_log = LaC.update(active, CS.vEgo, CS.steeringAngle, CS.steeringRate, CS.steeringTorqueEps, CS.steeringPressed, CP, VM, path_plan) # Send a "steering required alert" if saturation count has reached the limit - if dragon_lat_control and LaC.sat_flag and CP.steerLimitAlert: - AM.add(frame, "steerSaturated", enabled) + if dragon_display_steering_limit_alert: + if dragon_lat_control and LaC.sat_flag and CP.steerLimitAlert: + AM.add(frame, "steerSaturated", enabled) # Parse permanent warnings to display constantly for e in get_events(events, [ET.PERMANENT]): @@ -506,6 +507,7 @@ def controlsd_thread(sm=None, pm=None, can_sock=None): ts_last_check = 0. dragon_toyota_stock_dsu = False dragon_lat_control = True + dragon_display_steering_limit_alert = True while True: # dragonpilot, don't check for param too often as it's a kernel call @@ -513,6 +515,7 @@ def controlsd_thread(sm=None, pm=None, can_sock=None): if ts - ts_last_check > 3.: dragon_toyota_stock_dsu = False if params.get("DragonToyotaStockDSU") == "0" else True dragon_lat_control = False if params.get("DragonLatCtrl") == "0" else True + dragon_display_steering_limit_alert = False if params.get("DragonDisplaySteeringLimitAlert") == "0" else True ts_last_check = ts start_time = sec_since_boot() @@ -558,7 +561,7 @@ def controlsd_thread(sm=None, pm=None, can_sock=None): # Compute actuators (runs PID loops and lateral MPC) actuators, v_cruise_kph, driver_status, v_acc, a_acc, lac_log = \ state_control(sm.frame, sm.rcv_frame, sm['plan'], sm['pathPlan'], CS, CP, state, events, v_cruise_kph, v_cruise_kph_last, AM, rk, - driver_status, LaC, LoC, VM, read_only, is_metric, cal_perc, dragon_lat_control) + driver_status, LaC, LoC, VM, read_only, is_metric, cal_perc, dragon_lat_control, dragon_display_steering_limit_alert) prof.checkpoint("State Control") diff --git a/selfdrive/dragonpilot/dragonconf/__init__.py b/selfdrive/dragonpilot/dragonconf/__init__.py index 17866f5a2..83894333f 100644 --- a/selfdrive/dragonpilot/dragonconf/__init__.py +++ b/selfdrive/dragonpilot/dragonconf/__init__.py @@ -40,6 +40,7 @@ default_conf = { 'DragonUIVolumeBoost': '0', 'DragonGreyPandaMode': '0', 'DragonDrivingUI': '1', + 'DragonDisplaySteeringLimitAlert': '1', } deprecated_conf = {