argparser for plotjuggler (#20103)
* argparse * import os * need rest of env * update readme * style fix Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>pull/20108/head
parent
3538e2060a
commit
4d46c521d1
|
@ -11,8 +11,20 @@ Once you've cloned openpilot, run this command inside this directory:
|
|||
|
||||
## Usage
|
||||
|
||||
`./juggle.py <route> <segment number>`
|
||||
```
|
||||
batman@z840-openpilot:~/openpilot/tools/plotjuggler$ ./juggle.py -h
|
||||
usage: juggle.py [-h] [route_name] [segment_number]
|
||||
|
||||
PlotJuggler plugin for reading rlogs
|
||||
|
||||
positional arguments:
|
||||
route_name The name of the route that will be plotted. (default: None)
|
||||
segment_number The index of the segment that will be plotted (default: None)
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
`./juggle.py "0982d79ebb0de295|2021-01-17--17-13-08" 0`
|
||||
`./juggle.py "0982d79ebb0de295|2021-01-17--17-13-08"`
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue