parent
04a26ada69
commit
98d61982f9
1 changed files with 67 additions and 0 deletions
@ -0,0 +1,67 @@ |
||||
# JotPluggler |
||||
|
||||
JotPluggler is a tool to quickly visualize openpilot logs. |
||||
|
||||
## Usage |
||||
|
||||
``` |
||||
$ ./jotpluggler/pluggle.py -h |
||||
usage: pluggle.py [-h] [--demo] [--layout LAYOUT] [route] |
||||
|
||||
A tool for visualizing openpilot logs. |
||||
|
||||
positional arguments: |
||||
route Optional route name to load on startup. |
||||
|
||||
options: |
||||
-h, --help show this help message and exit |
||||
--demo Use the demo route instead of providing one |
||||
--layout LAYOUT Path to YAML layout file to load on startup |
||||
``` |
||||
|
||||
Example using route name: |
||||
|
||||
`./pluggle.py "a2a0ccea32023010/2023-07-27--13-01-19"` |
||||
|
||||
Examples using segment: |
||||
|
||||
`./pluggle.py "a2a0ccea32023010/2023-07-27--13-01-19/1"` |
||||
|
||||
`./pluggle.py "a2a0ccea32023010/2023-07-27--13-01-19/1/q" # use qlogs` |
||||
|
||||
Example using segment range: |
||||
|
||||
`./pluggle.py "a2a0ccea32023010/2023-07-27--13-01-19/0:1"` |
||||
|
||||
## Demo |
||||
|
||||
For a quick demo, run this command: |
||||
|
||||
`./pluggle.py --demo --layout=layouts/torque-controller.yaml` |
||||
|
||||
|
||||
## Basic Usage/Features: |
||||
- The text box to load a route is a the top left of the page, accepts standard openpilot format routes (e.g. `a2a0ccea32023010/2023-07-27--13-01-19/0:1`, `https://connect.comma.ai/a2a0ccea32023010/2023-07-27--13-01-19/`) |
||||
- The Play/Pause button is at the bottom of the screen, you can drag the bottom slider to seek. The timeline in timeseries plots are synced with the slider. |
||||
- The Timeseries List sidebar has several dropdowns, the fields each show the field name and value, synced with the timeline (will show N/A until the time of the first message in that field is reached). |
||||
- There is a search bar for the timeseries list, you can search for structs or fields, or both by separating with a "/" |
||||
- You can drag and drop any numeric/boolean field from the timeseries list into a timeseries panel. |
||||
- You can create more panels with the split buttons (buttons with two rectangles, either horizontal or vertical). You can resize the panels by dragging the grip in between any panel. |
||||
- You can load and save layouts with the corresponding buttons. Layouts will save all tabs, panels, titles, timeseries, etc. |
||||
|
||||
## Layouts |
||||
|
||||
If you create a layout that's useful for others, consider upstreaming it. |
||||
|
||||
## Plot Interaction Controls |
||||
|
||||
- **Left click and drag within the plot area** to pan X |
||||
- Left click and drag on an axis to pan an individual axis (disabled for Y-axis) |
||||
- **Scroll in the plot area** to zoom in X axes, Y-axis is autofit |
||||
- Scroll on an axis to zoom an individual axis |
||||
- **Right click and drag** to select data and zoom into the selected data |
||||
- Left click while box selecting to cancel the selection |
||||
- **Double left click** to fit all visible data |
||||
- Double left click on an axis to fit the individual axis (disabled for Y-axis, always autofit) |
||||
- **Double right click** to open the plot context menu |
||||
- **Click legend label icons** to show/hide plot items |
Loading…
Reference in new issue