|
|
|
|
@@ -6,11 +6,11 @@ import functools
|
|
|
|
|
import traceback
|
|
|
|
|
|
|
|
|
|
from cereal import messaging, car, log
|
|
|
|
|
from opendbc.car.fingerprints import MIGRATION
|
|
|
|
|
from opendbc.car.toyota.values import EPS_SCALE, ToyotaSafetyFlags
|
|
|
|
|
from opendbc.car.ford.values import CAR as FORD, FordFlags, FordSafetyFlags
|
|
|
|
|
from opendbc.car.hyundai.values import HyundaiSafetyFlags
|
|
|
|
|
from opendbc.car.gm.values import GMSafetyFlags
|
|
|
|
|
from iqdbc.car.fingerprints import MIGRATION
|
|
|
|
|
from iqdbc.car.toyota.values import EPS_SCALE, ToyotaSafetyFlags
|
|
|
|
|
from iqdbc.car.ford.values import CAR as FORD, FordFlags, FordSafetyFlags
|
|
|
|
|
from iqdbc.car.hyundai.values import HyundaiSafetyFlags
|
|
|
|
|
from iqdbc.car.gm.values import GMSafetyFlags
|
|
|
|
|
from openpilot.selfdrive.modeld.constants import ModelConstants
|
|
|
|
|
from openpilot.selfdrive.modeld.fill_model_msg import fill_xyz_poly, fill_lane_line_meta
|
|
|
|
|
from openpilot.selfdrive.test.process_replay.vision_meta import meta_from_encode_index
|
|
|
|
|
@@ -455,21 +455,46 @@ def migrate_onroadEvents(msgs):
|
|
|
|
|
return ops, [], []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@migration(inputs=["driverMonitoringState"])
|
|
|
|
|
@migration(inputs=["driverMonitoringStateDEPRECATED"])
|
|
|
|
|
def migrate_driverMonitoringState(msgs):
|
|
|
|
|
ops = []
|
|
|
|
|
for index, msg in msgs:
|
|
|
|
|
msg = msg.as_builder()
|
|
|
|
|
events = []
|
|
|
|
|
for event in msg.driverMonitoringState.eventsDEPRECATED:
|
|
|
|
|
try:
|
|
|
|
|
if not str(event.name).endswith('DEPRECATED'):
|
|
|
|
|
# dict converts name enum into string representation
|
|
|
|
|
events.append(log.OnroadEvent(**event.to_dict()))
|
|
|
|
|
except RuntimeError: # Member was null
|
|
|
|
|
traceback.print_exc()
|
|
|
|
|
old = msg.driverMonitoringStateDEPRECATED
|
|
|
|
|
new_msg = messaging.new_message('driverMonitoringState', valid=msg.valid, logMonoTime=msg.logMonoTime)
|
|
|
|
|
dm = new_msg.driverMonitoringState
|
|
|
|
|
dm.isRHD = old.isRHD
|
|
|
|
|
dm.activePolicy = log.DriverMonitoringState.MonitoringPolicy.vision if old.isActiveMode else \
|
|
|
|
|
log.DriverMonitoringState.MonitoringPolicy.wheeltouch
|
|
|
|
|
|
|
|
|
|
msg.driverMonitoringState.events = events
|
|
|
|
|
ops.append((index, msg.as_reader()))
|
|
|
|
|
AlertLevel = log.DriverMonitoringState.AlertLevel
|
|
|
|
|
event_to_alert_level = {
|
|
|
|
|
'driverDistracted1': AlertLevel.one, 'driverUnresponsive1': AlertLevel.one,
|
|
|
|
|
'driverDistracted2': AlertLevel.two, 'driverUnresponsive2': AlertLevel.two,
|
|
|
|
|
'driverDistracted3': AlertLevel.three, 'driverUnresponsive3': AlertLevel.three,
|
|
|
|
|
}
|
|
|
|
|
for event in old.events:
|
|
|
|
|
level = event_to_alert_level.get(str(event.name))
|
|
|
|
|
if level is not None:
|
|
|
|
|
dm.alertLevel = level
|
|
|
|
|
break
|
|
|
|
|
dm.lockout = any(str(event.name) == 'tooDistracted' for event in old.events)
|
|
|
|
|
|
|
|
|
|
dm.visionPolicyState.awarenessPercent = int(max(0, min(100, (old.awarenessStatus if old.isActiveMode else old.awarenessActive) * 100)))
|
|
|
|
|
dm.visionPolicyState.awarenessStep = old.stepChange if old.isActiveMode else 0.
|
|
|
|
|
dm.visionPolicyState.isDistracted = old.isDistracted
|
|
|
|
|
dm.visionPolicyState.distractedTypes.pose = bool(old.distractedType & 1)
|
|
|
|
|
dm.visionPolicyState.distractedTypes.eye = bool(old.distractedType & 2)
|
|
|
|
|
dm.visionPolicyState.distractedTypes.phone = bool(old.distractedType & 4)
|
|
|
|
|
dm.visionPolicyState.faceDetected = old.faceDetected
|
|
|
|
|
dm.visionPolicyState.pose.pitchCalib.offset = old.posePitchOffset
|
|
|
|
|
dm.visionPolicyState.pose.pitchCalib.calibratedPercent = int(min(100, old.posePitchValidCount / 1200 * 100))
|
|
|
|
|
dm.visionPolicyState.pose.yawCalib.offset = old.poseYawOffset
|
|
|
|
|
dm.visionPolicyState.pose.yawCalib.calibratedPercent = int(min(100, old.poseYawValidCount / 1200 * 100))
|
|
|
|
|
dm.visionPolicyState.pose.calibrated = old.posePitchValidCount >= 1200 and old.poseYawValidCount >= 1200
|
|
|
|
|
dm.visionPolicyState.wheeltouchFallbackPercent = int(min(100, old.hiStdCount / 200 * 100))
|
|
|
|
|
dm.visionPolicyState.uncertainOffroadAlertPercent = int(min(100, old.uncertainCount / 1200 * 100))
|
|
|
|
|
dm.wheeltouchPolicyState.awarenessPercent = int(max(0, min(100, (old.awarenessPassive if old.isActiveMode else old.awarenessStatus) * 100)))
|
|
|
|
|
dm.wheeltouchPolicyState.awarenessStep = 0. if old.isActiveMode else old.stepChange
|
|
|
|
|
ops.append((index, new_msg.as_reader()))
|
|
|
|
|
|
|
|
|
|
return ops, [], []
|
|
|
|
|
|