mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-23 00:53:43 +08:00
test_models: match online fingerprinting behavior (#29306)
* draft * 1x * clean up * final clean up * fix * self explan * space * space
This commit is contained in:
@@ -13,6 +13,8 @@ from system.swaglog import cloudlog
|
||||
import cereal.messaging as messaging
|
||||
from selfdrive.car import gen_empty_fingerprint
|
||||
|
||||
FRAME_FINGERPRINT = 100 # 1s
|
||||
|
||||
EventName = car.CarEvent.EventName
|
||||
|
||||
|
||||
@@ -126,7 +128,6 @@ def fingerprint(logcan, sendcan, num_pandas):
|
||||
finger = gen_empty_fingerprint()
|
||||
candidate_cars = {i: all_legacy_fingerprint_cars() for i in [0, 1]} # attempt fingerprint on both bus 0 and 1
|
||||
frame = 0
|
||||
frame_fingerprint = 100 # 1s
|
||||
car_fingerprint = None
|
||||
done = False
|
||||
|
||||
@@ -152,12 +153,12 @@ def fingerprint(logcan, sendcan, num_pandas):
|
||||
# if we only have one car choice and the time since we got our first
|
||||
# message has elapsed, exit
|
||||
for b in candidate_cars:
|
||||
if len(candidate_cars[b]) == 1 and frame > frame_fingerprint:
|
||||
if len(candidate_cars[b]) == 1 and frame > FRAME_FINGERPRINT:
|
||||
# fingerprint done
|
||||
car_fingerprint = candidate_cars[b][0]
|
||||
|
||||
# bail if no cars left or we've been waiting for more than 2s
|
||||
failed = (all(len(cc) == 0 for cc in candidate_cars.values()) and frame > frame_fingerprint) or frame > 200
|
||||
failed = (all(len(cc) == 0 for cc in candidate_cars.values()) and frame > FRAME_FINGERPRINT) or frame > 200
|
||||
succeeded = car_fingerprint is not None
|
||||
done = failed or succeeded
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from cereal import log, car
|
||||
from common.basedir import BASEDIR
|
||||
from common.realtime import DT_CTRL
|
||||
from selfdrive.car.fingerprints import all_known_cars
|
||||
from selfdrive.car.car_helpers import interfaces
|
||||
from selfdrive.car.car_helpers import FRAME_FINGERPRINT, interfaces
|
||||
from selfdrive.car.gm.values import CAR as GM
|
||||
from selfdrive.car.honda.values import CAR as HONDA, HONDA_BOSCH
|
||||
from selfdrive.car.hyundai.values import CAR as HYUNDAI
|
||||
@@ -106,10 +106,12 @@ class TestCarModelBase(unittest.TestCase):
|
||||
dashcam_only = False
|
||||
for msg in lr:
|
||||
if msg.which() == "can":
|
||||
for m in msg.can:
|
||||
if m.src < 64:
|
||||
fingerprint[m.src][m.address] = len(m.dat)
|
||||
can_msgs.append(msg)
|
||||
if len(can_msgs) <= FRAME_FINGERPRINT:
|
||||
for m in msg.can:
|
||||
if m.src < 64:
|
||||
fingerprint[m.src][m.address] = len(m.dat)
|
||||
|
||||
elif msg.which() == "carParams":
|
||||
car_fw = msg.carParams.carFw
|
||||
dashcam_only = msg.carParams.dashcamOnly
|
||||
@@ -117,6 +119,7 @@ class TestCarModelBase(unittest.TestCase):
|
||||
experimental_long = True
|
||||
if cls.car_model is None and not cls.ci:
|
||||
cls.car_model = msg.carParams.carFingerprint
|
||||
|
||||
elif msg.which() == 'initData':
|
||||
for param in msg.initData.params.entries:
|
||||
if param.key == 'OpenpilotEnabledToggle':
|
||||
|
||||
Reference in New Issue
Block a user