set DBC_NAME env when juggling (#20139)

* set dbc env when juggling

* small cleanup
albatross
Willem Melching 2021-02-23 16:37:39 +01:00 committed by GitHub
parent 5add7f2539
commit 40ff66c518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 2 deletions

View File

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