|
|
|
@ -1,16 +1,18 @@ |
|
|
|
|
#!/usr/bin/env python3 |
|
|
|
|
|
|
|
|
|
import os |
|
|
|
|
import sys |
|
|
|
|
import multiprocessing |
|
|
|
|
import subprocess |
|
|
|
|
import argparse |
|
|
|
|
from tempfile import NamedTemporaryFile |
|
|
|
|
|
|
|
|
|
from common.basedir import BASEDIR |
|
|
|
|
from selfdrive.test.process_replay.compare_logs import save_log |
|
|
|
|
from tools.lib.route import Route |
|
|
|
|
from tools.lib.logreader import LogReader |
|
|
|
|
from selfdrive.test.process_replay.compare_logs import save_log |
|
|
|
|
from tools.lib.url_file import URLFile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def load_segment(segment_name): |
|
|
|
|
print(f"Loading {segment_name}") |
|
|
|
|
lr = LogReader(segment_name) |
|
|
|
@ -19,8 +21,10 @@ def load_segment(segment_name): |
|
|
|
|
return r |
|
|
|
|
|
|
|
|
|
def juggle_file(fn): |
|
|
|
|
subprocess.call(f"bin/plotjuggler -d {fn}", shell=True) |
|
|
|
|
# subprocess.call(f"/home/batman/PlotJuggler/build/bin/plotjuggler -d {fn}", shell=True) |
|
|
|
|
env = os.environ.copy() |
|
|
|
|
env["BASEDIR"] = BASEDIR |
|
|
|
|
juggle_dir = os.path.dirname(os.path.realpath(__file__)) |
|
|
|
|
subprocess.call(f"bin/plotjuggler -d {fn}", shell=True, env=env, cwd=juggle_dir) |
|
|
|
|
|
|
|
|
|
def juggle_route(route_name): |
|
|
|
|
r = Route(route_name) |
|
|
|
@ -49,9 +53,18 @@ def juggle_segment(route_name, segment_nr): |
|
|
|
|
uf = URLFile(lp) |
|
|
|
|
juggle_file(uf.name) |
|
|
|
|
|
|
|
|
|
def get_arg_parser(): |
|
|
|
|
parser = argparse.ArgumentParser(description="PlotJuggler plugin for reading rlogs", |
|
|
|
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter) |
|
|
|
|
|
|
|
|
|
parser.add_argument("route_name", nargs='?', help="The name of the route that will be plotted.") |
|
|
|
|
parser.add_argument("segment_number", type=int, nargs='?', help="The index of the segment that will be plotted") |
|
|
|
|
return parser |
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
if len(sys.argv) == 2: |
|
|
|
|
juggle_route(sys.argv[1]) |
|
|
|
|
elif len(sys.argv) == 3: |
|
|
|
|
juggle_segment(sys.argv[1], int(sys.argv[2])) |
|
|
|
|
|
|
|
|
|
args = get_arg_parser().parse_args(sys.argv[1:]) |
|
|
|
|
if args.segment_number is None: |
|
|
|
|
juggle_route(args.route_name) |
|
|
|
|
else: |
|
|
|
|
juggle_segment(args.route_name, args.segment_number) |
|
|
|
|