from cereal import car
from selfdrive . car import dbc_dict
Ecu = car . CarParams . Ecu
VisualAlert = car . CarControl . HUDControl . VisualAlert
def get_hud_alerts ( visual_alert ) :
if visual_alert == VisualAlert . steerRequired :
return 5
else :
return 0
# Steer torque limits
class SteerLimitParams :
STEER_MAX = 255 # 409 is the max, 255 is stock
STEER_DELTA_UP = 3
STEER_DELTA_DOWN = 7
STEER_DRIVER_ALLOWANCE = 50
STEER_DRIVER_MULTIPLIER = 2
STEER_DRIVER_FACTOR = 1
class CAR :
ELANTRA = " HYUNDAI ELANTRA LIMITED ULTIMATE 2017 "
GENESIS = " HYUNDAI GENESIS 2018 "
KIA_OPTIMA = " KIA OPTIMA SX 2019 "
KIA_SORENTO = " KIA SORENTO GT LINE 2018 "
KIA_STINGER = " KIA STINGER GT2 2018 "
SANTA_FE = " HYUNDAI SANTA FE LIMITED 2019 "
class Buttons :
NONE = 0
RES_ACCEL = 1
SET_DECEL = 2
CANCEL = 4
FINGERPRINTS = {
CAR . ELANTRA : [ {
66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 356 : 4 , 399 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 897 : 8 , 832 : 8 , 899 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1170 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1314 : 8 , 1322 : 8 , 1345 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1363 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1415 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1440 : 8 , 1456 : 4 , 1472 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1530 : 8 , 1532 : 5 , 2001 : 8 , 2003 : 8 , 2004 : 8 , 2009 : 8 , 2012 : 8 , 2016 : 8 , 2017 : 8 , 2024 : 8 , 2025 : 8
} ] ,
CAR . GENESIS : [ {
67 : 8 , 68 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 7 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 5 , 897 : 8 , 902 : 8 , 903 : 6 , 916 : 8 , 1024 : 2 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1292 : 8 , 1312 : 8 , 1322 : 8 , 1331 : 8 , 1332 : 8 , 1333 : 8 , 1334 : 8 , 1335 : 8 , 1342 : 6 , 1345 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1371 : 8 , 1378 : 4 , 1384 : 5 , 1407 : 8 , 1419 : 8 , 1427 : 6 , 1434 : 2 , 1456 : 4
} ,
{
67 : 8 , 68 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 7 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 5 , 897 : 8 , 902 : 8 , 903 : 6 , 916 : 8 , 1024 : 2 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1281 : 3 , 1287 : 4 , 1292 : 8 , 1312 : 8 , 1322 : 8 , 1331 : 8 , 1332 : 8 , 1333 : 8 , 1334 : 8 , 1335 : 8 , 1345 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1378 : 4 , 1379 : 8 , 1384 : 5 , 1407 : 8 , 1419 : 8 , 1427 : 6 , 1434 : 2 , 1456 : 4
} ] ,
CAR . KIA_OPTIMA : [ {
64 : 8 , 66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 356 : 4 , 399 : 8 , 447 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 832 : 8 , 884 : 8 , 897 : 8 , 899 : 8 , 902 : 8 , 903 : 6 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1186 : 2 , 1191 : 2 , 1253 : 8 , 1254 : 8 , 1255 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1331 : 8 , 1332 : 8 , 1333 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1363 : 8 , 1365 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1414 : 3 , 1415 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1440 : 8 , 1456 : 4 , 1470 : 8 , 1472 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1530 : 8 , 1532 : 5 , 1952 : 8 , 1960 : 8 , 1988 : 8 , 1996 : 8 , 2001 : 8 , 2004 : 8 , 2008 : 8 , 2009 : 8 , 2012 : 8 , 2016 : 8 , 2017 : 8 , 2024 : 8 , 2025 : 8
} ] ,
CAR . KIA_SORENTO : [ {
67 : 8 , 68 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 903 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1331 : 8 , 1332 : 8 , 1333 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1371 : 8 , 1384 : 8 , 1407 : 8 , 1411 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1444 : 8 , 1456 : 4 , 1470 : 8 , 1489 : 1
} ] ,
CAR . KIA_STINGER : [ {
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 359 : 8 , 544 : 8 , 576 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1281 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1378 : 4 , 1379 : 8 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1456 : 4 , 1470 : 8
} ] ,
CAR . SANTA_FE : [ {
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 6 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1155 : 8 , 1156 : 8 , 1162 : 8 , 1164 : 8 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1183 : 8 , 1186 : 2 , 1191 : 2 , 1227 : 8 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1379 : 8 , 1384 : 8 , 1407 : 8 , 1414 : 3 , 1419 : 8 , 1427 : 6 , 1456 : 4 , 1470 : 8
} ,
{
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 6 , 764 : 8 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1155 : 8 , 1162 : 8 , 1164 : 8 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1180 : 8 , 1183 : 8 , 1186 : 2 , 1227 : 8 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1371 : 8 , 1378 : 8 , 1384 : 8 , 1407 : 8 , 1414 : 3 , 1419 : 8 , 1427 : 6 , 1456 : 4 , 1470 : 8 , 1988 : 8 , 2000 : 8 , 2004 : 8 , 2008 : 8 , 2012 : 8
}
] ,
}
ECU_FINGERPRINT = {
Ecu . fwdCamera : [ 832 , 1156 , 1191 , 1342 ]
}
CHECKSUM = {
" crc8 " : [ CAR . SANTA_FE ] ,
" 6B " : [ CAR . KIA_SORENTO , CAR . GENESIS ] ,
" 7B " : [ CAR . KIA_STINGER , CAR . ELANTRA , CAR . KIA_OPTIMA ] ,
}
FEATURES = {
" use_cluster_gears " : [ CAR . ELANTRA ] , # Use Cluster for Gear Selection, rather than Transmission
" use_tcu_gears " : [ CAR . KIA_OPTIMA ] , # Use TCU Message for Gear Selection
}
DBC = {
CAR . ELANTRA : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . KIA_OPTIMA : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . KIA_SORENTO : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . KIA_STINGER : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . SANTA_FE : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
}
STEER_THRESHOLD = 100