dragonpilot - 基於 openpilot 的開源駕駛輔助系統
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Justin Newberry 88dcaa51c4
LogReader: no redownloading on multiple iterations (#31141)
1 year ago
..
tests LogReader: no redownloading on multiple iterations (#31141) 1 year ago
README.md rename segmentrangereader to logreader (#30981) 1 year ago
__init__.py merge in tools 5 years ago
api.py tools: make auth optional for public routes (#22386) 4 years ago
auth.py Linter: remove pylint (#29611) 2 years ago
auth_config.py replace common.file_helpers.mkdirs_exists_ok with python os.makedirs funtion (#30618) 1 year ago
azure_container.py prevent typing issue in azure_container (#31044) 1 year ago
bootlog.py add openpilot prefix to imports (#29498) 2 years ago
cache.py replace common.file_helpers.mkdirs_exists_ok with python os.makedirs funtion (#30618) 1 year ago
comma_car_segments.py CommaCarSegments: public database of segments for each platform (#31114) 1 year ago
exceptions.py merge in tools 5 years ago
filereader.py auto_source: optimize api calls and use head to determine if file exists (#31025) 1 year ago
framereader.py framereader: eliminate tempfile usage (#30289) 2 years ago
helpers.py plotjuggler: auto fallback to qlogs with prompt (#31110) 1 year ago
kbhit.py Precommit: ensure executable bit is set (#29784) 2 years ago
logreader.py LogReader: no redownloading on multiple iterations (#31141) 1 year ago
openpilotci.py cleanup azure handling (#31034) 1 year ago
openpilotcontainers.py cleanup azure handling (#31034) 1 year ago
route.py LogReader: don't use route for max_segment (#31129) 1 year ago
sanitizer.py sanitizer: sanitize vin number (#31090) 1 year ago
url_file.py LogReader: remove redirect message for internal data (#31088) 1 year ago
vidindex.py vidindex improvements (#30196) 2 years ago

README.md

LogReader

Route is a class for conveniently 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 openpilot.tools.lib.route import Route
from openpilot.tools.lib.logreader import LogReader

r = Route("a2a0ccea32023010|2023-07-27--13-01-19")

# 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)

Segment Ranges

We also support a new format called a "segment range", where you can specify which segments from a route to load.


lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/4")   # 4th segment
lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/4:6") # 4th and 5th segment
lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/-1")  # last segment
lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/:5")  # first 5 segments
lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/1:")  # all except first segment

and can select which type of logs to grab

lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/4/q") # get qlogs
lr = LogReader("a2a0ccea32023010|2023-07-27--13-01-19/4/r") # get rlogs (default)