nopenpilot/tools/lib
Adeeb Shihadeh 7d7c0ff35f
tools: add bootlog helpers (#23504)
* tools: add bootlog helpers

* this is nice

* types
2022-01-12 21:37:43 -08:00
..
tests Fix test relying on SAFETY.md being in the root 2021-09-14 16:02:36 -07:00
vidindex Add pre-commit hooks (#1629) 2020-06-03 12:54:49 -07:00
README.md Sphinx docs generation (#22697) 2021-10-28 15:14:37 +02:00
__init__.py merge in tools 2020-01-17 10:07:22 -08:00
api.py tools: make auth optional for public routes (#22386) 2021-09-30 20:13:46 +02:00
auth.py Pyupgrade 3.6: Update syntax with Python 3.6+ features (#23305) 2021-12-24 11:18:39 -08:00
auth_config.py tools: make auth optional for public routes (#22386) 2021-09-30 20:13:46 +02:00
bootlog.py tools: add bootlog helpers (#23504) 2022-01-12 21:37:43 -08:00
cache.py Less open file permissions (#21922) 2021-08-28 18:25:05 -07:00
exceptions.py merge in tools 2020-01-17 10:07:22 -08:00
filereader.py FrameIterator that uses 1+ GB less RAM (#21687) 2021-07-22 12:08:56 -07:00
framereader.py Pyupgrade 3.6: Update syntax with Python 3.6+ features (#23305) 2021-12-24 11:18:39 -08:00
helpers.py tools: add bootlog helpers (#23504) 2022-01-12 21:37:43 -08:00
kbhit.py Add type hints, small cleanups (#21080) 2021-06-03 12:21:04 +02:00
logreader.py MultiLogIterator: fix after adding sort_by_time 2022-01-02 20:08:57 -08:00
robust_logreader.py LogReader: add arg to sort by time (#23346) 2022-01-02 11:56:53 -08:00
route.py tools: add bootlog helpers (#23504) 2022-01-12 21:37:43 -08:00
url_file.py Pyupgrade 3.6: Update syntax with Python 3.6+ features (#23305) 2021-12-24 11:18:39 -08:00

README.md

LogReader

Route is a class for conviently accessing all the logs from your routes. The LogReader class reads the non-video logs, i.e. rlog.bz2 and qlog.bz2. There's also a matching FrameReader class for reading the videos.

from tools.lib.route import Route
from tools.lib.logreader import LogReader

r = Route("4cf7a6ad03080c90|2021-09-29--13-46-36")

# get a list of paths for the route's rlog files
print(r.log_paths())

# and road camera (fcamera.hevc) files
print(r.camera_paths())

# setup a LogReader to read the route's first rlog
lr = LogReader(r.log_paths()[0])

# print out all the messages in the log
import codecs
codecs.register_error("strict", codecs.backslashreplace_errors)
for msg in lr:
  print(msg)

# setup a LogReader for the route's second qlog
lr = LogReader(r.log_paths()[1])

# print all the steering angles values from the log
for msg in lr:
  if msg.which() == "carState":
    print(msg.carState.steeringAngleDeg)