diff --git a/common/params.cc b/common/params.cc index 52b50ecd97..c71812caac 100644 --- a/common/params.cc +++ b/common/params.cc @@ -255,6 +255,7 @@ std::unordered_map keys = { {"EnforceTorqueLateral", PERSISTENT | BACKUP}, {"EnhancedScc", PERSISTENT | BACKUP}, {"FeatureStatus", PERSISTENT | BACKUP}, + {"Fingerprints", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION}, {"FleetManagerPin", PERSISTENT}, {"ForceOffroad", CLEAR_ON_MANAGER_START}, {"GmapKey", PERSISTENT | BACKUP}, diff --git a/selfdrive/car/car_helpers.py b/selfdrive/car/car_helpers.py index 5fcfe34a4f..f6d2f3eabe 100644 --- a/selfdrive/car/car_helpers.py +++ b/selfdrive/car/car_helpers.py @@ -169,6 +169,7 @@ def fingerprint(logcan, sendcan, num_pandas): # drain CAN socket so we get the latest messages messaging.drain_sock_raw(logcan) car_fingerprint, finger = can_fingerprint(lambda: get_one_can(logcan)) + params.put("Fingerprints", repr(finger), len(repr(finger))) exact_match = True source = car.CarParams.FingerprintSource.can diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index 3910061c7d..5d2dfb6212 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -1,7 +1,8 @@ +import ast + from cereal import car from panda import Panda from openpilot.common.params import Params -from openpilot.selfdrive.car.car_helpers import can_fingerprint, get_one_can from openpilot.selfdrive.car.hyundai.enable_radar_tracks import enable_radar_tracks from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, HyundaiFlagsSP, CAR, DBC, CANFD_CAR, CAMERA_SCC_CAR, CANFD_RADAR_SCC_CAR, \ @@ -210,7 +211,7 @@ class CarInterface(CarInterfaceBase): elif rt_avail != rt_avail_cache: params.put_bool_nonblocking("HyundaiRadarTracksAvailableCache", rt_avail) else: - _, fingerprint = can_fingerprint(lambda: get_one_can(logcan)) + fingerprint = ast.literal_eval(params.get("Fingerprints", encoding="utf8")) if RADAR_START_ADDR in fingerprint[1] and DBC[CP.carFingerprint]["radar"] is not None: params.put_bool_nonblocking("HyundaiRadarTracksAvailable", True) elif RADAR_START_ADDR not in fingerprint[1] or DBC[CP.carFingerprint]["radar"] is None: