@ -77,6 +77,7 @@ class CAR:
# Lexus
# Lexus
LEXUS_CTH = " LEXUS CT HYBRID 2018 "
LEXUS_CTH = " LEXUS CT HYBRID 2018 "
LEXUS_ES = " LEXUS ES 2018 "
LEXUS_ESH = " LEXUS ES HYBRID 2018 "
LEXUS_ESH = " LEXUS ES HYBRID 2018 "
LEXUS_ES_TSS2 = " LEXUS ES 2019 "
LEXUS_ES_TSS2 = " LEXUS ES 2019 "
LEXUS_ESH_TSS2 = " LEXUS ES HYBRID 2019 "
LEXUS_ESH_TSS2 = " LEXUS ES HYBRID 2019 "
@ -169,6 +170,7 @@ CAR_INFO: Dict[str, Union[ToyotaCarInfo, List[ToyotaCarInfo]]] = {
# Lexus
# Lexus
CAR . LEXUS_CTH : ToyotaCarInfo ( " Lexus CT Hybrid 2017-18 " , " Lexus Safety System+ " ) ,
CAR . LEXUS_CTH : ToyotaCarInfo ( " Lexus CT Hybrid 2017-18 " , " Lexus Safety System+ " ) ,
CAR . LEXUS_ES : ToyotaCarInfo ( " Lexus ES 2017-18 " ) ,
CAR . LEXUS_ESH : ToyotaCarInfo ( " Lexus ES Hybrid 2017-18 " ) ,
CAR . LEXUS_ESH : ToyotaCarInfo ( " Lexus ES Hybrid 2017-18 " ) ,
CAR . LEXUS_ES_TSS2 : ToyotaCarInfo ( " Lexus ES 2019-22 " ) ,
CAR . LEXUS_ES_TSS2 : ToyotaCarInfo ( " Lexus ES 2019-22 " ) ,
CAR . LEXUS_ESH_TSS2 : ToyotaCarInfo ( " Lexus ES Hybrid 2019-23 " , video_link = " https://youtu.be/BZ29osRVJeg?t=12 " ) ,
CAR . LEXUS_ESH_TSS2 : ToyotaCarInfo ( " Lexus ES Hybrid 2019-23 " , video_link = " https://youtu.be/BZ29osRVJeg?t=12 " ) ,
@ -193,23 +195,24 @@ CAR_INFO: Dict[str, Union[ToyotaCarInfo, List[ToyotaCarInfo]]] = {
# (addr, cars, bus, 1/freq*100, vl)
# (addr, cars, bus, 1/freq*100, vl)
STATIC_DSU_MSGS = [
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 . 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 ' ) ,
( 0x128 , ( CAR . HIGHLANDER , CAR . HIGHLANDERH , CAR . SIENNA , CAR . LEXUS_CTH , CAR . LEXUS_ES , CAR . LEXUS_ES H) , 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 , CAR . PRIUS_V ) , 1 , 2 , b ' \x00 \x00 \x00 \x46 ' ) ,
( 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_ES , CAR . LEXUS_ES H, 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 ' ) ,
( 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_ES , CAR . LEXUS_ES H, 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 . PRIUS , CAR . RAV4H , CAR . LEXUS_RXH , CAR . LEXUS_NXH , CAR . LEXUS_NX , CAR . RAV4 , CAR . COROLLA , CAR . AVALON , CAR . LEXUS_RX , CAR . PRIUS_V , CAR . LEXUS_ES ) , 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 ' ) ,
( 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 , CAR . PRIUS_V ) , 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_ES , CAR . LEXUS_ES H, 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 ' ) ,
( 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 ' ) ,
( 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 ' ) ,
( 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 , CAR . PRIUS_V ) , 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_ES , CAR . LEXUS_ES H, 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 . 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 , CAR . PRIUS_V ) , 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_ES , CAR . LEXUS_ES H, 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 . 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 , CAR . PRIUS_V ) , 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 ' ) ,
( 0x366 , ( CAR . LEXUS_ES , ) , 0 , 20 , b ' \x00 \x95 \x07 \xfe \x08 \x05 \x00 ' ) ,
( 0x470 , ( CAR . PRIUS , CAR . LEXUS_RXH ) , 1 , 100 , b ' \x00 \x00 \x02 \x7a ' ) ,
( 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 , CAR . PRIUS_V ) , 1 , 100 , b ' \x00 \x00 \x01 \x79 ' ) ,
( 0x470 , ( CAR . HIGHLANDER , CAR . HIGHLANDERH , CAR . RAV4H , CAR . SIENNA , CAR . LEXUS_CTH , CAR . LEXUS_ES , CAR . LEXUS_ES H, 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 ' ) ,
( 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_ES , CAR . LEXUS_ES H, CAR . LEXUS_RX , CAR . PRIUS_V ) , 0 , 100 , b ' \x0c \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ) ,
]
]
TOYOTA_VERSION_REQUEST = b ' \x1a \x88 \x01 '
TOYOTA_VERSION_REQUEST = b ' \x1a \x88 \x01 '
@ -1731,6 +1734,26 @@ FW_VERSIONS = {
b ' \x02 8646F3309100 \x00 \x00 \x00 \x00 8646G3304000 \x00 \x00 \x00 \x00 ' ,
b ' \x02 8646F3309100 \x00 \x00 \x00 \x00 8646G3304000 \x00 \x00 \x00 \x00 ' ,
] ,
] ,
} ,
} ,
CAR . LEXUS_ES : {
( Ecu . engine , 0x7e0 , None ) : [
b ' \x02 333R0000 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 A0C01000 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,
] ,
( Ecu . abs , 0x7b0 , None ) : [
b ' F152606202 \x00 \x00 \x00 \x00 \x00 \x00 ' ,
] ,
( Ecu . dsu , 0x791 , None ) : [
b ' 881513309500 \x00 \x00 \x00 \x00 ' ,
] ,
( Ecu . eps , 0x7a1 , None ) : [
b ' 8965B33502 \x00 \x00 \x00 \x00 \x00 \x00 ' ,
] ,
( Ecu . fwdRadar , 0x750 , 0xf ) : [
b ' 8821F4701200 \x00 \x00 \x00 \x00 ' ,
] ,
( Ecu . fwdCamera , 0x750 , 0x6d ) : [
b ' 8646F3302200 \x00 \x00 \x00 \x00 ' ,
] ,
} ,
CAR . LEXUS_ESH : {
CAR . LEXUS_ESH : {
( Ecu . engine , 0x7e0 , None ) : [
( Ecu . engine , 0x7e0 , None ) : [
b ' \x02 333M4200 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 A4701000 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,
b ' \x02 333M4200 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 A4701000 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,
@ -2161,6 +2184,7 @@ DBC = {
CAR . RAV4_TSS2_2023 : dbc_dict ( ' toyota_nodsu_pt_generated ' , None ) ,
CAR . RAV4_TSS2_2023 : dbc_dict ( ' toyota_nodsu_pt_generated ' , None ) ,
CAR . COROLLA_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_pt_generated ' , ' toyota_tss2_adas ' ) ,
CAR . COROLLAH_TSS2 : dbc_dict ( ' toyota_nodsu_pt_generated ' , ' toyota_tss2_adas ' ) ,
CAR . LEXUS_ES : dbc_dict ( ' toyota_new_mc_pt_generated ' , ' toyota_adas ' ) ,
CAR . LEXUS_ES_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_pt_generated ' , ' toyota_tss2_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 . LEXUS_ESH : dbc_dict ( ' toyota_new_mc_pt_generated ' , ' toyota_adas ' ) ,