|
|
|
@ -1,3 +1,6 @@ |
|
|
|
|
from collections import defaultdict |
|
|
|
|
from enum import IntFlag |
|
|
|
|
|
|
|
|
|
from cereal import car |
|
|
|
|
from selfdrive.car import dbc_dict |
|
|
|
|
from selfdrive.config import Conversions as CV |
|
|
|
@ -16,6 +19,11 @@ class CarControllerParams: |
|
|
|
|
STEER_DELTA_DOWN = 25 # always lower than 45 otherwise the Rav4 faults (Prius seems ok with 50) |
|
|
|
|
STEER_ERROR_MAX = 350 # max delta between torque cmd and torque motor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ToyotaFlags(IntFlag): |
|
|
|
|
HYBRID = 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CAR: |
|
|
|
|
# Toyota |
|
|
|
|
ALPHARD_TSS2 = "TOYOTA ALPHARD 2020" |
|
|
|
@ -38,6 +46,7 @@ class CAR: |
|
|
|
|
HIGHLANDERH = "TOYOTA HIGHLANDER HYBRID 2018" |
|
|
|
|
HIGHLANDERH_TSS2 = "TOYOTA HIGHLANDER HYBRID 2020" |
|
|
|
|
PRIUS = "TOYOTA PRIUS 2017" |
|
|
|
|
PRIUS_V = "TOYOTA PRIUS v 2017" |
|
|
|
|
PRIUS_TSS2 = "TOYOTA PRIUS TSS2 2021" |
|
|
|
|
RAV4 = "TOYOTA RAV4 2017" |
|
|
|
|
RAV4H = "TOYOTA RAV4 HYBRID 2017" |
|
|
|
@ -65,25 +74,24 @@ class CAR: |
|
|
|
|
STATIC_DSU_MSGS = [ |
|
|
|
|
(0x128, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.AVALON), 1, 3, b'\xf4\x01\x90\x83\x00\x37'), |
|
|
|
|
(0x128, (CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH), 1, 3, b'\x03\x00\x20\x00\x00\x52'), |
|
|
|
|
(0x141, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 1, 2, b'\x00\x00\x00\x46'), |
|
|
|
|
(0x160, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 1, 7, b'\x00\x00\x08\x12\x01\x31\x9c\x51'), |
|
|
|
|
(0x161, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.AVALON, CAR.LEXUS_RX), 1, 7, b'\x00\x1e\x00\x00\x00\x80\x07'), |
|
|
|
|
(0x141, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 1, 2, b'\x00\x00\x00\x46'), |
|
|
|
|
(0x160, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 1, 7, b'\x00\x00\x08\x12\x01\x31\x9c\x51'), |
|
|
|
|
(0x161, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.AVALON, CAR.LEXUS_RX, CAR.PRIUS_V), 1, 7, b'\x00\x1e\x00\x00\x00\x80\x07'), |
|
|
|
|
(0X161, (CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH), 1, 7, b'\x00\x1e\x00\xd4\x00\x00\x5b'), |
|
|
|
|
(0x283, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 0, 3, b'\x00\x00\x00\x00\x00\x00\x8c'), |
|
|
|
|
(0x283, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 0, 3, b'\x00\x00\x00\x00\x00\x00\x8c'), |
|
|
|
|
(0x2E6, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH), 0, 3, b'\xff\xf8\x00\x08\x7f\xe0\x00\x4e'), |
|
|
|
|
(0x2E7, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH), 0, 3, b'\xa8\x9c\x31\x9c\x00\x00\x00\x02'), |
|
|
|
|
(0x33E, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH), 0, 20, b'\x0f\xff\x26\x40\x00\x1f\x00'), |
|
|
|
|
(0x344, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 0, 5, b'\x00\x00\x01\x00\x00\x00\x00\x50'), |
|
|
|
|
(0x344, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 0, 5, b'\x00\x00\x01\x00\x00\x00\x00\x50'), |
|
|
|
|
(0x365, (CAR.PRIUS, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.HIGHLANDERH), 0, 20, b'\x00\x00\x00\x80\x03\x00\x08'), |
|
|
|
|
(0x365, (CAR.RAV4, CAR.RAV4H, CAR.COROLLA, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 0, 20, b'\x00\x00\x00\x80\xfc\x00\x08'), |
|
|
|
|
(0x365, (CAR.RAV4, CAR.RAV4H, CAR.COROLLA, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 0, 20, b'\x00\x00\x00\x80\xfc\x00\x08'), |
|
|
|
|
(0x366, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.HIGHLANDERH), 0, 20, b'\x00\x00\x4d\x82\x40\x02\x00'), |
|
|
|
|
(0x366, (CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 0, 20, b'\x00\x72\x07\xff\x09\xfe\x00'), |
|
|
|
|
(0x366, (CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 0, 20, b'\x00\x72\x07\xff\x09\xfe\x00'), |
|
|
|
|
(0x470, (CAR.PRIUS, CAR.LEXUS_RXH), 1, 100, b'\x00\x00\x02\x7a'), |
|
|
|
|
(0x470, (CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.RAV4H, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH), 1, 100, b'\x00\x00\x01\x79'), |
|
|
|
|
(0x4CB, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX), 0, 100, b'\x0c\x00\x00\x00\x00\x00\x00\x00'), |
|
|
|
|
(0x470, (CAR.HIGHLANDER, CAR.HIGHLANDERH, CAR.RAV4H, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.PRIUS_V), 1, 100, b'\x00\x00\x01\x79'), |
|
|
|
|
(0x4CB, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.LEXUS_NX, CAR.RAV4, CAR.COROLLA, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.AVALON, CAR.SIENNA, CAR.LEXUS_CTH, CAR.LEXUS_ESH, CAR.LEXUS_RX, CAR.PRIUS_V), 0, 100, b'\x0c\x00\x00\x00\x00\x00\x00\x00'), |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FW_VERSIONS = { |
|
|
|
|
CAR.AVALON: { |
|
|
|
|
(Ecu.esp, 0x7b0, None): [ |
|
|
|
@ -360,12 +368,14 @@ FW_VERSIONS = { |
|
|
|
|
b'\x018966306Q5000\x00\x00\x00\x00', |
|
|
|
|
b'\x018966306T3100\x00\x00\x00\x00', |
|
|
|
|
b'\x018966306T3200\x00\x00\x00\x00', |
|
|
|
|
b'\x018966306T4000\x00\x00\x00\x00', |
|
|
|
|
b'\x018966306T4100\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdRadar, 0x750, 0xf): [ |
|
|
|
|
b'\x018821F6201200\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [ |
|
|
|
|
b'\x028646F0602100\x00\x00\x00\x008646G5301200\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F0602200\x00\x00\x00\x008646G5301200\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F3305200\x00\x00\x00\x008646G5301200\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F3305300\x00\x00\x00\x008646G5301200\x00\x00\x00\x00', |
|
|
|
@ -392,6 +402,7 @@ FW_VERSIONS = { |
|
|
|
|
}, |
|
|
|
|
CAR.CHR: { |
|
|
|
|
(Ecu.engine, 0x700, None): [ |
|
|
|
|
b'\x01896631021100\x00\x00\x00\x00', |
|
|
|
|
b'\x01896631017100\x00\x00\x00\x00', |
|
|
|
|
b'\x01896631017200\x00\x00\x00\x00', |
|
|
|
|
b'\x0189663F413100\x00\x00\x00\x00', |
|
|
|
@ -575,6 +586,7 @@ FW_VERSIONS = { |
|
|
|
|
b'\x03312N6000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203402\x00\x00\x00\x00', |
|
|
|
|
b'\x03312N6100\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203302\x00\x00\x00\x00', |
|
|
|
|
b'\x03312N6100\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203402\x00\x00\x00\x00', |
|
|
|
|
b'\x02312K4000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.eps, 0x7a1, None): [ |
|
|
|
|
b'\x018965B12350\x00\x00\x00\x00\x00\x00', |
|
|
|
@ -586,6 +598,7 @@ FW_VERSIONS = { |
|
|
|
|
b'\x018965B1255000\x00\x00\x00\x00', |
|
|
|
|
b'8965B12361\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'8965B16011\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x018965B12510\x00\x00\x00\x00\x00\x00' |
|
|
|
|
], |
|
|
|
|
(Ecu.esp, 0x7b0, None): [ |
|
|
|
|
b'\x01F152602280\x00\x00\x00\x00\x00\x00', |
|
|
|
@ -600,11 +613,13 @@ FW_VERSIONS = { |
|
|
|
|
b'\x01F152612B51\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B60\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B61\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B62\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B71\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B81\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612B90\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612C00\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'F152602191\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152612862\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdRadar, 0x750, 0xf): [ |
|
|
|
|
b'\x018821F3301100\x00\x00\x00\x00', |
|
|
|
@ -632,6 +647,7 @@ FW_VERSIONS = { |
|
|
|
|
b'\x01896637624000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896637626000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896637648000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896637643000\x00\x00\x00\x00', |
|
|
|
|
b'\x02896630ZJ5000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00', |
|
|
|
|
b'\x02896630ZN8000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00', |
|
|
|
|
b'\x02896630ZQ3000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00', |
|
|
|
@ -808,9 +824,11 @@ FW_VERSIONS = { |
|
|
|
|
b'\x01F15264872300\x00\x00\x00\x00', |
|
|
|
|
b'\x01F15264872400\x00\x00\x00\x00', |
|
|
|
|
b'\x01F15264872500\x00\x00\x00\x00', |
|
|
|
|
b'\x01F15264873500\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152648C6300\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.engine, 0x700, None): [ |
|
|
|
|
b'\x01896630E67000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EA1000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EE4000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EA1000\x00\x00\x00\x00897CF4801001\x00\x00\x00\x00', |
|
|
|
@ -968,6 +986,23 @@ FW_VERSIONS = { |
|
|
|
|
b'8646F4705200\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
CAR.PRIUS_V: { |
|
|
|
|
(Ecu.esp, 0x7b0, None): [ |
|
|
|
|
b'F152647280\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.engine, 0x7e0, None): [ |
|
|
|
|
b'\x0234781000\x00\x00\x00\x00\x00\x00\x00\x00A4701000\x00\x00\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.dsu, 0x791, None): [ |
|
|
|
|
b'881514705100\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdRadar, 0x750, 0xf): [ |
|
|
|
|
b'8821F4702300\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [ |
|
|
|
|
b'8646F4703300\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
CAR.RAV4: { |
|
|
|
|
(Ecu.engine, 0x7e0, None): [ |
|
|
|
|
b'\x02342Q1000\x00\x00\x00\x00\x00\x00\x00\x0054212000\x00\x00\x00\x00\x00\x00\x00\x00', |
|
|
|
@ -1520,20 +1555,21 @@ FW_VERSIONS = { |
|
|
|
|
}, |
|
|
|
|
CAR.LEXUS_RX_TSS2: { |
|
|
|
|
(Ecu.engine, 0x700, None): [ |
|
|
|
|
b'\x01896630EC9000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896634D12000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EB0000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EA9000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EB0000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630EC9000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630ED0000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896630ED6000\x00\x00\x00\x00', |
|
|
|
|
b'\x018966348W5100\x00\x00\x00\x00', |
|
|
|
|
b'\x018966348W9000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896634D12000\x00\x00\x00\x00', |
|
|
|
|
b'\x01896634D12100\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.esp, 0x7b0, None): [ |
|
|
|
|
b'\x01F152648801\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F15260E031\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F15260E041\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152648781\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x01F152648801\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.eps, 0x7a1, None): [ |
|
|
|
|
b'8965B48261\x00\x00\x00\x00\x00\x00', |
|
|
|
@ -1545,8 +1581,9 @@ FW_VERSIONS = { |
|
|
|
|
b'\x018821F3301400\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [ |
|
|
|
|
b'\x028646F4810200\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F4810100\x00\x00\x00\x008646G2601200\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F4810200\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F4810300\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
CAR.LEXUS_RXH_TSS2: { |
|
|
|
@ -1607,57 +1644,72 @@ FW_VERSIONS = { |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [b'\x028646F6201400\x00\x00\x00\x008646G5301200\x00\x00\x00\x00',], |
|
|
|
|
}, |
|
|
|
|
CAR.ALPHARD_TSS2: { |
|
|
|
|
(Ecu.engine, 0x7e0, None): [b'\x0235883000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00',], |
|
|
|
|
(Ecu.eps, 0x7a1, None): [b'8965B58040\x00\x00\x00\x00\x00\x00',], |
|
|
|
|
(Ecu.fwdRadar, 0x750, 0xf): [b'\x018821F3301400\x00\x00\x00\x00',], |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [b'\x028646F5803200\x00\x00\x00\x008646G2601400\x00\x00\x00\x00',], |
|
|
|
|
(Ecu.engine, 0x7e0, None): [ |
|
|
|
|
b'\x0235870000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'\x0235883000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.eps, 0x7a1, None): [ |
|
|
|
|
b'8965B58040\x00\x00\x00\x00\x00\x00', |
|
|
|
|
b'8965B58052\x00\x00\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdRadar, 0x750, 0xf): [ |
|
|
|
|
b'\x018821F3301200\x00\x00\x00\x00', |
|
|
|
|
b'\x018821F3301400\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
(Ecu.fwdCamera, 0x750, 0x6d): [ |
|
|
|
|
b'\x028646F58010C0\x00\x00\x00\x008646G26011A0\x00\x00\x00\x00', |
|
|
|
|
b'\x028646F5803200\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
STEER_THRESHOLD = 100 |
|
|
|
|
|
|
|
|
|
DBC = { |
|
|
|
|
CAR.RAV4H: dbc_dict('toyota_rav4_hybrid_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.RAV4: dbc_dict('toyota_rav4_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.PRIUS: dbc_dict('toyota_prius_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.COROLLA: dbc_dict('toyota_corolla_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RC: dbc_dict('lexus_is_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RX: dbc_dict('lexus_rx_350_2016_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RXH: dbc_dict('lexus_rx_hybrid_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.RAV4H: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.RAV4: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.PRIUS: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.PRIUS_V: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.COROLLA: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RC: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RX: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RXH: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_RX_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_RXH_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_RXH_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.CHR: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CHRH: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CHRH: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CAMRY: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CAMRYH: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CAMRYH: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CAMRY_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.CAMRYH_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.HIGHLANDER: dbc_dict('toyota_highlander_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.CAMRYH_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.HIGHLANDER: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.HIGHLANDER_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.HIGHLANDERH: dbc_dict('toyota_highlander_hybrid_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.HIGHLANDERH_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.AVALON: dbc_dict('toyota_avalon_2017_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.HIGHLANDERH: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.HIGHLANDERH_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.AVALON: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.AVALON_2019: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.AVALONH_2019: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.AVALONH_2019: dbc_dict('toyota_nodsu_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.AVALON_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.RAV4_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.COROLLA_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.COROLLAH_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.COROLLAH_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_ES_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_ESH_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_ESH: dbc_dict('lexus_ct200h_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.SIENNA: dbc_dict('toyota_sienna_xle_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_IS: dbc_dict('lexus_is_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_CTH: dbc_dict('lexus_ct200h_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.RAV4H_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_NXH: dbc_dict('lexus_nx300h_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_NX: dbc_dict('lexus_nx300_2018_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_ESH_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_ESH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.SIENNA: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_IS: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_CTH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.RAV4H_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.LEXUS_NXH: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_NX: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), |
|
|
|
|
CAR.LEXUS_NX_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.PRIUS_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.MIRAI: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.PRIUS_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.MIRAI: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
CAR.ALPHARD_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# These cars have non-standard EPS torque scale factors. All others are 73 |
|
|
|
|
EPS_SCALE = defaultdict(lambda: 73, {CAR.PRIUS: 66, CAR.COROLLA: 88, CAR.LEXUS_IS: 77, CAR.LEXUS_RC: 77, CAR.LEXUS_CTH: 100, CAR.PRIUS_V: 100}) |
|
|
|
|
|
|
|
|
|
# Toyota/Lexus Safety Sense 2.0 and 2.5 |
|
|
|
|
TSS2_CAR = {CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, |
|
|
|
@ -1667,4 +1719,4 @@ TSS2_CAR = {CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS |
|
|
|
|
NO_DSU_CAR = TSS2_CAR | {CAR.CHR, CAR.CHRH, CAR.CAMRY, CAR.CAMRYH} |
|
|
|
|
|
|
|
|
|
# no resume button press required |
|
|
|
|
NO_STOP_TIMER_CAR = TSS2_CAR | {CAR.RAV4H, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.SIENNA, CAR.LEXUS_ESH} |
|
|
|
|
NO_STOP_TIMER_CAR = TSS2_CAR | {CAR.PRIUS_V, CAR.RAV4H, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.SIENNA, CAR.LEXUS_ESH} |
|
|
|
|