From 56d6a6ee479f7599e4aa58e1af825a241d3b8f24 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Fri, 21 Aug 2026 14:19:34 -0500 Subject: [PATCH] leaf --- opendbc_repo/opendbc/car/nissan/interface.py | 11 +++++------ opendbc_repo/opendbc/car/nissan/tests/test_nissan.py | 10 +++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/opendbc_repo/opendbc/car/nissan/interface.py b/opendbc_repo/opendbc/car/nissan/interface.py index 147b486cd..c6f202fc2 100644 --- a/opendbc_repo/opendbc/car/nissan/interface.py +++ b/opendbc_repo/opendbc/car/nissan/interface.py @@ -16,13 +16,12 @@ LEAF_ADAS_COMMAND_BUS = 1 LEAF_ADAS_COMMAND_ADDRS = frozenset((0x1C3, 0x2B0)) LEAF_2025_SV_PLUS_CAMERA_FW = b'6WK2CDB\x04\x18\x00\x00\x00\x00\x00R=1\x18\x99\x10\x00\x00\x00\x80' -# This Leaf camera uses KWP2000 rather than UDS for session management. -LEAF_KWP_DATA_MONITOR_REQUEST = b"\x10\xF0" -LEAF_KWP_DATA_MONITOR_RESPONSE = b"\x50\xF0" -LEAF_KWP_DISABLE_NORMAL_TX = b"\x28\x01" +LEAF_KWP_EXTENDED_REQUEST = b"\x10\xC0" +LEAF_KWP_EXTENDED_RESPONSE = b"\x50\xC0" +LEAF_KWP_DISABLE_NORMAL_TX_NO_RESPONSE = b"\x28\x02" LEAF_KWP_TAKEOVER_SESSIONS = ( - (LEAF_KWP_DATA_MONITOR_REQUEST, LEAF_KWP_DATA_MONITOR_RESPONSE), + (LEAF_KWP_EXTENDED_REQUEST, LEAF_KWP_EXTENDED_RESPONSE), ) @@ -161,7 +160,7 @@ class CarInterface(CarInterfaceBase): for diag_request, diag_response in LEAF_KWP_TAKEOVER_SESSIONS: ecu_log(f"Nissan Leaf ADAS takeover using KWP session {diag_request.hex()}") ecu_disabled = disable_ecu(can_recv, can_send, bus=LEAF_ADAS_ECU_BUS, addr=LEAF_ADAS_ECU_ADDR, - com_cont_req=LEAF_KWP_DISABLE_NORMAL_TX, require_response=True, retry=1, + com_cont_req=LEAF_KWP_DISABLE_NORMAL_TX_NO_RESPONSE, require_response=False, retry=1, diag_request=diag_request, diag_response=diag_response, response_offset=NISSAN_RX_OFFSET) if ecu_disabled: break diff --git a/opendbc_repo/opendbc/car/nissan/tests/test_nissan.py b/opendbc_repo/opendbc/car/nissan/tests/test_nissan.py index d43a23198..01f745895 100644 --- a/opendbc_repo/opendbc/car/nissan/tests/test_nissan.py +++ b/opendbc_repo/opendbc/car/nissan/tests/test_nissan.py @@ -148,17 +148,17 @@ def test_leaf_ecu_disable_is_strict_and_falls_back(monkeypatch, ecu_disabled): assert calls[0]["addr"] == 0x707 assert calls[0]["bus"] == 0 assert calls[0]["response_offset"] == 0x20 - assert calls[0]["require_response"] is True - assert calls[0]["diag_request"] == b"\x10\xf0" - assert calls[0]["diag_response"] == b"\x50\xf0" - assert calls[0]["com_cont_req"] == b"\x28\x01" + assert calls[0]["require_response"] is False + assert calls[0]["diag_request"] == b"\x10\xc0" + assert calls[0]["diag_response"] == b"\x50\xc0" + assert calls[0]["com_cont_req"] == b"\x28\x02" assert calls[0]["retry"] == 1 assert CP.openpilotLongitudinalControl is ecu_disabled assert CP.pcmCruise is not ecu_disabled assert bool(CP.safetyConfigs[-1].safetyParam & NissanSafetyFlags.LONG_CONTROL) is ecu_disabled -def test_leaf_kwp_data_monitor_session_can_confirm_ecu_disable(monkeypatch): +def test_leaf_kwp_no_response_disable_can_confirm_ecu_silence(monkeypatch): CP = CarInterface.get_params(CAR.NISSAN_LEAF, gen_empty_fingerprint(), SUPPORTED_LEAF_FW, True, False, False, None) monkeypatch.setattr("opendbc.car.nissan.interface.disable_ecu", lambda *args, **kwargs: True)