diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 7a82306912..f74aaaca69 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -96,10 +96,10 @@ class Car: def set_initial_state(self): if REPLAY: - car_state = self.params.get("ReplayCarState") - if car_state is not None: - with log.CarState.from_bytes(car_state) as car_state: - self.v_cruise_helper.v_cruise_kph = car_state.vCruise + controls_state = self.params.get("ReplayCarState") + if controls_state is not None: + with log.ControlsState.from_bytes(controls_state) as controls_state: + self.v_cruise_helper.v_cruise_kph = controls_state.vCruise def state_update(self) -> car.CarState: """carState update loop, driven by can""" diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index ca5fbc1dd1..7e54db16f2 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -167,6 +167,12 @@ class Controls: def set_initial_state(self): if REPLAY: + # TODO: move this to card + # controls_state = self.params.get("ReplayControlsState") + # if controls_state is not None: + # with log.ControlsState.from_bytes(controls_state) as controls_state: + # self.card.v_cruise_helper.v_cruise_kph = controls_state.vCruise + if any(ps.controlsAllowed for ps in self.sm['pandaStates']): self.state = State.enabled diff --git a/selfdrive/test/process_replay/migration.py b/selfdrive/test/process_replay/migration.py index 19d983483d..152f281948 100644 --- a/selfdrive/test/process_replay/migration.py +++ b/selfdrive/test/process_replay/migration.py @@ -14,7 +14,6 @@ def migrate_all(lr, old_logtime=False, manager_states=False, panda_states=False, msgs = migrate_carParams(msgs, old_logtime) msgs = migrate_gpsLocation(msgs) msgs = migrate_deviceState(msgs) - msgs = migrate_carState(msgs) if manager_states: msgs = migrate_managerState(msgs) if panda_states: @@ -70,24 +69,6 @@ def migrate_deviceState(lr): return all_msgs -def migrate_carState(lr): - all_msgs = [] - vCruise = None - vCruiseCluster = None - for msg in lr: - if msg.which() == 'controlsState': - vCruise = msg.controlsState.vCruise - vCruiseCluster = msg.controlsState.vCruiseCluster - elif msg.which() == 'carState': - cs = msg.as_builder() - cs.carState.vCruise = vCruise - cs.carState.vCruiseCluster = vCruiseCluster - all_msgs.append(cs.as_reader()) - else: - all_msgs.append(msg) - return all_msgs - - def migrate_pandaStates(lr): all_msgs = [] # TODO: safety param migration should be handled automatically diff --git a/selfdrive/test/process_replay/process_replay.py b/selfdrive/test/process_replay/process_replay.py index 06df2d3433..71869020b0 100755 --- a/selfdrive/test/process_replay/process_replay.py +++ b/selfdrive/test/process_replay/process_replay.py @@ -440,18 +440,18 @@ class FrequencyBasedRcvCallback: def controlsd_config_callback(params, cfg, lr): - carState = None + controlsState = None initialized = False for msg in lr: - if msg.which() == "carState": - carState = msg.carState + if msg.which() == "controlsState": + controlsState = msg.controlsState if initialized: break elif msg.which() == "onroadEvents": initialized = car.CarEvent.EventName.controlsInitializing not in [e.name for e in msg.onroadEvents] - assert carState is not None and initialized, "carState never initialized" - params.put("ReplayCarState", carState.as_builder().to_bytes()) + assert controlsState is not None and initialized, "controlsState never initialized" + params.put("ReplayControlsState", controlsState.as_builder().to_bytes()) def locationd_config_pubsub_callback(params, cfg, lr): @@ -472,7 +472,7 @@ CONFIGS = [ ], subs=["controlsState", "carControl", "onroadEvents"], ignore=["logMonoTime", "controlsState.startMonoTime", "controlsState.cumLagMs"], - # config_callback=controlsd_config_callback, + config_callback=controlsd_config_callback, init_callback=get_car_params_callback, should_recv_callback=controlsd_rcv_callback, tolerance=NUMPY_TOLERANCE,