revert to needing both ECUs to match to reduce false positives, test

pull/26939/head
Shane Smiskol 2 years ago
parent c80a96448b
commit caaa7db89c
  1. 3
      selfdrive/car/hyundai/values.py
  2. 4
      selfdrive/car/tests/test_fw_fingerprint.py

@ -449,9 +449,8 @@ FW_QUERY_CONFIG = FwQueryConfig(
(Ecu.hvac, 0x7b3, None), # HVAC Control Assembly
(Ecu.cornerRadar, 0x7b7, None),
],
# Custom fuzzy fingerprinting config using platform codes + FW dates:
fuzzy_get_platform_codes=get_platform_codes,
# Just one exclusive platform code match from radar or camera is enough
fuzzy_min_match_count=1,
# Hyundai works best with camera and radar (which have standardized platform codes)
fuzzy_ecus=[Ecu.fwdRadar, Ecu.fwdCamera],
)

@ -131,10 +131,12 @@ class TestFwFingerprint(TestFwFingerprintBase):
for brand, config in FW_QUERY_CONFIGS.items():
with self.subTest(brand=brand):
if config.fuzzy_get_platform_codes is None:
self.assertEqual(config.fuzzy_min_match_count, 2, "Cannot override minimum match count without full config")
self.assertEqual(len(config.fuzzy_ecus), 0, "Cannot specify fuzzy ECUs without full config")
self.assertEqual(config.fuzzy_min_match_count, 2, "Cannot override minimum match count without full config")
else:
self.assertGreater(len(config.fuzzy_ecus), 0, "Need to specify fuzzy ECUs")
self.assertEqual(config.fuzzy_min_match_count, len(config.fuzzy_ecus),
"Fuzzy ECU match count must equal number of fuzzy ECUs")
# Assert every supported ECU FW version returns one platform code
for fw_by_addr in VERSIONS[brand].values():

Loading…
Cancel
Save