Nissan FPv2: log different diagnostic session types (#28585)

* standard KWP2000 diagnostic session type

* draft

* clean up

* not needed

* update FP refs

* should log logging
old-commit-hash: 2f2b94758b
beeps
Shane Smiskol 2 years ago committed by GitHub
parent 91e7bf83b8
commit b02345b12d
  1. 32
      selfdrive/car/nissan/values.py
  2. 4
      selfdrive/car/tests/test_fw_fingerprint.py

@ -79,25 +79,35 @@ FINGERPRINTS = {
]
}
NISSAN_DIAGNOSTIC_REQUEST_KWP = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL, 0xc0])
NISSAN_DIAGNOSTIC_RESPONSE_KWP = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL + 0x40, 0xc0])
NISSAN_DIAGNOSTIC_REQUEST_KWP = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL])
NISSAN_DIAGNOSTIC_RESPONSE_KWP = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL + 0x40])
NISSAN_VERSION_REQUEST_KWP = b'\x21\x83'
NISSAN_VERSION_RESPONSE_KWP = b'\x61\x83'
NISSAN_RX_OFFSET = 0x20
# Try diagnostic sessions: default, standby, extended, Nissan-specific
NISSAN_DIAGNOSTIC_SESSION_TYPES = (0x81, 0x89, 0x92, 0xc0)
NISSAN_DEFAULT_DIAGNOSTIC_SESSION_TYPE = 0xc0
FW_QUERY_CONFIG = FwQueryConfig(
requests=[
Request(
[NISSAN_DIAGNOSTIC_REQUEST_KWP, NISSAN_VERSION_REQUEST_KWP],
[NISSAN_DIAGNOSTIC_RESPONSE_KWP, NISSAN_VERSION_RESPONSE_KWP],
),
Request(
[NISSAN_DIAGNOSTIC_REQUEST_KWP, NISSAN_VERSION_REQUEST_KWP],
[NISSAN_DIAGNOSTIC_RESPONSE_KWP, NISSAN_VERSION_RESPONSE_KWP],
rx_offset=NISSAN_RX_OFFSET,
),
*[
Request(
[NISSAN_DIAGNOSTIC_REQUEST_KWP + bytes([subfunction]), NISSAN_VERSION_REQUEST_KWP],
[NISSAN_DIAGNOSTIC_RESPONSE_KWP + bytes([subfunction]), NISSAN_VERSION_RESPONSE_KWP],
logging=subfunction != NISSAN_DEFAULT_DIAGNOSTIC_SESSION_TYPE,
) for subfunction in NISSAN_DIAGNOSTIC_SESSION_TYPES
],
*[
Request(
[NISSAN_DIAGNOSTIC_REQUEST_KWP + bytes([subfunction]), NISSAN_VERSION_REQUEST_KWP],
[NISSAN_DIAGNOSTIC_RESPONSE_KWP + bytes([subfunction]), NISSAN_VERSION_RESPONSE_KWP],
rx_offset=NISSAN_RX_OFFSET,
logging=subfunction != NISSAN_DEFAULT_DIAGNOSTIC_SESSION_TYPE,
) for subfunction in NISSAN_DIAGNOSTIC_SESSION_TYPES
],
Request(
[StdQueries.MANUFACTURER_SOFTWARE_VERSION_REQUEST],
[StdQueries.MANUFACTURER_SOFTWARE_VERSION_RESPONSE],

@ -186,7 +186,7 @@ class TestFwFingerprintTiming(unittest.TestCase):
def test_fw_query_timing(self):
tol = 0.1
total_ref_time = 4.6
total_ref_time = 5.2
brand_ref_times = {
1: {
'body': 0.1,
@ -195,7 +195,7 @@ class TestFwFingerprintTiming(unittest.TestCase):
'honda': 0.5,
'hyundai': 0.7,
'mazda': 0.1,
'nissan': 0.3,
'nissan': 0.9,
'subaru': 0.1,
'tesla': 0.2,
'toyota': 0.7,

Loading…
Cancel
Save