|
|
|
@ -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" |
|
|
|
|
|
|
|
|
|