IQ.Pilot Release Commit @ f82ff4d
This commit is contained in:
@@ -54,6 +54,8 @@ EventName = log.OnroadEvent.EventName
|
||||
ButtonType = car.CarState.ButtonEvent.Type
|
||||
SafetyModel = car.CarParams.SafetyModel
|
||||
TurnDirection = custom.IQTurnSignalDirection
|
||||
AlertLevel = log.DriverMonitoringState.AlertLevel
|
||||
MonitoringPolicy = log.DriverMonitoringState.MonitoringPolicy
|
||||
|
||||
IGNORED_SAFETY_MODES = (SafetyModel.silent, SafetyModel.noOutput)
|
||||
|
||||
@@ -147,6 +149,7 @@ class SelfdriveD(GapButtonActions):
|
||||
self.events_prev = []
|
||||
self.logged_comm_issue = None
|
||||
self.not_running_prev = None
|
||||
self.dm_lockout_set = False
|
||||
self.experimental_mode = False
|
||||
self.personality = get_sanitize_int_param(
|
||||
"LongitudinalPersonality",
|
||||
@@ -183,7 +186,6 @@ class SelfdriveD(GapButtonActions):
|
||||
|
||||
self.events_iq = IQEvents()
|
||||
self.events_iq_prev = []
|
||||
self._cached_dm_event_names: tuple[int, ...] = ()
|
||||
self._cached_plan_event_names: tuple[int, ...] = ()
|
||||
self._cached_model_event_names: tuple[int, ...] = ()
|
||||
self._cached_nav_event_names: tuple[int, ...] = ()
|
||||
@@ -205,10 +207,6 @@ class SelfdriveD(GapButtonActions):
|
||||
if self.sm.updated['iqPlan']:
|
||||
self._cached_plan_event_names = tuple(event.name.raw for event in self._get_longitudinal_plan_ext().events)
|
||||
|
||||
def _refresh_cached_dm_events(self) -> None:
|
||||
if self.sm.updated['driverMonitoringState']:
|
||||
self._cached_dm_event_names = tuple(event.name.raw for event in self.sm['driverMonitoringState'].events)
|
||||
|
||||
def _refresh_cached_model_events(self) -> None:
|
||||
if not self.sm.updated['iqDriveModelData']:
|
||||
return
|
||||
@@ -297,8 +295,24 @@ class SelfdriveD(GapButtonActions):
|
||||
self.events.add(EventName.resumeBlocked)
|
||||
|
||||
if not self.CP.notCar:
|
||||
self._refresh_cached_dm_events()
|
||||
self._add_event_names(self._cached_dm_event_names)
|
||||
if self.sm['driverMonitoringState'].lockout and not self.dm_lockout_set:
|
||||
self.params.put_bool("DriverTooDistracted", True)
|
||||
self.dm_lockout_set = True
|
||||
elif not self.sm['driverMonitoringState'].lockout and self.dm_lockout_set:
|
||||
self.params.remove("DriverTooDistracted")
|
||||
self.dm_lockout_set = False
|
||||
|
||||
if self.sm['driverMonitoringState'].lockout or self.sm['driverMonitoringState'].alwaysOnLockout:
|
||||
self.events.add(EventName.tooDistracted)
|
||||
|
||||
vision_dm = self.sm['driverMonitoringState'].activePolicy == MonitoringPolicy.vision
|
||||
if self.sm['driverMonitoringState'].alertLevel == AlertLevel.one:
|
||||
self.events.add(EventName.driverDistracted1 if vision_dm else EventName.driverUnresponsive1)
|
||||
elif self.sm['driverMonitoringState'].alertLevel == AlertLevel.two:
|
||||
self.events.add(EventName.driverDistracted2 if vision_dm else EventName.driverUnresponsive2)
|
||||
elif self.sm['driverMonitoringState'].alertLevel == AlertLevel.three:
|
||||
self.events.add(EventName.driverDistracted3 if vision_dm else EventName.driverUnresponsive3)
|
||||
|
||||
self._refresh_cached_plan_events()
|
||||
self._add_iq_event_names(self._cached_plan_event_names)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user