mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-12 12:52:13 +08:00
plotjuggler falling back to qlog (#20105)
* fallback to qlogs * minor fixes * removed extra line * help on no args * Update tools/plotjuggler/juggle.py Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> old-commit-hash: d4feecd8032567c0e331713a8af7caab35b6495c
This commit is contained in:
+26
-25
@@ -10,7 +10,6 @@ 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 tools.lib.url_file import URLFile
|
||||
|
||||
|
||||
def load_segment(segment_name):
|
||||
@@ -26,14 +25,26 @@ def juggle_file(fn):
|
||||
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):
|
||||
def juggle_route(route_name, segment_number):
|
||||
r = Route(route_name)
|
||||
all_data = []
|
||||
|
||||
logs = r.log_paths()
|
||||
if segment_number is not None:
|
||||
logs = logs[segment_number:segment_number+1]
|
||||
|
||||
if None in logs:
|
||||
fallback_answer = input("At least one of the rlogs in this segment does not exist, would you like to use the qlogs? (y/n) : ")
|
||||
if fallback_answer == 'y':
|
||||
logs = r.qlog_paths()
|
||||
if segment_number is not None:
|
||||
logs = logs[segment_number:segment_number+1]
|
||||
else:
|
||||
print(f"Please try a different {'segment' if segment_number is not None else 'route'}")
|
||||
return
|
||||
|
||||
all_data = []
|
||||
pool = multiprocessing.Pool(24)
|
||||
|
||||
all_data = []
|
||||
for d in pool.map(load_segment, r.log_paths()):
|
||||
for d in pool.map(load_segment, logs):
|
||||
all_data += d
|
||||
|
||||
tempfile = NamedTemporaryFile(suffix='.rlog')
|
||||
@@ -42,29 +53,19 @@ def juggle_route(route_name):
|
||||
|
||||
juggle_file(tempfile.name)
|
||||
|
||||
def juggle_segment(route_name, segment_nr):
|
||||
r = Route(route_name)
|
||||
lp = r.log_paths()[segment_nr]
|
||||
|
||||
if lp is None:
|
||||
print("This segment does not exist, please try a different one")
|
||||
return
|
||||
|
||||
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("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__":
|
||||
|
||||
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)
|
||||
|
||||
arg_parser = get_arg_parser()
|
||||
if len(sys.argv) == 1:
|
||||
arg_parser.print_help()
|
||||
sys.exit()
|
||||
args = arg_parser.parse_args(sys.argv[1:])
|
||||
juggle_route(args.route_name, args.segment_number)
|
||||
|
||||
Reference in New Issue
Block a user