diff --git a/selfdrive/test/process_replay/migration.py b/selfdrive/test/process_replay/migration.py index d531b3b7e..f09820fdf 100644 --- a/selfdrive/test/process_replay/migration.py +++ b/selfdrive/test/process_replay/migration.py @@ -1,7 +1,8 @@ from collections import defaultdict from collections.abc import Callable -import functools import capnp +import functools +import traceback from cereal import messaging, car, log from opendbc.car.fingerprints import MIGRATION @@ -424,13 +425,19 @@ def migrate_sensorEvents(msgs): def migrate_onroadEvents(msgs): ops = [] for index, msg in msgs: + onroadEvents = [] + for event in msg.onroadEventsDEPRECATED: + try: + if not str(event.name).endswith('DEPRECATED'): + # dict converts name enum into string representation + onroadEvents.append(log.OnroadEvent(**event.to_dict())) + except RuntimeError: # Member was null + traceback.print_exc() + new_msg = messaging.new_message('onroadEvents', len(msg.onroadEventsDEPRECATED)) new_msg.valid = msg.valid new_msg.logMonoTime = msg.logMonoTime - - # dict converts name enum into string representation - new_msg.onroadEvents = [log.OnroadEvent(**event.to_dict()) for event in msg.onroadEventsDEPRECATED if - not str(event.name).endswith('DEPRECATED')] + new_msg.onroadEvents = onroadEvents ops.append((index, new_msg.as_reader())) return ops, [], [] @@ -441,10 +448,16 @@ def migrate_driverMonitoringState(msgs): ops = [] for index, msg in msgs: msg = msg.as_builder() - # dict converts name enum into string representation - msg.driverMonitoringState.events = [log.OnroadEvent(**event.to_dict()) for event in - msg.driverMonitoringState.eventsDEPRECATED if - not str(event.name).endswith('DEPRECATED')] + 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() + + msg.driverMonitoringState.events = events ops.append((index, msg.as_reader())) return ops, [], []