From cac960cb548a44cd3f9f6ad711da2d5579319d3e Mon Sep 17 00:00:00 2001 From: grekiki <96022003+GregorKikelj@users.noreply.github.com> Date: Tue, 9 Aug 2022 00:10:31 +0200 Subject: [PATCH] plotjuggler: route name in window title (#25370) * Route titles * minimum version check * use tuples * minor clean up * use check_output * space * belongs here * add prompt * no f string * Update juggle.py Co-authored-by: Shane Smiskol Co-authored-by: Adeeb Shihadeh --- tools/plotjuggler/juggle.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tools/plotjuggler/juggle.py b/tools/plotjuggler/juggle.py index 6f1038ec0d..08d75ccebe 100755 --- a/tools/plotjuggler/juggle.py +++ b/tools/plotjuggler/juggle.py @@ -23,6 +23,7 @@ DEMO_ROUTE = "4cf7a6ad03080c90|2021-09-29--13-46-36" RELEASES_URL="https://github.com/commaai/PlotJuggler/releases/download/latest" INSTALL_DIR = os.path.join(juggle_dir, "bin") PLOTJUGGLER_BIN = os.path.join(juggle_dir, "bin/plotjuggler") +MINIMUM_PLOTJUGGLER_VERSION = (3, 5, 2) def install(): @@ -46,6 +47,12 @@ def install(): tar.extractall(path=INSTALL_DIR) +def get_plotjuggler_version(): + out = subprocess.check_output([PLOTJUGGLER_BIN, "-v"], encoding="utf-8").strip() + version = out.split(" ")[1] + return tuple(map(int, version.split("."))) + + def load_segment(segment_name): if segment_name is None: return [] @@ -57,7 +64,7 @@ def load_segment(segment_name): return [] -def start_juggler(fn=None, dbc=None, layout=None): +def start_juggler(fn=None, dbc=None, layout=None, route_or_segment_name=None): env = os.environ.copy() env["BASEDIR"] = BASEDIR env["PATH"] = f"{INSTALL_DIR}:{os.getenv('PATH', '')}" @@ -69,6 +76,8 @@ def start_juggler(fn=None, dbc=None, layout=None): extra_args += f" -d {fn}" if layout is not None: extra_args += f" -l {layout}" + if route_or_segment_name is not None: + extra_args += f" --window_title \"{route_or_segment_name}\"" cmd = f'{PLOTJUGGLER_BIN} --plugin_folders {INSTALL_DIR}{extra_args}' subprocess.call(cmd, shell=True, env=env, cwd=juggle_dir) @@ -129,7 +138,7 @@ def juggle_route(route_or_segment_name, segment_count, qlog, can, layout, dbc=No with tempfile.NamedTemporaryFile(suffix='.rlog', dir=juggle_dir) as tmp: save_log(tmp.name, all_data, compress=False) del all_data - start_juggler(tmp.name, dbc, layout) + start_juggler(tmp.name, dbc, layout, route_or_segment_name) if __name__ == "__main__": @@ -159,6 +168,10 @@ if __name__ == "__main__": if not os.path.exists(PLOTJUGGLER_BIN): print("PlotJuggler is missing. Downloading...") install() + + if get_plotjuggler_version() < MINIMUM_PLOTJUGGLER_VERSION: + ans = input("PlotJuggler is out of date. Installing update...") + install() if args.stream: start_juggler(layout=args.layout)