From f5a382ce03e5a9eabff5ac6731017c06b415bd37 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Fri, 29 Oct 2021 23:20:59 -0700 Subject: [PATCH] better alerts for temporary EPS faults (#22747) * better alerts for temporary EPS faults * reorder old-commit-hash: b76ccaac375712ee3ff215721db26009986d2f6d --- selfdrive/car/interfaces.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 6e148b96a2..51f1ca6903 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -30,9 +30,9 @@ class CarInterfaceBase(): self.VM = VehicleModel(CP) self.frame = 0 - self.steer_warning = 0 self.steering_unpressed = 0 self.low_speed_alert = False + self.silent_steer_warning = True if CarState is not None: self.CS = CarState(CP) @@ -136,20 +136,20 @@ class CarInterfaceBase(): if cs_out.cruiseState.nonAdaptive: events.add(EventName.wrongCruiseMode) - self.steer_warning = self.steer_warning + 1 if cs_out.steerWarning else 0 - self.steering_unpressed = 0 if cs_out.steeringPressed else self.steering_unpressed + 1 # Handle permanent and temporary steering faults + self.steering_unpressed = 0 if cs_out.steeringPressed else self.steering_unpressed + 1 + if cs_out.steerWarning: + # if the user overrode recently, show a less harsh alert + if self.silent_steer_warning or cs_out.standstill or self.steering_unpressed < int(1.5 / DT_CTRL): + self.silent_steer_warning = True + events.add(EventName.steerTempUnavailableSilent) + else: + events.add(EventName.steerTempUnavailable) + else: + self.silent_steer_warning = False if cs_out.steerError: events.add(EventName.steerUnavailable) - elif cs_out.steerWarning: - # only escalate to the harsher alert after the condition has - # persisted for 0.5s and we're certain that the user isn't overriding - if not cs_out.standstill and self.steering_unpressed > int(0.5 / DT_CTRL) and \ - self.steer_warning > int(0.5 / DT_CTRL): - events.add(EventName.steerTempUnavailable) - else: - events.add(EventName.steerTempUnavailableSilent) # 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.