From f121e56fcfbe0e246a5ddbd17580bb70a1af44ce Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 23 Feb 2021 16:37:39 +0100 Subject: [PATCH] set DBC_NAME env when juggling (#20139) * set dbc env when juggling * small cleanup old-commit-hash: 40ff66c518a5d87290783076c41e1cad475372e9 --- tools/plotjuggler/juggle.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/plotjuggler/juggle.py b/tools/plotjuggler/juggle.py index ecf66be2ce..fc03116bba 100755 --- a/tools/plotjuggler/juggle.py +++ b/tools/plotjuggler/juggle.py @@ -23,9 +23,13 @@ def load_segment(segment_name): print(f"Error parsing {segment_name}: {e}") return [] -def juggle_file(fn): +def juggle_file(fn, dbc=None): env = os.environ.copy() env["BASEDIR"] = BASEDIR + + if dbc: + env["DBC_NAME"] = dbc + juggle_dir = os.path.dirname(os.path.realpath(__file__)) subprocess.call(f"bin/plotjuggler -d {fn}", shell=True, env=env, cwd=juggle_dir) @@ -51,11 +55,21 @@ def juggle_route(route_name, segment_number, qlog): for d in pool.map(load_segment, logs): all_data += d + # Infer DBC name from logs + dbc = None + for cp in [m for m in all_data if m.which() == 'carParams']: + try: + DBC = __import__(f"selfdrive.car.{cp.carParams.carName}.values", fromlist=['DBC']).DBC + dbc = DBC[cp.carParams.carFingerprint]['pt'] + except (ImportError, KeyError): + pass + break + tempfile = NamedTemporaryFile(suffix='.rlog') save_log(tempfile.name, all_data, compress=False) del all_data - juggle_file(tempfile.name) + juggle_file(tempfile.name, dbc) def get_arg_parser(): parser = argparse.ArgumentParser(description="PlotJuggler plugin for reading rlogs",