Skip to content

Commit

Permalink
test_fuzzy actually uses fingerprint hardcoding
Browse files Browse the repository at this point in the history
fix
  • Loading branch information
sshane committed Jun 14, 2022
1 parent 7c52da2 commit 7fb6bc0
Showing 1 changed file with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions selfdrive/test/process_replay/process_replay.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from common.params import Params
from common.timeout import Timeout
from selfdrive.car.fingerprints import FW_VERSIONS
from selfdrive.car.car_helpers import get_car
from selfdrive.car.car_helpers import get_car, interfaces
from selfdrive.test.process_replay.helpers import OpenpilotPrefix
from selfdrive.manager.process import PythonProcess
from selfdrive.manager.process_config import managed_processes
Expand Down Expand Up @@ -153,7 +153,7 @@ def wait_for_msg(self):
return dat


def fingerprint(msgs, fsm, can_sock):
def fingerprint(msgs, fsm, can_sock, fingerprint):
print("start fingerprinting")
fsm.wait_on_getitem = True

Expand All @@ -176,14 +176,18 @@ def fingerprint(msgs, fsm, can_sock):
fsm.update_ready.set()


def get_car_params(msgs, fsm, can_sock):
can = FakeSocket(wait=False)
sendcan = FakeSocket(wait=False)
def get_car_params(msgs, fsm, can_sock, fingerprint):
if fingerprint:
CarInterface, _, _ = interfaces[fingerprint]
CP = CarInterface.get_params(fingerprint)
else:
can = FakeSocket(wait=False)
sendcan = FakeSocket(wait=False)

canmsgs = [msg for msg in msgs if msg.which() == 'can']
for m in canmsgs[:300]:
can.send(m.as_builder().to_bytes())
_, CP = get_car(can, sendcan)
canmsgs = [msg for msg in msgs if msg.which() == 'can']
for m in canmsgs[:300]:
can.send(m.as_builder().to_bytes())
_, CP = get_car(can, sendcan)
Params().put("CarParams", CP.to_bytes())

def controlsd_rcv_callback(msg, CP, cfg, fsm):
Expand Down Expand Up @@ -336,12 +340,12 @@ def ublox_rcv_callback(msg):
]


def replay_process(cfg, lr):
def replay_process(cfg, lr, fingerprint=None):
with OpenpilotPrefix():
if cfg.fake_pubsubmaster:
return python_replay_process(cfg, lr)
return python_replay_process(cfg, lr, fingerprint)
else:
return cpp_replay_process(cfg, lr)
return cpp_replay_process(cfg, lr, fingerprint)

def setup_env(simulation=False, CP=None):
params = Params()
Expand Down Expand Up @@ -370,7 +374,7 @@ def setup_env(simulation=False, CP=None):
os.environ['SKIP_FW_QUERY'] = "1"
os.environ['FINGERPRINT'] = CP.carFingerprint

def python_replay_process(cfg, lr):
def python_replay_process(cfg, lr, fingerprint=None):
sub_sockets = [s for _, sub in cfg.pub_sub.items() for s in sub]
pub_sockets = [s for s in cfg.pub_sub.keys() if s != 'can']

Expand All @@ -384,8 +388,13 @@ def python_replay_process(cfg, lr):
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())]

CP = [m for m in lr if m.which() == 'carParams'][0].carParams
setup_env(CP=CP)
if fingerprint is not None:
os.environ['SKIP_FW_QUERY'] = "1"
os.environ['FINGERPRINT'] = fingerprint
setup_env()
else:
CP = [m for m in lr if m.which() == 'carParams'][0].carParams
setup_env(CP=CP)

assert(type(managed_processes[cfg.proc_name]) is PythonProcess)
managed_processes[cfg.proc_name].prepare()
Expand All @@ -398,7 +407,7 @@ def python_replay_process(cfg, lr):
if cfg.init_callback is not None:
if 'can' not in list(cfg.pub_sub.keys()):
can_sock = None
cfg.init_callback(all_msgs, fsm, can_sock)
cfg.init_callback(all_msgs, fsm, can_sock, fingerprint)

CP = car.CarParams.from_bytes(Params().get("CarParams", block=True))

Expand Down Expand Up @@ -437,7 +446,7 @@ def python_replay_process(cfg, lr):
return log_msgs


def cpp_replay_process(cfg, lr):
def cpp_replay_process(cfg, lr, fingerprint=None):
sub_sockets = [s for _, sub in cfg.pub_sub.items() for s in sub] # We get responses here
pm = messaging.PubMaster(cfg.pub_sub.keys())

Expand Down

0 comments on commit 7fb6bc0

Please sign in to comment.