From e5fee88a3d17122b477cefced84c4e732ae6ad54 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Fri, 22 May 2020 14:42:22 -0700 Subject: [PATCH] bump panda after hyundai checksum old-commit-hash: ea1b19256540289732257df35c683730e329cf98 --- panda | 2 +- selfdrive/test/test_panda_safety.py | 49 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100755 selfdrive/test/test_panda_safety.py diff --git a/panda b/panda index 5307bf7277..0657064594 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 5307bf7277c267075aa03799c8749a60463c8804 +Subproject commit 06570645941c33a5d83808606b0559e9943fd7b2 diff --git a/selfdrive/test/test_panda_safety.py b/selfdrive/test/test_panda_safety.py new file mode 100755 index 0000000000..67d08b914e --- /dev/null +++ b/selfdrive/test/test_panda_safety.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +import os +import sys +import bz2 +import struct +from panda import Panda +from panda.tests.safety_replay.replay_drive import replay_drive +from tools.lib.logreader import LogReader +from xx.chffr.lib.route import Route + +# get a complete canlog (sendcan and can) for a drive +def get_canlog(route): + if os.path.isfile(route + ".bz2"): + return + + r = Route(route) + log_msgs = [] + for i, segment in enumerate(r.log_paths()): + print("downloading segment %d/%d" % (i+1, len(r.log_paths()))) + log = LogReader(segment) + log_msgs.extend(filter(lambda msg: msg.which() in ('can', 'sendcan'), log)) + log_msgs.sort(key=lambda msg: msg.logMonoTime) + + dat = b"".join(m.as_builder().to_bytes() for m in log_msgs) + dat = bz2.compress(dat) + with open(route + ".bz2", "wb") as f: + f.write(dat) + + +def get_logreader(route): + try: + lr = LogReader(route + ".bz2") + except IOError: + print("downloading can log") + get_canlog(route) + lr = LogReader(route + ".bz2") + + return lr + +if __name__ == "__main__": + route = sys.argv[1] + mode = int(sys.argv[2]) + param = 0 if len(sys.argv) < 4 else int(sys.argv[3]) + + lr = get_logreader(route) + print("replaying drive %s with safety model %d and param %d" % (route, mode, param)) + + replay_drive(lr, mode, param)