DM: no reset on steer if distracted (#26567)

* only for attentive fast resets

* oops wheeltouch

* update test
old-commit-hash: 553da4ef30b709d754fb89b5519ce182a9ace3e2
This commit is contained in:
ZwX1616
2022-11-30 13:00:36 -08:00
committed by GitHub
parent 4f1ff1d253
commit cd3a3235e7
2 changed files with 15 additions and 8 deletions
+10 -5
View File
@@ -156,6 +156,11 @@ class DriverStatus():
self._set_timers(active_monitoring=True)
def _reset_awareness(self):
self.awareness = 1.
self.awareness_active = 1.
self.awareness_passive = 1.
def _set_timers(self, active_monitoring):
if self.active_monitoring_mode and self.awareness <= self.threshold_prompt:
if active_monitoring:
@@ -289,17 +294,17 @@ class DriverStatus():
self.hi_stds = 0
def update_events(self, events, driver_engaged, ctrl_active, standstill):
if (driver_engaged and self.awareness > 0) or not ctrl_active:
# reset only when on disengagement if red reached
self.awareness = 1.
self.awareness_active = 1.
self.awareness_passive = 1.
if (driver_engaged and self.awareness > 0 and not self.active_monitoring_mode) or not ctrl_active: # reset only when on disengagement if red reached
self._reset_awareness()
return
driver_attentive = self.driver_distraction_filter.x < 0.37
awareness_prev = self.awareness
if (driver_attentive and self.face_detected and self.pose.low_std and self.awareness > 0):
if driver_engaged:
self._reset_awareness()
return
# only restore awareness when paying attention and alert is not red
self.awareness = min(self.awareness + ((self.settings._RECOVERY_FACTOR_MAX-self.settings._RECOVERY_FACTOR_MIN)*(1.-self.awareness)+self.settings._RECOVERY_FACTOR_MIN)*self.step_change, 1.)
if self.awareness == 1.: