|
|
@ -8,7 +8,7 @@ import threading |
|
|
|
os.environ['FILEREADER_CACHE'] = '1' |
|
|
|
os.environ['FILEREADER_CACHE'] = '1' |
|
|
|
|
|
|
|
|
|
|
|
from openpilot.common.realtime import config_realtime_process, Ratekeeper, DT_CTRL |
|
|
|
from openpilot.common.realtime import config_realtime_process, Ratekeeper, DT_CTRL |
|
|
|
from openpilot.selfdrive.pandad import can_capnp_to_can_list |
|
|
|
from openpilot.selfdrive.pandad import can_capnp_to_list |
|
|
|
from openpilot.tools.lib.logreader import LogReader |
|
|
|
from openpilot.tools.lib.logreader import LogReader |
|
|
|
from panda import PandaJungle |
|
|
|
from panda import PandaJungle |
|
|
|
|
|
|
|
|
|
|
@ -80,17 +80,15 @@ def connect(): |
|
|
|
|
|
|
|
|
|
|
|
time.sleep(1) |
|
|
|
time.sleep(1) |
|
|
|
|
|
|
|
|
|
|
|
def process(lr): |
|
|
|
|
|
|
|
return [can_capnp_to_can_list(m.can) for m in lr if m.which() == 'can'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def load_route(route_or_segment_name): |
|
|
|
def load_route(route_or_segment_name): |
|
|
|
print("Loading log...") |
|
|
|
print("Loading log...") |
|
|
|
sr = LogReader(route_or_segment_name) |
|
|
|
lr = LogReader(route_or_segment_name) |
|
|
|
CP = sr.first("carParams") |
|
|
|
CP = lr.first("carParams") |
|
|
|
print(f"carFingerprint (for hardcoding fingerprint): '{CP.carFingerprint}'") |
|
|
|
print(f"carFingerprint: '{CP.carFingerprint}'") |
|
|
|
CAN_MSGS = sr.run_across_segments(24, process) |
|
|
|
mbytes = [m.as_builder().to_bytes() for m in lr if m.which() == 'can'] |
|
|
|
print("Finished loading...") |
|
|
|
return [m[1] for m in can_capnp_to_list(mbytes)] |
|
|
|
return CAN_MSGS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
if __name__ == "__main__": |
|
|
|
parser = argparse.ArgumentParser(description="Replay CAN messages from a route to all connected pandas and jungles in a loop.", |
|
|
|
parser = argparse.ArgumentParser(description="Replay CAN messages from a route to all connected pandas and jungles in a loop.", |
|
|
|