From 9f5b5e67fd7000e4db81b45052115b5c79b43450 Mon Sep 17 00:00:00 2001 From: Gregor Kikelj Date: Tue, 29 Sep 2020 16:03:06 +0200 Subject: [PATCH] Ok got 10% cleaning done --- selfdrive/locationd/ubloxd_main.cc | 6 -- selfdrive/test/replay_learning.py | 94 ++++++------------------------ 2 files changed, 18 insertions(+), 82 deletions(-) diff --git a/selfdrive/locationd/ubloxd_main.cc b/selfdrive/locationd/ubloxd_main.cc index 12229e4846..686b58a6b8 100644 --- a/selfdrive/locationd/ubloxd_main.cc +++ b/selfdrive/locationd/ubloxd_main.cc @@ -30,7 +30,6 @@ void set_do_exit(int sig) { using namespace ublox; int ubloxd_main(poll_ubloxraw_msg_func poll_func, send_gps_event_func send_func) { - // std::cout<<"Runnning ublox_main"<setTimeout(100); PubMaster pm({"ubloxGnss", "gpsLocationExternal"}); - int t=0; while (!do_exit) { - std::cout<<"Got to here on round "<receive(); - std::cout<getData()<((msg->getSize() / sizeof(capnp::word)) + 1); memcpy(amsg.begin(), msg->getData(), msg->getSize()); - std::cout<<"Message is :"<(); auto ubloxRaw = event.getUbloxRaw(); diff --git a/selfdrive/test/replay_learning.py b/selfdrive/test/replay_learning.py index 3372591c14..a508bf1993 100644 --- a/selfdrive/test/replay_learning.py +++ b/selfdrive/test/replay_learning.py @@ -1,5 +1,4 @@ import os -import sys import threading import time @@ -15,15 +14,6 @@ from tools.lib.logreader import LogReader ProcessConfig = namedtuple('ProcessConfig', ['proc_name', 'pub_sub', 'ignore', 'command', 'path']) -def wait_for_event(evt): - if not evt.wait(20): - if threading.currentThread().getName() == "MainThread": - # tested process likely died. don't let test just hang - raise Exception("Timeout reached. Tested process likely crashed.") - else: - # done testing this process, let it die - sys.exit(0) - class SimplePubMaster(): def __init__(self, services): # pylint: disable=super-init-not-called self.sock = {} @@ -35,55 +25,6 @@ class SimplePubMaster(): self.sock[s].send(dat.to_bytes()) -def fingerprint(msgs, fsm, can_sock): - print("start fingerprinting") - fsm.wait_on_getitem = True - - # populate fake socket with data for fingerprinting - canmsgs = [msg for msg in msgs if msg.which() == "can"] - wait_for_event(can_sock.recv_called) - can_sock.recv_called.clear() - can_sock.data = [msg.as_builder().to_bytes() for msg in canmsgs[:300]] - can_sock.recv_ready.set() - can_sock.wait = False - - # we know fingerprinting is done when controlsd sets sm['pathPlan'].sensorValid - wait_for_event(fsm.update_called) - fsm.update_called.clear() - - fsm.wait_on_getitem = False - can_sock.wait = True - can_sock.data = [] - - fsm.update_ready.set() - print("finished fingerprinting") - -def radar_rcv_callback(msg, CP, cfg, fsm): - if msg.which() != "can": - return [], False - elif CP.radarOffCan: - return ["radarState", "liveTracks"], True - - radar_msgs = {"honda": [0x445], "toyota": [0x19f, 0x22f], "gm": [0x474], - "chrysler": [0x2d4]}.get(CP.carName, None) - - if radar_msgs is None: - raise NotImplementedError - - for m in msg.can: - if m.src == 1 and m.address in radar_msgs: - return ["radarState", "liveTracks"], True - return [], False - -def calibration_rcv_callback(msg, CP, cfg, fsm): - # calibrationd publishes 1 calibrationData every 5 cameraOdometry packets. - # should_recv always true to increment frame - recv_socks = [] - frame = fsm.frame + 1 # incrementing hasn't happened yet in SubMaster - if frame == 0 or (msg.which() == 'cameraOdometry' and (frame % 5) == 0): - recv_socks = ["liveCalibration"] - return recv_socks, fsm.frame == 0 or msg.which() == 'cameraOdometry' - CONFIGS = [ ProcessConfig( proc_name="ubloxd", @@ -91,18 +32,9 @@ CONFIGS = [ "ubloxRaw": ["ubloxGnss", "gpsLocationExternal"], }, ignore=[], - command="./ubloxd & sleep 10; kill $!", + command="./ubloxd & sleep 20; kill $!", path="../locationd", ), - ProcessConfig( - proc_name="loggerd", - pub_sub={ - "ubloxRaw": ["ubloxGnss", "gpsLocationExternal"], - }, - ignore=[], - command="./loggerd & sleep 10; kill $!", - path="../loggerd", - ), ] def valgrindlauncher(arg, cwd): @@ -125,23 +57,33 @@ def replay_process(cfg, lr): print("Sorting logs") all_msgs = sorted(lr, key=lambda msg: msg.logMonoTime) pub_msgs = [msg for msg in all_msgs if msg.which() in list(cfg.pub_sub.keys())] - + print(len(pub_msgs)) thread = threading.Thread(target=valgrindlauncher, args=(cfg.command, cfg.path)) thread.daemon = True thread.start() - time.sleep(10) # We give the process time to start + time.sleep(5) # We give the process time to start for msg in tqdm(pub_msgs): pm.send(msg.which(), msg.as_builder()) - # for s in pub_sockets: - # pm.send(s, b"") +BASE_URL = "https://commadataci.blob.core.windows.net/openpilotci/" + +def get_segment(segment_name, original=True): + route_name, segment_num = segment_name.rsplit("--", 1) + if original: + rlog_url = BASE_URL + "%s/%s/rlog.bz2" % (route_name.replace("|", "/"), segment_num) + else: + process_replay_dir = os.path.dirname(os.path.abspath(__file__)) + model_ref_commit = open(os.path.join(process_replay_dir, "model_ref_commit")).read().strip() + rlog_url = BASE_URL + "%s/%s/rlog_%s.bz2" % (route_name.replace("|", "/"), segment_num, model_ref_commit) + + return rlog_url -URL = "https://commadata2.blob.core.windows.net/commadata2/a74b011b32b51b56/2020-09-21--10-29-15\ -/0/rlog.bz2?se=2020-09-29T13%3A13%3A40Z&sp=r&sv=2018-03-28&sr=b&rscd=attachment%3B%20filename%3Da74b011b32b51b56_2020-09-21--10-29-15--0--rlog.bz2&sig=iPiuSfthiYo3xL3tDKoKwr8kQH7odHW%2BqGcCqmnY2EY%3D" if __name__ == "__main__": cfg = CONFIGS[0] + URL = get_segment("0375fdf7b1ce594d|2019-06-13--08-32-25--3") + print(URL) lr = LogReader(URL) print(str(cfg)) replay_process(cfg, lr) - time.sleep(15) + time.sleep(30)