From caaa7db89c9784c2a24ca957441e4be445877795 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 8 Jun 2023 21:30:17 -0700 Subject: [PATCH] revert to needing both ECUs to match to reduce false positives, test --- selfdrive/car/hyundai/values.py | 3 +-- selfdrive/car/tests/test_fw_fingerprint.py | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index 4cc5bd53da..9b69c06fc6 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.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], ) diff --git a/selfdrive/car/tests/test_fw_fingerprint.py b/selfdrive/car/tests/test_fw_fingerprint.py index 9e8f4d1ef7..7462451b9b 100755 --- a/selfdrive/car/tests/test_fw_fingerprint.py +++ b/selfdrive/car/tests/test_fw_fingerprint.py @@ -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():