Speed up juggle.py loading

pull/34684/head
Shane Smiskol 2 months ago
parent 6723106bf5
commit 87fc6d177b
  1. 17
      tools/plotjuggler/juggle.py

@ -12,6 +12,7 @@ from functools import partial
from opendbc.car.fingerprints import MIGRATION from opendbc.car.fingerprints import MIGRATION
from openpilot.common.basedir import BASEDIR from openpilot.common.basedir import BASEDIR
from openpilot.common.swaglog import cloudlog
from openpilot.tools.lib.logreader import LogReader, ReadMode, save_log from openpilot.tools.lib.logreader import LogReader, ReadMode, save_log
from openpilot.selfdrive.test.process_replay.migration import migrate_all from openpilot.selfdrive.test.process_replay.migration import migrate_all
@ -78,22 +79,22 @@ def process(can, lr):
def juggle_route(route_or_segment_name, can, layout, dbc, should_migrate): def juggle_route(route_or_segment_name, can, layout, dbc, should_migrate):
sr = LogReader(route_or_segment_name, default_mode=ReadMode.AUTO_INTERACTIVE) lr = LogReader(route_or_segment_name, default_mode=ReadMode.AUTO_INTERACTIVE)
all_data = sr.run_across_segments(24, partial(process, can)) all_data = list(lr)
if not can:
all_data = [d for d in all_data if d.which() not in ('can', 'sendcan')]
if should_migrate: if should_migrate:
all_data = migrate_all(all_data) all_data = migrate_all(all_data)
# Infer DBC name from logs # Infer DBC name from logs
if dbc is None: if dbc is None:
for cp in [m for m in all_data if m.which() == 'carParams']:
try: try:
DBC = __import__(f"opendbc.car.{cp.carParams.brand}.values", fromlist=['DBC']).DBC CP = lr.first('carParams')
fingerprint = cp.carParams.carFingerprint DBC = __import__(f"opendbc.car.{CP.brand}.values", fromlist=['DBC']).DBC
dbc = DBC[MIGRATION.get(fingerprint, fingerprint)]['pt'] dbc = DBC[MIGRATION.get(CP.carFingerprint, CP.carFingerprint)]['pt']
except Exception: except Exception:
pass cloudlog.error("Failed to get DBC name from logs!")
break
with tempfile.NamedTemporaryFile(suffix='.rlog', dir=juggle_dir) as tmp: with tempfile.NamedTemporaryFile(suffix='.rlog', dir=juggle_dir) as tmp:
save_log(tmp.name, all_data, compress=False) save_log(tmp.name, all_data, compress=False)

Loading…
Cancel
Save