|  |  | @ -13,6 +13,7 @@ class SteerLimitParams: | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | class CAR: |  |  |  | class CAR: | 
			
		
	
		
		
			
				
					
					|  |  |  |   PRIUS = "TOYOTA PRIUS 2017" |  |  |  |   PRIUS = "TOYOTA PRIUS 2017" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   PRIUS_TSS2 = "TOYOTA PRIUS TSS2 2021" | 
			
		
	
		
		
			
				
					
					|  |  |  |   RAV4H = "TOYOTA RAV4 HYBRID 2017" |  |  |  |   RAV4H = "TOYOTA RAV4 HYBRID 2017" | 
			
		
	
		
		
			
				
					
					|  |  |  |   RAV4 = "TOYOTA RAV4 2017" |  |  |  |   RAV4 = "TOYOTA RAV4 2017" | 
			
		
	
		
		
			
				
					
					|  |  |  |   COROLLA = "TOYOTA COROLLA 2017" |  |  |  |   COROLLA = "TOYOTA COROLLA 2017" | 
			
		
	
	
		
		
			
				
					|  |  | @ -40,7 +41,6 @@ class CAR: | 
			
		
	
		
		
			
				
					
					|  |  |  |   RAV4H_TSS2 = "TOYOTA RAV4 HYBRID 2019" |  |  |  |   RAV4H_TSS2 = "TOYOTA RAV4 HYBRID 2019" | 
			
		
	
		
		
			
				
					
					|  |  |  |   LEXUS_NXH = "LEXUS NX300H 2018" |  |  |  |   LEXUS_NXH = "LEXUS NX300H 2018" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | # addr: (ecu, cars, bus, 1/freq*100, vl) |  |  |  | # addr: (ecu, cars, bus, 1/freq*100, vl) | 
			
		
	
		
		
			
				
					
					|  |  |  | STATIC_MSGS = [ |  |  |  | STATIC_MSGS = [ | 
			
		
	
		
		
			
				
					
					|  |  |  |   (0x128, Ecu.dsu, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.RAV4, CAR.COROLLA, CAR.AVALON), 1,   3, b'\xf4\x01\x90\x83\x00\x37'), |  |  |  |   (0x128, Ecu.dsu, (CAR.PRIUS, CAR.RAV4H, CAR.LEXUS_RXH, CAR.LEXUS_NXH, CAR.RAV4, CAR.COROLLA, CAR.AVALON), 1,   3, b'\xf4\x01\x90\x83\x00\x37'), | 
			
		
	
	
		
		
			
				
					|  |  | @ -265,11 +265,14 @@ FINGERPRINTS = { | 
			
		
	
		
		
			
				
					
					|  |  |  |   }], |  |  |  |   }], | 
			
		
	
		
		
			
				
					
					|  |  |  |   CAR.LEXUS_NXH: [{ |  |  |  |   CAR.LEXUS_NXH: [{ | 
			
		
	
		
		
			
				
					
					|  |  |  |     36: 8, 37: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 5, 643: 7, 713: 8, 740: 5, 742: 8, 743: 8, 764: 8, 800: 8, 810: 2, 812: 3, 818: 8, 822: 8, 824: 8, 835: 8, 836: 8, 845: 5, 849: 4, 869: 7, 870: 7, 871: 2, 889: 8, 891: 8, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 913: 8, 916: 3, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 3, 955: 8, 956: 8, 979: 2, 987: 8, 992: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1002: 8, 1006: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1043: 8, 1056: 8, 1057: 8, 1059: 1, 1076: 8, 1077: 8, 1082: 8, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1168: 1, 1176: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1181: 8, 1184: 8, 1185: 8, 1186: 8, 1189: 8, 1190: 8, 1191: 8, 1192: 8, 1195: 8, 1196: 8, 1197: 8, 1198: 8, 1199: 8, 1206: 8, 1208: 8, 1212: 8, 1227: 8, 1228: 8, 1232: 8, 1235: 8, 1237: 8, 1263: 8, 1264: 8, 1279: 8, 1408: 8, 1409: 8, 1410: 8, 1552: 8, 1553: 8, 1554: 8, 1555: 8, 1556: 8, 1557: 8, 1561: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1575: 8, 1584: 8, 1589: 8, 1592: 8, 1593: 8, 1595: 8, 1599: 8, 1656: 8, 1728: 8, 1745: 8, 1777: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 |  |  |  |     36: 8, 37: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 5, 643: 7, 713: 8, 740: 5, 742: 8, 743: 8, 764: 8, 800: 8, 810: 2, 812: 3, 818: 8, 822: 8, 824: 8, 835: 8, 836: 8, 845: 5, 849: 4, 869: 7, 870: 7, 871: 2, 889: 8, 891: 8, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 913: 8, 916: 3, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 3, 955: 8, 956: 8, 979: 2, 987: 8, 992: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1002: 8, 1006: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1043: 8, 1056: 8, 1057: 8, 1059: 1, 1076: 8, 1077: 8, 1082: 8, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1168: 1, 1176: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1181: 8, 1184: 8, 1185: 8, 1186: 8, 1189: 8, 1190: 8, 1191: 8, 1192: 8, 1195: 8, 1196: 8, 1197: 8, 1198: 8, 1199: 8, 1206: 8, 1208: 8, 1212: 8, 1227: 8, 1228: 8, 1232: 8, 1235: 8, 1237: 8, 1263: 8, 1264: 8, 1279: 8, 1408: 8, 1409: 8, 1410: 8, 1552: 8, 1553: 8, 1554: 8, 1555: 8, 1556: 8, 1557: 8, 1561: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1575: 8, 1584: 8, 1589: 8, 1592: 8, 1593: 8, 1595: 8, 1599: 8, 1656: 8, 1728: 8, 1745: 8, 1777: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   }], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   CAR.PRIUS_TSS2: [{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 401: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 614: 8, 643: 7, 658: 8, 713: 8, 740: 5, 742: 8, 743: 8, 764: 8, 765: 8, 800: 8, 810: 2, 814: 8, 824: 8, 829: 2, 830: 7, 835: 8, 836: 8, 863: 8, 865: 8, 869: 7, 870: 7, 871: 2, 877: 8, 881: 8, 882: 8, 896: 8, 898: 8, 900: 6, 902: 6, 905: 8, 918: 8, 921: 8, 933: 8, 934: 8, 935: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 975: 5, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1002: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1076: 8, 1077: 8, 1082: 8, 1083: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1172: 8, 1175: 8, 1228: 8, 1235: 8, 1237: 8, 1279: 8, 1541: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1592: 8, 1593: 8, 1595: 8, 1649: 8, 1653: 8, 1654: 8, 1655: 8, 1775: 8, 1777: 8, 1779: 8, 1786: 8, 1787: 8, 1788: 8, 1789: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 | 
			
		
	
		
		
			
				
					
					|  |  |  |   }] |  |  |  |   }] | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | # Don't use theses fingerprints for fingerprinting, they are still needed for ECU detection |  |  |  | # Don't use theses fingerprints for fingerprinting, they are still needed for ECU detection | 
			
		
	
		
		
			
				
					
					|  |  |  | IGNORED_FINGERPRINTS = [CAR.RAV4H_TSS2, CAR.HIGHLANDERH_TSS2, CAR.LEXUS_RXH_TSS2] |  |  |  | IGNORED_FINGERPRINTS = [CAR.RAV4H_TSS2, CAR.HIGHLANDERH_TSS2, CAR.LEXUS_RXH_TSS2, CAR.PRIUS_TSS2] | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | FW_VERSIONS = { |  |  |  | FW_VERSIONS = { | 
			
		
	
		
		
			
				
					
					|  |  |  |   CAR.AVALON: { |  |  |  |   CAR.AVALON: { | 
			
		
	
	
		
		
			
				
					|  |  | @ -1221,6 +1224,23 @@ FW_VERSIONS = { | 
			
		
	
		
		
			
				
					
					|  |  |  |       b'\x028646F4810100\x00\x00\x00\x008646G2601200\x00\x00\x00\x00', |  |  |  |       b'\x028646F4810100\x00\x00\x00\x008646G2601200\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |     ], |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, |  |  |  |   }, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   CAR.PRIUS_TSS2: { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (Ecu.engine, 0x700, None): [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       b'\x038966347C1000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00897CF4710101\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (Ecu.esp, 0x7b0, None): [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       b'F152647520\x00\x00\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (Ecu.eps, 0x7a1, None): [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       b'8965B47070\x00\x00\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (Ecu.fwdRadar, 0x750, 0xf): [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       b'\x018821F3301400\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (Ecu.fwdCamera, 0x750, 0x6d): [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       b'\x028646F4707000\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   }, | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | STEER_THRESHOLD = 100 |  |  |  | STEER_THRESHOLD = 100 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1253,8 +1273,9 @@ DBC = { | 
			
		
	
		
		
			
				
					
					|  |  |  |   CAR.LEXUS_CTH: dbc_dict('lexus_ct200h_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.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_NXH: dbc_dict('lexus_nx300h_2018_pt_generated', 'toyota_adas'), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   CAR.PRIUS_TSS2: dbc_dict('toyota_nodsu_hybrid_pt_generated', 'toyota_tss2_adas'), | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | NO_DSU_CAR = set([CAR.CHR, CAR.CHRH, CAR.CAMRY, CAR.CAMRYH, CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2]) |  |  |  | NO_DSU_CAR = set([CAR.CHR, CAR.CHRH, CAR.CAMRY, CAR.CAMRYH, CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2]) | 
			
		
	
		
		
			
				
					
					|  |  |  | TSS2_CAR = set([CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2]) |  |  |  | TSS2_CAR = set([CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2, CAR.PRIUS_TSS2]) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | NO_STOP_TIMER_CAR = set([CAR.RAV4H, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.SIENNA, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2])  # no resume button press required |  |  |  | NO_STOP_TIMER_CAR = set([CAR.RAV4H, CAR.HIGHLANDERH, CAR.HIGHLANDER, CAR.RAV4_TSS2, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.SIENNA, CAR.RAV4H_TSS2, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2, CAR.PRIUS_TSS2])  # no resume button press required | 
			
				
				
			
		
	
		
		
	
		
		
	
	
		
		
			
				
					|  |  | 
 |