diff --git a/selfdrive/test/process_replay/process_replay.py b/selfdrive/test/process_replay/process_replay.py index 4978525f4f..d7b922863a 100755 --- a/selfdrive/test/process_replay/process_replay.py +++ b/selfdrive/test/process_replay/process_replay.py @@ -350,6 +350,7 @@ def setup_env(simulation=False): params.put_bool("Passive", False) params.put_bool("DisengageOnAccelerator", True) params.put_bool("EnableWideCamera", False) + params.put_bool("DisableLogging", False) os.environ["NO_RADAR_SLEEP"] = "1" os.environ["REPLAY"] = "1" diff --git a/selfdrive/test/process_replay/regen.py b/selfdrive/test/process_replay/regen.py index d9e80ca335..9ec03f46bd 100755 --- a/selfdrive/test/process_replay/regen.py +++ b/selfdrive/test/process_replay/regen.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import bz2 import os import time import multiprocessing @@ -8,6 +9,7 @@ import argparse os.environ["USE_WEBCAM"] = "1" import cereal.messaging as messaging +from cereal import car from cereal.services import service_list from cereal.visionipc.visionipc_pyx import VisionIpcServer, VisionStreamType # pylint: disable=no-name-in-module, import-error from common.params import Params @@ -227,7 +229,7 @@ def regen_segment(lr, frs=None, outdir=FAKEDATA): # start procs up ignore = list(fake_daemons.keys()) + ['ui', 'manage_athenad', 'uploader'] - ensure_running(managed_processes.values(), started=True, not_run=ignore) + ensure_running(managed_processes.values(), started=True, params=Params(), CP=car.CarParams(), not_run=ignore) for procs in fake_daemons.values(): for p in procs: p.start() @@ -264,11 +266,18 @@ def regen_and_save(route, sidx, upload=False, use_route_meta=False): lr = LogReader(r.log_paths()[args.seg]) fr = FrameReader(r.camera_paths()[args.seg]) else: - lr = LogReader(f"cd:/{route.replace('|', '/')}/{sidx}/rlog") + lr = LogReader(f"cd:/{route.replace('|', '/')}/{sidx}/rlog.bz2") fr = FrameReader(f"cd:/{route.replace('|', '/')}/{sidx}/fcamera.hevc") rpath = regen_segment(lr, {'roadCameraState': fr}) - lr = LogReader(os.path.join(rpath, 'rlog2')) + # compress raw rlog before uploading + with open(os.path.join(rpath, "rlog"), "rb") as f: + data = bz2.compress(f.read()) + with open(os.path.join(rpath, "rlog.bz2"), "wb") as f: + f.write(data) + os.remove(os.path.join(rpath, "rlog")) + + lr = LogReader(os.path.join(rpath, 'rlog.bz2')) controls_state_active = [m.controlsState.active for m in lr if m.which() == 'controlsState'] assert any(controls_state_active), "Segment did not engage"