|
|
|
@ -64,6 +64,7 @@ class CarInterfaceBase(ABC): |
|
|
|
|
self.frame = 0 |
|
|
|
|
self.steering_unpressed = 0 |
|
|
|
|
self.low_speed_alert = False |
|
|
|
|
self.no_steer_warning = False |
|
|
|
|
self.silent_steer_warning = True |
|
|
|
|
self.v_ego_cluster_seen = False |
|
|
|
|
|
|
|
|
@ -278,13 +279,19 @@ class CarInterfaceBase(ABC): |
|
|
|
|
# Handle permanent and temporary steering faults |
|
|
|
|
self.steering_unpressed = 0 if cs_out.steeringPressed else self.steering_unpressed + 1 |
|
|
|
|
if cs_out.steerFaultTemporary: |
|
|
|
|
# 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) |
|
|
|
|
if cs_out.steeringPressed and (not self.CS.out.steerFaultTemporary or self.no_steer_warning): |
|
|
|
|
self.no_steer_warning = True |
|
|
|
|
else: |
|
|
|
|
events.add(EventName.steerTempUnavailable) |
|
|
|
|
self.no_steer_warning = False |
|
|
|
|
|
|
|
|
|
# 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.no_steer_warning = False |
|
|
|
|
self.silent_steer_warning = False |
|
|
|
|
if cs_out.steerFaultPermanent: |
|
|
|
|
events.add(EventName.steerUnavailable) |
|
|
|
|