Fingerprinting v2 support for Nissan vehicles (#22655)
* Add Nissan FPv2
* Update Nissan version response
* Add second Nissan FPv2 query
* Add multiple offsets for Nissan
* Nissan offset fix
* Add Nissan diagnostic request
* Use 21 83 for Nissan version request
* Add partial 2018 Leaf FPv2
* Update 2018 Leaf FPv2
* Nissan FPv2: more RX offsets, add no diagostic request scan for 0x20
* Add FPv2 imports to Nissan values
* Change LEAF to LEAF_IC
It is an instrument cluster leaf. With this minor change it works :).
* fixed ecu addr for nissan eps
* Remove FW not used for fpv2
* Remove unused offsets
* add fw versions for 2018 Nissan Leaf JP
* add standard ecu fw query
* add esp fw
* add nissan xtrail
* Add missing ESP FW for 2018 Nissan Leaf IC
* Add fwdCamera FW for Xtrail 2017
* add missing comma
* Add 0x8 default offset
needed e.g. for xtrail engine ecu
* Apply suggestions from code review
Co-authored-by: Willem Melching <willem.melching@gmail.com>
* Fix variable naming
* remove unnecessary part of standard fw query
* add fw versions for CAN-GW ECU
* transmission eco does not reliable answer -> remove
* add Altima FWs (part 1)
* add Altima EPS FW
* Remove NISSAN_KWP_DIAGNOSTIC_REQUEST and cleanup
* Revert "Remove NISSAN_KWP_DIAGNOSTIC_REQUEST and cleanup"
This reverts commit 808d6f1562
.
* cleanup
Co-authored-by: Martin Lillepuu <martin@mlp.ee>
Co-authored-by: Julian Pieles <julian@pieles.digital>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
pull/22826/head
parent
e29cc1c2ee
commit
e2288371f2
|
@ -71,6 +71,19 @@ MAZDA_VERSION_REQUEST = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + \
|
|||
MAZDA_VERSION_RESPONSE = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + \
|
||||
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER)
|
||||
|
||||
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_VERSION_REQUEST_KWP = b'\x21\x83'
|
||||
NISSAN_VERSION_RESPONSE_KWP = b'\x61\x83'
|
||||
|
||||
NISSAN_VERSION_REQUEST_STANDARD = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + \
|
||||
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER)
|
||||
NISSAN_VERSION_RESPONSE_STANDARD = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + \
|
||||
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER)
|
||||
|
||||
NISSAN_RX_OFFSET = 0x20
|
||||
|
||||
# brand, request, response, response offset
|
||||
REQUESTS = [
|
||||
# Hyundai
|
||||
|
@ -131,7 +144,26 @@ REQUESTS = [
|
|||
[MAZDA_VERSION_REQUEST],
|
||||
[MAZDA_VERSION_RESPONSE],
|
||||
DEFAULT_RX_OFFSET,
|
||||
)
|
||||
),
|
||||
# Nissan
|
||||
(
|
||||
"nissan",
|
||||
[NISSAN_DIAGNOSTIC_REQUEST_KWP, NISSAN_VERSION_REQUEST_KWP],
|
||||
[NISSAN_DIAGNOSTIC_RESPONSE_KWP, NISSAN_VERSION_RESPONSE_KWP],
|
||||
DEFAULT_RX_OFFSET,
|
||||
),
|
||||
(
|
||||
"nissan",
|
||||
[NISSAN_DIAGNOSTIC_REQUEST_KWP, NISSAN_VERSION_REQUEST_KWP],
|
||||
[NISSAN_DIAGNOSTIC_RESPONSE_KWP, NISSAN_VERSION_RESPONSE_KWP],
|
||||
NISSAN_RX_OFFSET,
|
||||
),
|
||||
(
|
||||
"nissan",
|
||||
[NISSAN_VERSION_REQUEST_STANDARD],
|
||||
[NISSAN_VERSION_RESPONSE_STANDARD],
|
||||
NISSAN_RX_OFFSET,
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# flake8: noqa
|
||||
|
||||
from selfdrive.car import dbc_dict
|
||||
from cereal import car
|
||||
Ecu = car.CarParams.Ecu
|
||||
|
||||
|
||||
class CarControllerParams:
|
||||
|
@ -55,6 +57,61 @@ FINGERPRINTS = {
|
|||
]
|
||||
}
|
||||
|
||||
FW_VERSIONS = {
|
||||
CAR.ALTIMA: {
|
||||
(Ecu.fwdCamera, 0x707, None): [
|
||||
b'284N86CA1D',
|
||||
],
|
||||
(Ecu.eps, 0x742, None): [
|
||||
b'6CA2B\xa9A\x02\x02G8A89P90D6A\x00\x00\x01\x80',
|
||||
],
|
||||
(Ecu.engine, 0x7e0, None): [
|
||||
b'237109HE2B',
|
||||
],
|
||||
(Ecu.gateway, 0x18dad0f1, None): [
|
||||
b'284U29HE0A',
|
||||
],
|
||||
},
|
||||
CAR.LEAF_IC: {
|
||||
(Ecu.fwdCamera, 0x707, None): [
|
||||
b'5SH1BDB\x04\x18\x00\x00\x00\x00\x00_-?\x04\x91\xf2\x00\x00\x00\x80',
|
||||
b'5SK0ADB\x04\x18\x00\x00\x00\x00\x00_(5\x07\x9aQ\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.esp, 0x740, None): [
|
||||
b'476605SH1D',
|
||||
b'476605SK2A',
|
||||
],
|
||||
(Ecu.eps, 0x742, None): [
|
||||
b'5SH2A\x99A\x05\x02N123F\x15\x81\x00\x00\x00\x00\x00\x00\x00\x80',
|
||||
b'5SK3A\x99A\x05\x02N123F\x15u\x00\x00\x00\x00\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.gateway, 0x18dad0f1, None): [
|
||||
b'284U25SH3A',
|
||||
b'284U25SK2D',
|
||||
],
|
||||
},
|
||||
CAR.XTRAIL: {
|
||||
(Ecu.fwdCamera, 0x707, None): [
|
||||
b'284N86FR2A',
|
||||
],
|
||||
(Ecu.esp, 0x740, None): [
|
||||
b'6FU1BD\x11\x02\x00\x02e\x95e\x80iX#\x01\x00\x00\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.eps, 0x742, None): [
|
||||
b'6FP2A\x99A\x05\x02N123F\x18\x02\x00\x00\x00\x00\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.combinationMeter, 0x743, None): [
|
||||
b'6FR2A\x18B\x05\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.engine, 0x7e0, None): [
|
||||
b'6FU9B\xa0A\x06\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80',
|
||||
],
|
||||
(Ecu.gateway, 0x18dad0f1, None): [
|
||||
b'284U26FR0E',
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
DBC = {
|
||||
CAR.XTRAIL: dbc_dict('nissan_x_trail_2017', None),
|
||||
CAR.LEAF: dbc_dict('nissan_leaf_2018', None),
|
||||
|
|
Loading…
Reference in New Issue