migrate car state

pull/32380/head
Shane Smiskol 12 months ago
parent af247a8da4
commit 4ae86ca163
  1. 8
      selfdrive/car/card.py
  2. 6
      selfdrive/controls/controlsd.py
  3. 19
      selfdrive/test/process_replay/migration.py
  4. 12
      selfdrive/test/process_replay/process_replay.py

@ -96,10 +96,10 @@ class Car:
def set_initial_state(self): def set_initial_state(self):
if REPLAY: if REPLAY:
controls_state = self.params.get("ReplayCarState") car_state = self.params.get("ReplayCarState")
if controls_state is not None: if car_state is not None:
with log.ControlsState.from_bytes(controls_state) as controls_state: with log.CarState.from_bytes(car_state) as car_state:
self.v_cruise_helper.v_cruise_kph = controls_state.vCruise self.v_cruise_helper.v_cruise_kph = car_state.vCruise
def state_update(self) -> car.CarState: def state_update(self) -> car.CarState:
"""carState update loop, driven by can""" """carState update loop, driven by can"""

@ -167,12 +167,6 @@ class Controls:
def set_initial_state(self): def set_initial_state(self):
if REPLAY: 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']): if any(ps.controlsAllowed for ps in self.sm['pandaStates']):
self.state = State.enabled self.state = State.enabled

@ -14,6 +14,7 @@ def migrate_all(lr, old_logtime=False, manager_states=False, panda_states=False,
msgs = migrate_carParams(msgs, old_logtime) msgs = migrate_carParams(msgs, old_logtime)
msgs = migrate_gpsLocation(msgs) msgs = migrate_gpsLocation(msgs)
msgs = migrate_deviceState(msgs) msgs = migrate_deviceState(msgs)
msgs = migrate_carState(msgs)
if manager_states: if manager_states:
msgs = migrate_managerState(msgs) msgs = migrate_managerState(msgs)
if panda_states: if panda_states:
@ -69,6 +70,24 @@ def migrate_deviceState(lr):
return all_msgs 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): def migrate_pandaStates(lr):
all_msgs = [] all_msgs = []
# TODO: safety param migration should be handled automatically # TODO: safety param migration should be handled automatically

@ -440,18 +440,18 @@ class FrequencyBasedRcvCallback:
def controlsd_config_callback(params, cfg, lr): def controlsd_config_callback(params, cfg, lr):
controlsState = None carState = None
initialized = False initialized = False
for msg in lr: for msg in lr:
if msg.which() == "controlsState": if msg.which() == "carState":
controlsState = msg.controlsState carState = msg.carState
if initialized: if initialized:
break break
elif msg.which() == "onroadEvents": elif msg.which() == "onroadEvents":
initialized = car.CarEvent.EventName.controlsInitializing not in [e.name for e in msg.onroadEvents] initialized = car.CarEvent.EventName.controlsInitializing not in [e.name for e in msg.onroadEvents]
assert controlsState is not None and initialized, "controlsState never initialized" assert carState is not None and initialized, "carState never initialized"
params.put("ReplayControlsState", controlsState.as_builder().to_bytes()) params.put("ReplayCarState", carState.as_builder().to_bytes())
def locationd_config_pubsub_callback(params, cfg, lr): def locationd_config_pubsub_callback(params, cfg, lr):
@ -472,7 +472,7 @@ CONFIGS = [
], ],
subs=["controlsState", "carControl", "onroadEvents"], subs=["controlsState", "carControl", "onroadEvents"],
ignore=["logMonoTime", "controlsState.startMonoTime", "controlsState.cumLagMs"], ignore=["logMonoTime", "controlsState.startMonoTime", "controlsState.cumLagMs"],
config_callback=controlsd_config_callback, # config_callback=controlsd_config_callback,
init_callback=get_car_params_callback, init_callback=get_car_params_callback,
should_recv_callback=controlsd_rcv_callback, should_recv_callback=controlsd_rcv_callback,
tolerance=NUMPY_TOLERANCE, tolerance=NUMPY_TOLERANCE,

Loading…
Cancel
Save