|
|
|
@ -1,11 +1,11 @@ |
|
|
|
|
import re |
|
|
|
|
from dataclasses import dataclass |
|
|
|
|
from enum import Enum, IntFlag, StrEnum |
|
|
|
|
from dataclasses import dataclass, field |
|
|
|
|
from enum import Enum, IntFlag |
|
|
|
|
|
|
|
|
|
from cereal import car |
|
|
|
|
from panda.python import uds |
|
|
|
|
from openpilot.common.conversions import Conversions as CV |
|
|
|
|
from openpilot.selfdrive.car import dbc_dict |
|
|
|
|
from openpilot.selfdrive.car import DbcDict, PlatformConfig, Platforms, dbc_dict |
|
|
|
|
from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarInfo, CarParts, Column |
|
|
|
|
from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, p16 |
|
|
|
|
|
|
|
|
@ -52,92 +52,46 @@ class CarControllerParams: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class HyundaiFlags(IntFlag): |
|
|
|
|
# Dynamic Flags |
|
|
|
|
CANFD_HDA2 = 1 |
|
|
|
|
CANFD_ALT_BUTTONS = 2 |
|
|
|
|
CANFD_ALT_GEARS = 4 |
|
|
|
|
CANFD_CAMERA_SCC = 8 |
|
|
|
|
CANFD_ALT_GEARS = 2 ** 2 |
|
|
|
|
CANFD_CAMERA_SCC = 2 ** 3 |
|
|
|
|
|
|
|
|
|
ALT_LIMITS = 16 |
|
|
|
|
ENABLE_BLINKERS = 32 |
|
|
|
|
CANFD_ALT_GEARS_2 = 64 |
|
|
|
|
SEND_LFA = 128 |
|
|
|
|
USE_FCA = 256 |
|
|
|
|
CANFD_HDA2_ALT_STEERING = 512 |
|
|
|
|
HYBRID = 1024 |
|
|
|
|
EV = 2048 |
|
|
|
|
ALT_LIMITS = 2 ** 4 |
|
|
|
|
ENABLE_BLINKERS = 2 ** 5 |
|
|
|
|
CANFD_ALT_GEARS_2 = 2 ** 6 |
|
|
|
|
SEND_LFA = 2 ** 7 |
|
|
|
|
USE_FCA = 2 ** 8 |
|
|
|
|
CANFD_HDA2_ALT_STEERING = 2 ** 9 |
|
|
|
|
|
|
|
|
|
# these cars use a different gas signal |
|
|
|
|
HYBRID = 2 ** 10 |
|
|
|
|
EV = 2 ** 11 |
|
|
|
|
|
|
|
|
|
class CAR(StrEnum): |
|
|
|
|
# Hyundai |
|
|
|
|
AZERA_6TH_GEN = "HYUNDAI AZERA 6TH GEN" |
|
|
|
|
AZERA_HEV_6TH_GEN = "HYUNDAI AZERA HYBRID 6TH GEN" |
|
|
|
|
ELANTRA = "HYUNDAI ELANTRA 2017" |
|
|
|
|
ELANTRA_GT_I30 = "HYUNDAI I30 N LINE 2019 & GT 2018 DCT" |
|
|
|
|
ELANTRA_2021 = "HYUNDAI ELANTRA 2021" |
|
|
|
|
ELANTRA_HEV_2021 = "HYUNDAI ELANTRA HYBRID 2021" |
|
|
|
|
HYUNDAI_GENESIS = "HYUNDAI GENESIS 2015-2016" |
|
|
|
|
IONIQ = "HYUNDAI IONIQ HYBRID 2017-2019" |
|
|
|
|
IONIQ_HEV_2022 = "HYUNDAI IONIQ HYBRID 2020-2022" |
|
|
|
|
IONIQ_EV_LTD = "HYUNDAI IONIQ ELECTRIC LIMITED 2019" |
|
|
|
|
IONIQ_EV_2020 = "HYUNDAI IONIQ ELECTRIC 2020" |
|
|
|
|
IONIQ_PHEV_2019 = "HYUNDAI IONIQ PLUG-IN HYBRID 2019" |
|
|
|
|
IONIQ_PHEV = "HYUNDAI IONIQ PHEV 2020" |
|
|
|
|
KONA = "HYUNDAI KONA 2020" |
|
|
|
|
KONA_EV = "HYUNDAI KONA ELECTRIC 2019" |
|
|
|
|
KONA_EV_2022 = "HYUNDAI KONA ELECTRIC 2022" |
|
|
|
|
KONA_EV_2ND_GEN = "HYUNDAI KONA ELECTRIC 2ND GEN" |
|
|
|
|
KONA_HEV = "HYUNDAI KONA HYBRID 2020" |
|
|
|
|
SANTA_FE = "HYUNDAI SANTA FE 2019" |
|
|
|
|
SANTA_FE_2022 = "HYUNDAI SANTA FE 2022" |
|
|
|
|
SANTA_FE_HEV_2022 = "HYUNDAI SANTA FE HYBRID 2022" |
|
|
|
|
SANTA_FE_PHEV_2022 = "HYUNDAI SANTA FE PlUG-IN HYBRID 2022" |
|
|
|
|
SONATA = "HYUNDAI SONATA 2020" |
|
|
|
|
SONATA_LF = "HYUNDAI SONATA 2019" |
|
|
|
|
STARIA_4TH_GEN = "HYUNDAI STARIA 4TH GEN" |
|
|
|
|
TUCSON = "HYUNDAI TUCSON 2019" |
|
|
|
|
PALISADE = "HYUNDAI PALISADE 2020" |
|
|
|
|
VELOSTER = "HYUNDAI VELOSTER 2019" |
|
|
|
|
SONATA_HYBRID = "HYUNDAI SONATA HYBRID 2021" |
|
|
|
|
IONIQ_5 = "HYUNDAI IONIQ 5 2022" |
|
|
|
|
IONIQ_6 = "HYUNDAI IONIQ 6 2023" |
|
|
|
|
TUCSON_4TH_GEN = "HYUNDAI TUCSON 4TH GEN" |
|
|
|
|
SANTA_CRUZ_1ST_GEN = "HYUNDAI SANTA CRUZ 1ST GEN" |
|
|
|
|
CUSTIN_1ST_GEN = "HYUNDAI CUSTIN 1ST GEN" |
|
|
|
|
# Static Flags |
|
|
|
|
|
|
|
|
|
# Kia |
|
|
|
|
KIA_FORTE = "KIA FORTE E 2018 & GT 2021" |
|
|
|
|
KIA_K5_2021 = "KIA K5 2021" |
|
|
|
|
KIA_K5_HEV_2020 = "KIA K5 HYBRID 2020" |
|
|
|
|
KIA_K8_HEV_1ST_GEN = "KIA K8 HYBRID 1ST GEN" |
|
|
|
|
KIA_NIRO_EV = "KIA NIRO EV 2020" |
|
|
|
|
KIA_NIRO_EV_2ND_GEN = "KIA NIRO EV 2ND GEN" |
|
|
|
|
KIA_NIRO_PHEV = "KIA NIRO HYBRID 2019" |
|
|
|
|
KIA_NIRO_PHEV_2022 = "KIA NIRO PLUG-IN HYBRID 2022" |
|
|
|
|
KIA_NIRO_HEV_2021 = "KIA NIRO HYBRID 2021" |
|
|
|
|
KIA_NIRO_HEV_2ND_GEN = "KIA NIRO HYBRID 2ND GEN" |
|
|
|
|
KIA_OPTIMA_G4 = "KIA OPTIMA 4TH GEN" |
|
|
|
|
KIA_OPTIMA_G4_FL = "KIA OPTIMA 4TH GEN FACELIFT" |
|
|
|
|
KIA_OPTIMA_H = "KIA OPTIMA HYBRID 2017 & SPORTS 2019" |
|
|
|
|
KIA_OPTIMA_H_G4_FL = "KIA OPTIMA HYBRID 4TH GEN FACELIFT" |
|
|
|
|
KIA_SELTOS = "KIA SELTOS 2021" |
|
|
|
|
KIA_SPORTAGE_5TH_GEN = "KIA SPORTAGE 5TH GEN" |
|
|
|
|
KIA_SORENTO = "KIA SORENTO GT LINE 2018" |
|
|
|
|
KIA_SORENTO_4TH_GEN = "KIA SORENTO 4TH GEN" |
|
|
|
|
KIA_SORENTO_HEV_4TH_GEN = "KIA SORENTO HYBRID 4TH GEN" |
|
|
|
|
KIA_STINGER = "KIA STINGER GT2 2018" |
|
|
|
|
KIA_STINGER_2022 = "KIA STINGER 2022" |
|
|
|
|
KIA_CEED = "KIA CEED INTRO ED 2019" |
|
|
|
|
KIA_EV6 = "KIA EV6 2022" |
|
|
|
|
KIA_CARNIVAL_4TH_GEN = "KIA CARNIVAL 4TH GEN" |
|
|
|
|
# If 0x500 is present on bus 1 it probably has a Mando radar outputting radar points. |
|
|
|
|
# If no points are outputted by default it might be possible to turn it on using selfdrive/debug/hyundai_enable_radar_points.py |
|
|
|
|
MANDO_RADAR = 2 ** 12 |
|
|
|
|
CANFD = 2 ** 13 |
|
|
|
|
|
|
|
|
|
# Genesis |
|
|
|
|
GENESIS_GV60_EV_1ST_GEN = "GENESIS GV60 ELECTRIC 1ST GEN" |
|
|
|
|
GENESIS_G70 = "GENESIS G70 2018" |
|
|
|
|
GENESIS_G70_2020 = "GENESIS G70 2020" |
|
|
|
|
GENESIS_GV70_1ST_GEN = "GENESIS GV70 1ST GEN" |
|
|
|
|
GENESIS_G80 = "GENESIS G80 2017" |
|
|
|
|
GENESIS_G90 = "GENESIS G90 2017" |
|
|
|
|
GENESIS_GV80 = "GENESIS GV80 2023" |
|
|
|
|
# The radar does SCC on these cars when HDA I, rather than the camera |
|
|
|
|
RADAR_SCC = 2 ** 14 |
|
|
|
|
CAMERA_SCC = 2 ** 15 |
|
|
|
|
CHECKSUM_CRC8 = 2 ** 16 |
|
|
|
|
CHECKSUM_6B = 2 ** 17 |
|
|
|
|
|
|
|
|
|
# these cars require a special panda safety mode due to missing counters and checksums in the messages |
|
|
|
|
LEGACY = 2 ** 18 |
|
|
|
|
|
|
|
|
|
# these cars have not been verified to work with longitudinal yet - radar disable, sending correct messages, etc. |
|
|
|
|
UNSUPPORTED_LONGITUDINAL = 2 ** 19 |
|
|
|
|
|
|
|
|
|
CANFD_NO_RADAR_DISABLE = 2 ** 20 |
|
|
|
|
|
|
|
|
|
CLUSTER_GEARS = 2 ** 21 |
|
|
|
|
TCU_GEARS = 2 ** 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Footnote(Enum): |
|
|
|
@ -152,160 +106,425 @@ class HyundaiCarInfo(CarInfo): |
|
|
|
|
package: str = "Smart Cruise Control (SCC)" |
|
|
|
|
|
|
|
|
|
def init_make(self, CP: car.CarParams): |
|
|
|
|
if CP.carFingerprint in CANFD_CAR: |
|
|
|
|
if CP.flags & HyundaiFlags.CANFD: |
|
|
|
|
self.footnotes.insert(0, Footnote.CANFD) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CAR_INFO: dict[str, HyundaiCarInfo | list[HyundaiCarInfo] | None] = { |
|
|
|
|
CAR.AZERA_6TH_GEN: HyundaiCarInfo("Hyundai Azera 2022", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.AZERA_HEV_6TH_GEN: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Azera Hybrid 2019", "All", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Hyundai Azera Hybrid 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
], |
|
|
|
|
CAR.ELANTRA: [ |
|
|
|
|
# TODO: 2017-18 could be Hyundai G |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra 2017-18", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_b])), |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra 2019", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
], |
|
|
|
|
CAR.ELANTRA_GT_I30: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra GT 2017-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
HyundaiCarInfo("Hyundai i30 2017-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
], |
|
|
|
|
CAR.ELANTRA_2021: HyundaiCarInfo("Hyundai Elantra 2021-23", video_link="https://youtu.be/_EdYQtV52-c", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.ELANTRA_HEV_2021: HyundaiCarInfo("Hyundai Elantra Hybrid 2021-23", video_link="https://youtu.be/_EdYQtV52-c", |
|
|
|
|
@dataclass |
|
|
|
|
class HyundaiPlatformConfig(PlatformConfig): |
|
|
|
|
dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict("hyundai_kia_generic", None)) |
|
|
|
|
|
|
|
|
|
def init(self): |
|
|
|
|
if self.flags & HyundaiFlags.MANDO_RADAR: |
|
|
|
|
self.dbc_dict = dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class HyundaiCanFDPlatformConfig(HyundaiPlatformConfig): |
|
|
|
|
dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict("hyundai_canfd", None)) |
|
|
|
|
|
|
|
|
|
def init(self): |
|
|
|
|
super().init() |
|
|
|
|
self.flags |= HyundaiFlags.CANFD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CAR(Platforms): |
|
|
|
|
# Hyundai |
|
|
|
|
AZERA_6TH_GEN = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI AZERA 6TH GEN", |
|
|
|
|
HyundaiCarInfo("Hyundai Azera 2022", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
) |
|
|
|
|
AZERA_HEV_6TH_GEN = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI AZERA HYBRID 6TH GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Azera Hybrid 2019", "All", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Hyundai Azera Hybrid 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
ELANTRA = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI ELANTRA 2017", |
|
|
|
|
[ |
|
|
|
|
# TODO: 2017-18 could be Hyundai G |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra 2017-18", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_b])), |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra 2019", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.LEGACY | HyundaiFlags.CLUSTER_GEARS |
|
|
|
|
) |
|
|
|
|
ELANTRA_GT_I30 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI I30 N LINE 2019 & GT 2018 DCT", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra GT 2017-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
HyundaiCarInfo("Hyundai i30 2017-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.LEGACY | HyundaiFlags.CLUSTER_GEARS |
|
|
|
|
) |
|
|
|
|
ELANTRA_2021 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI ELANTRA 2021", |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra 2021-23", video_link="https://youtu.be/_EdYQtV52-c", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
ELANTRA_HEV_2021 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI ELANTRA HYBRID 2021", |
|
|
|
|
HyundaiCarInfo("Hyundai Elantra Hybrid 2021-23", video_link="https://youtu.be/_EdYQtV52-c", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.HYUNDAI_GENESIS: [ |
|
|
|
|
# TODO: check 2015 packages |
|
|
|
|
HyundaiCarInfo("Hyundai Genesis 2015-16", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_j])), |
|
|
|
|
HyundaiCarInfo("Genesis G80 2017", "All", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_j])), |
|
|
|
|
], |
|
|
|
|
CAR.IONIQ: HyundaiCarInfo("Hyundai Ioniq Hybrid 2017-19", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.IONIQ_HEV_2022: HyundaiCarInfo("Hyundai Ioniq Hybrid 2020-22", car_parts=CarParts.common([CarHarness.hyundai_h])), # TODO: confirm 2020-21 harness |
|
|
|
|
CAR.IONIQ_EV_LTD: HyundaiCarInfo("Hyundai Ioniq Electric 2019", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.IONIQ_EV_2020: HyundaiCarInfo("Hyundai Ioniq Electric 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
CAR.IONIQ_PHEV_2019: HyundaiCarInfo("Hyundai Ioniq Plug-in Hybrid 2019", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.IONIQ_PHEV: HyundaiCarInfo("Hyundai Ioniq Plug-in Hybrid 2020-22", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
CAR.KONA: HyundaiCarInfo("Hyundai Kona 2020", car_parts=CarParts.common([CarHarness.hyundai_b])), |
|
|
|
|
CAR.KONA_EV: HyundaiCarInfo("Hyundai Kona Electric 2018-21", car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
CAR.KONA_EV_2022: HyundaiCarInfo("Hyundai Kona Electric 2022-23", car_parts=CarParts.common([CarHarness.hyundai_o])), |
|
|
|
|
CAR.KONA_HEV: HyundaiCarInfo("Hyundai Kona Hybrid 2020", car_parts=CarParts.common([CarHarness.hyundai_i])), # TODO: check packages |
|
|
|
|
# TODO: this is the 2024 US MY, not yet released |
|
|
|
|
CAR.KONA_EV_2ND_GEN: HyundaiCarInfo("Hyundai Kona Electric (with HDA II, Korea only) 2023", video_link="https://www.youtube.com/watch?v=U2fOCmcQ8hw", |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
HYUNDAI_GENESIS = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI GENESIS 2015-2016", |
|
|
|
|
[ |
|
|
|
|
# TODO: check 2015 packages |
|
|
|
|
HyundaiCarInfo("Hyundai Genesis 2015-16", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_j])), |
|
|
|
|
HyundaiCarInfo("Genesis G80 2017", "All", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_j])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_6B | HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
IONIQ = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ HYBRID 2017-2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Hybrid 2017-19", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
IONIQ_HEV_2022 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ HYBRID 2020-2022", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Hybrid 2020-22", car_parts=CarParts.common([CarHarness.hyundai_h])), # TODO: confirm 2020-21 harness, |
|
|
|
|
flags=HyundaiFlags.HYBRID | HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
IONIQ_EV_LTD = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ ELECTRIC LIMITED 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Electric 2019", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.EV | HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
IONIQ_EV_2020 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ ELECTRIC 2020", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Electric 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
IONIQ_PHEV_2019 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ PLUG-IN HYBRID 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Plug-in Hybrid 2019", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
IONIQ_PHEV = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ PHEV 2020", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq Plug-in Hybrid 2020-22", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
KONA = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI KONA 2020", |
|
|
|
|
HyundaiCarInfo("Hyundai Kona 2020", car_parts=CarParts.common([CarHarness.hyundai_b])), |
|
|
|
|
flags=HyundaiFlags.CLUSTER_GEARS |
|
|
|
|
) |
|
|
|
|
KONA_EV = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI KONA ELECTRIC 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Kona Electric 2018-21", car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
KONA_EV_2022 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI KONA ELECTRIC 2022", |
|
|
|
|
HyundaiCarInfo("Hyundai Kona Electric 2022-23", car_parts=CarParts.common([CarHarness.hyundai_o])), |
|
|
|
|
flags=HyundaiFlags.CAMERA_SCC | HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
KONA_EV_2ND_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI KONA ELECTRIC 2ND GEN", |
|
|
|
|
HyundaiCarInfo("Hyundai Kona Electric (with HDA II, Korea only) 2023", video_link="https://www.youtube.com/watch?v=U2fOCmcQ8hw", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_r])), |
|
|
|
|
CAR.SANTA_FE: HyundaiCarInfo("Hyundai Santa Fe 2019-20", "All", video_link="https://youtu.be/bjDR0YjM__s", |
|
|
|
|
flags=HyundaiFlags.EV | HyundaiFlags.CANFD_NO_RADAR_DISABLE |
|
|
|
|
) |
|
|
|
|
KONA_HEV = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI KONA HYBRID 2020", |
|
|
|
|
HyundaiCarInfo("Hyundai Kona Hybrid 2020", car_parts=CarParts.common([CarHarness.hyundai_i])), # TODO: check packages, |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
SANTA_FE = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SANTA FE 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Santa Fe 2019-20", "All", video_link="https://youtu.be/bjDR0YjM__s", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
CAR.SANTA_FE_2022: HyundaiCarInfo("Hyundai Santa Fe 2021-23", "All", video_link="https://youtu.be/VnHzSTygTS4", |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
SANTA_FE_2022 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SANTA FE 2022", |
|
|
|
|
HyundaiCarInfo("Hyundai Santa Fe 2021-23", "All", video_link="https://youtu.be/VnHzSTygTS4", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
CAR.SANTA_FE_HEV_2022: HyundaiCarInfo("Hyundai Santa Fe Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
CAR.SANTA_FE_PHEV_2022: HyundaiCarInfo("Hyundai Santa Fe Plug-in Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
CAR.SONATA: HyundaiCarInfo("Hyundai Sonata 2020-23", "All", video_link="https://www.youtube.com/watch?v=ix63r9kE3Fw", |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
SANTA_FE_HEV_2022 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SANTA FE HYBRID 2022", |
|
|
|
|
HyundaiCarInfo("Hyundai Santa Fe Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
SANTA_FE_PHEV_2022 = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SANTA FE PlUG-IN HYBRID 2022", |
|
|
|
|
HyundaiCarInfo("Hyundai Santa Fe Plug-in Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
SONATA = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SONATA 2020", |
|
|
|
|
HyundaiCarInfo("Hyundai Sonata 2020-23", "All", video_link="https://www.youtube.com/watch?v=ix63r9kE3Fw", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.STARIA_4TH_GEN: HyundaiCarInfo("Hyundai Staria 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.SONATA_LF: HyundaiCarInfo("Hyundai Sonata 2018-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
CAR.TUCSON: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2021", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson Diesel 2019", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
], |
|
|
|
|
CAR.PALISADE: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Palisade 2020-22", "All", video_link="https://youtu.be/TAnDqjF4fDY?t=456", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
HyundaiCarInfo("Kia Telluride 2020-22", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
], |
|
|
|
|
CAR.VELOSTER: HyundaiCarInfo("Hyundai Veloster 2019-20", min_enable_speed=5. * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
CAR.SONATA_HYBRID: HyundaiCarInfo("Hyundai Sonata Hybrid 2020-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.IONIQ_5: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (Southeast Asia only) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (without HDA II) 2022-23", "Highway Driving Assist", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (with HDA II) 2022-23", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
], |
|
|
|
|
CAR.IONIQ_6: [ |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
SONATA_LF = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SONATA 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Sonata 2018-19", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
flags=HyundaiFlags.UNSUPPORTED_LONGITUDINAL | HyundaiFlags.TCU_GEARS |
|
|
|
|
) |
|
|
|
|
STARIA_4TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI STARIA 4TH GEN", |
|
|
|
|
HyundaiCarInfo("Hyundai Staria 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
) |
|
|
|
|
TUCSON = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI TUCSON 2019", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2021", min_enable_speed=19 * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson Diesel 2019", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.TCU_GEARS |
|
|
|
|
) |
|
|
|
|
PALISADE = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI PALISADE 2020", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Palisade 2020-22", "All", video_link="https://youtu.be/TAnDqjF4fDY?t=456", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
HyundaiCarInfo("Kia Telluride 2020-22", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
VELOSTER = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI VELOSTER 2019", |
|
|
|
|
HyundaiCarInfo("Hyundai Veloster 2019-20", min_enable_speed=5. * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
flags=HyundaiFlags.LEGACY | HyundaiFlags.TCU_GEARS |
|
|
|
|
) |
|
|
|
|
SONATA_HYBRID = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI SONATA HYBRID 2021", |
|
|
|
|
HyundaiCarInfo("Hyundai Sonata Hybrid 2020-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
IONIQ_5 = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ 5 2022", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (Southeast Asia only) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (without HDA II) 2022-23", "Highway Driving Assist", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 5 (with HDA II) 2022-23", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
IONIQ_6 = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI IONIQ 6 2023", |
|
|
|
|
HyundaiCarInfo("Hyundai Ioniq 6 (with HDA II) 2023", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_p])), |
|
|
|
|
], |
|
|
|
|
CAR.TUCSON_4TH_GEN: [ |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2022", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson Hybrid 2022-24", "All", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
], |
|
|
|
|
CAR.SANTA_CRUZ_1ST_GEN: HyundaiCarInfo("Hyundai Santa Cruz 2022-23", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
CAR.CUSTIN_1ST_GEN: HyundaiCarInfo("Hyundai Custin 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
flags=HyundaiFlags.EV | HyundaiFlags.CANFD_NO_RADAR_DISABLE |
|
|
|
|
) |
|
|
|
|
TUCSON_4TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI TUCSON 4TH GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2022", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Hyundai Tucson Hybrid 2022-24", "All", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
SANTA_CRUZ_1ST_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"HYUNDAI SANTA CRUZ 1ST GEN", |
|
|
|
|
HyundaiCarInfo("Hyundai Santa Cruz 2022-23", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
) |
|
|
|
|
CUSTIN_1ST_GEN = HyundaiPlatformConfig( |
|
|
|
|
"HYUNDAI CUSTIN 1ST GEN", |
|
|
|
|
HyundaiCarInfo("Hyundai Custin 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Kia |
|
|
|
|
CAR.KIA_FORTE: [ |
|
|
|
|
KIA_FORTE = HyundaiPlatformConfig( |
|
|
|
|
"KIA FORTE E 2018 & GT 2021", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Forte 2019-21", car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
HyundaiCarInfo("Kia Forte 2023", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_K5_2021: HyundaiCarInfo("Kia K5 2021-24", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.KIA_K5_HEV_2020: HyundaiCarInfo("Kia K5 Hybrid 2020-22", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.KIA_K8_HEV_1ST_GEN: HyundaiCarInfo("Kia K8 Hybrid (with HDA II) 2023", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
CAR.KIA_NIRO_EV: [ |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2019", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2020", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2021", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2022", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_NIRO_EV_2ND_GEN: HyundaiCarInfo("Kia Niro EV 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.KIA_NIRO_PHEV: [ |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2018-19", "All", min_enable_speed=10. * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_NIRO_PHEV_2022: [ |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2021", "All", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2022", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_NIRO_HEV_2021: [ |
|
|
|
|
HyundaiCarInfo("Kia Niro Hybrid 2021", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Hybrid 2022", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_NIRO_HEV_2ND_GEN: HyundaiCarInfo("Kia Niro Hybrid 2023", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.KIA_OPTIMA_G4: HyundaiCarInfo("Kia Optima 2017", "Advanced Smart Cruise Control", |
|
|
|
|
] |
|
|
|
|
) |
|
|
|
|
KIA_K5_2021 = HyundaiPlatformConfig( |
|
|
|
|
"KIA K5 2021", |
|
|
|
|
HyundaiCarInfo("Kia K5 2021-24", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
KIA_K5_HEV_2020 = HyundaiPlatformConfig( |
|
|
|
|
"KIA K5 HYBRID 2020", |
|
|
|
|
HyundaiCarInfo("Kia K5 Hybrid 2020-22", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
KIA_K8_HEV_1ST_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA K8 HYBRID 1ST GEN", |
|
|
|
|
HyundaiCarInfo("Kia K8 Hybrid (with HDA II) 2023", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q])), |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_EV = HyundaiPlatformConfig( |
|
|
|
|
"KIA NIRO EV 2020", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2019", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2020", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2021", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2022", "All", video_link="https://www.youtube.com/watch?v=lT7zcG6ZpGo", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_EV_2ND_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA NIRO EV 2ND GEN", |
|
|
|
|
HyundaiCarInfo("Kia Niro EV 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_PHEV = HyundaiPlatformConfig( |
|
|
|
|
"KIA NIRO HYBRID 2019", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2018-19", "All", min_enable_speed=10. * CV.MPH_TO_MS, car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.HYBRID | HyundaiFlags.UNSUPPORTED_LONGITUDINAL |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_PHEV_2022 = HyundaiPlatformConfig( |
|
|
|
|
"KIA NIRO PLUG-IN HYBRID 2022", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2021", "All", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Plug-in Hybrid 2022", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.HYBRID | HyundaiFlags.MANDO_RADAR |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_HEV_2021 = HyundaiPlatformConfig( |
|
|
|
|
"KIA NIRO HYBRID 2021", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Niro Hybrid 2021", car_parts=CarParts.common([CarHarness.hyundai_d])), |
|
|
|
|
HyundaiCarInfo("Kia Niro Hybrid 2022", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.HYBRID |
|
|
|
|
) |
|
|
|
|
KIA_NIRO_HEV_2ND_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA NIRO HYBRID 2ND GEN", |
|
|
|
|
HyundaiCarInfo("Kia Niro Hybrid 2023", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
) |
|
|
|
|
KIA_OPTIMA_G4 = HyundaiPlatformConfig( |
|
|
|
|
"KIA OPTIMA 4TH GEN", |
|
|
|
|
HyundaiCarInfo("Kia Optima 2017", "Advanced Smart Cruise Control", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_b])), # TODO: may support 2016, 2018 |
|
|
|
|
CAR.KIA_OPTIMA_G4_FL: HyundaiCarInfo("Kia Optima 2019-20", car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
flags=HyundaiFlags.LEGACY | HyundaiFlags.TCU_GEARS |
|
|
|
|
) |
|
|
|
|
KIA_OPTIMA_G4_FL = HyundaiPlatformConfig( |
|
|
|
|
"KIA OPTIMA 4TH GEN FACELIFT", |
|
|
|
|
HyundaiCarInfo("Kia Optima 2019-20", car_parts=CarParts.common([CarHarness.hyundai_g])), |
|
|
|
|
flags=HyundaiFlags.UNSUPPORTED_LONGITUDINAL | HyundaiFlags.TCU_GEARS |
|
|
|
|
) |
|
|
|
|
# TODO: may support adjacent years. may have a non-zero minimum steering speed |
|
|
|
|
CAR.KIA_OPTIMA_H: HyundaiCarInfo("Kia Optima Hybrid 2017", "Advanced Smart Cruise Control", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.KIA_OPTIMA_H_G4_FL: HyundaiCarInfo("Kia Optima Hybrid 2019", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
CAR.KIA_SELTOS: HyundaiCarInfo("Kia Seltos 2021", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
CAR.KIA_SPORTAGE_5TH_GEN: [ |
|
|
|
|
HyundaiCarInfo("Kia Sportage 2023", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Kia Sportage Hybrid 2023", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_SORENTO: [ |
|
|
|
|
HyundaiCarInfo("Kia Sorento 2018", "Advanced Smart Cruise Control & LKAS", video_link="https://www.youtube.com/watch?v=Fkh3s6WHJz8", |
|
|
|
|
KIA_OPTIMA_H = HyundaiPlatformConfig( |
|
|
|
|
"KIA OPTIMA HYBRID 2017 & SPORTS 2019", |
|
|
|
|
HyundaiCarInfo("Kia Optima Hybrid 2017", "Advanced Smart Cruise Control", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
flags=HyundaiFlags.HYBRID | HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
KIA_OPTIMA_H_G4_FL = HyundaiPlatformConfig( |
|
|
|
|
"KIA OPTIMA HYBRID 4TH GEN FACELIFT", |
|
|
|
|
HyundaiCarInfo("Kia Optima Hybrid 2019", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
flags=HyundaiFlags.HYBRID | HyundaiFlags.UNSUPPORTED_LONGITUDINAL |
|
|
|
|
) |
|
|
|
|
KIA_SELTOS = HyundaiPlatformConfig( |
|
|
|
|
"KIA SELTOS 2021", |
|
|
|
|
HyundaiCarInfo("Kia Seltos 2021", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_CRC8 |
|
|
|
|
) |
|
|
|
|
KIA_SPORTAGE_5TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA SPORTAGE 5TH GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Sportage 2023", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
HyundaiCarInfo("Kia Sportage Hybrid 2023", car_parts=CarParts.common([CarHarness.hyundai_n])), |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
KIA_SORENTO = HyundaiPlatformConfig( |
|
|
|
|
"KIA SORENTO GT LINE 2018", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Sorento 2018", "Advanced Smart Cruise Control & LKAS", video_link="https://www.youtube.com/watch?v=Fkh3s6WHJz8", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
HyundaiCarInfo("Kia Sorento 2019", video_link="https://www.youtube.com/watch?v=Fkh3s6WHJz8", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_SORENTO_4TH_GEN: HyundaiCarInfo("Kia Sorento 2021-23", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.KIA_SORENTO_HEV_4TH_GEN: [ |
|
|
|
|
HyundaiCarInfo("Kia Sorento Hybrid 2021-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Kia Sorento Plug-in Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
], |
|
|
|
|
CAR.KIA_STINGER: HyundaiCarInfo("Kia Stinger 2018-20", video_link="https://www.youtube.com/watch?v=MJ94qoofYw0", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.KIA_STINGER_2022: HyundaiCarInfo("Kia Stinger 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
CAR.KIA_CEED: HyundaiCarInfo("Kia Ceed 2019", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
CAR.KIA_EV6: [ |
|
|
|
|
HyundaiCarInfo("Kia EV6 (Southeast Asia only) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_p])), |
|
|
|
|
HyundaiCarInfo("Kia EV6 (without HDA II) 2022-23", "Highway Driving Assist", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Kia EV6 (with HDA II) 2022-23", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_p])) |
|
|
|
|
], |
|
|
|
|
CAR.KIA_CARNIVAL_4TH_GEN: [ |
|
|
|
|
HyundaiCarInfo("Kia Carnival 2022-24", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Kia Carnival (China only) 2023", car_parts=CarParts.common([CarHarness.hyundai_k])) |
|
|
|
|
], |
|
|
|
|
HyundaiCarInfo("Kia Sorento 2019", video_link="https://www.youtube.com/watch?v=Fkh3s6WHJz8", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.CHECKSUM_6B | HyundaiFlags.UNSUPPORTED_LONGITUDINAL |
|
|
|
|
) |
|
|
|
|
KIA_SORENTO_4TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA SORENTO 4TH GEN", |
|
|
|
|
HyundaiCarInfo("Kia Sorento 2021-23", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
flags=HyundaiFlags.RADAR_SCC |
|
|
|
|
) |
|
|
|
|
KIA_SORENTO_HEV_4TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA SORENTO HYBRID 4TH GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Sorento Hybrid 2021-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Kia Sorento Plug-in Hybrid 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.RADAR_SCC |
|
|
|
|
) |
|
|
|
|
KIA_STINGER = HyundaiPlatformConfig( |
|
|
|
|
"KIA STINGER GT2 2018", |
|
|
|
|
HyundaiCarInfo("Kia Stinger 2018-20", video_link="https://www.youtube.com/watch?v=MJ94qoofYw0", |
|
|
|
|
car_parts=CarParts.common([CarHarness.hyundai_c])) |
|
|
|
|
) |
|
|
|
|
KIA_STINGER_2022 = HyundaiPlatformConfig( |
|
|
|
|
"KIA STINGER 2022", |
|
|
|
|
HyundaiCarInfo("Kia Stinger 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
) |
|
|
|
|
KIA_CEED = HyundaiPlatformConfig( |
|
|
|
|
"KIA CEED INTRO ED 2019", |
|
|
|
|
HyundaiCarInfo("Kia Ceed 2019", car_parts=CarParts.common([CarHarness.hyundai_e])), |
|
|
|
|
flags=HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
KIA_EV6 = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA EV6 2022", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia EV6 (Southeast Asia only) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_p])), |
|
|
|
|
HyundaiCarInfo("Kia EV6 (without HDA II) 2022-23", "Highway Driving Assist", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Kia EV6 (with HDA II) 2022-23", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_p])) |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
KIA_CARNIVAL_4TH_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"KIA CARNIVAL 4TH GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Kia Carnival 2022-24", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Kia Carnival (China only) 2023", car_parts=CarParts.common([CarHarness.hyundai_k])) |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.RADAR_SCC |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Genesis |
|
|
|
|
CAR.GENESIS_GV60_EV_1ST_GEN: [ |
|
|
|
|
HyundaiCarInfo("Genesis GV60 (Advanced Trim) 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Genesis GV60 (Performance Trim) 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
], |
|
|
|
|
CAR.GENESIS_G70: HyundaiCarInfo("Genesis G70 2018-19", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
CAR.GENESIS_G70_2020: HyundaiCarInfo("Genesis G70 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
CAR.GENESIS_GV70_1ST_GEN: [ |
|
|
|
|
HyundaiCarInfo("Genesis GV70 (2.5T Trim) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Genesis GV70 (3.5T Trim) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_m])), |
|
|
|
|
], |
|
|
|
|
CAR.GENESIS_G80: HyundaiCarInfo("Genesis G80 2018-19", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
CAR.GENESIS_G90: HyundaiCarInfo("Genesis G90 2017-18", "All", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
CAR.GENESIS_GV80: HyundaiCarInfo("Genesis GV80 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_m])), |
|
|
|
|
} |
|
|
|
|
GENESIS_GV60_EV_1ST_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"GENESIS GV60 ELECTRIC 1ST GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Genesis GV60 (Advanced Trim) 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_a])), |
|
|
|
|
HyundaiCarInfo("Genesis GV60 (Performance Trim) 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_k])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.EV |
|
|
|
|
) |
|
|
|
|
GENESIS_G70 = HyundaiPlatformConfig( |
|
|
|
|
"GENESIS G70 2018", |
|
|
|
|
HyundaiCarInfo("Genesis G70 2018-19", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
flags=HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
GENESIS_G70_2020 = HyundaiPlatformConfig( |
|
|
|
|
"GENESIS G70 2020", |
|
|
|
|
HyundaiCarInfo("Genesis G70 2020", "All", car_parts=CarParts.common([CarHarness.hyundai_f])), |
|
|
|
|
flags=HyundaiFlags.MANDO_RADAR |
|
|
|
|
) |
|
|
|
|
GENESIS_GV70_1ST_GEN = HyundaiCanFDPlatformConfig( |
|
|
|
|
"GENESIS GV70 1ST GEN", |
|
|
|
|
[ |
|
|
|
|
HyundaiCarInfo("Genesis GV70 (2.5T Trim) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_l])), |
|
|
|
|
HyundaiCarInfo("Genesis GV70 (3.5T Trim) 2022-23", "All", car_parts=CarParts.common([CarHarness.hyundai_m])), |
|
|
|
|
], |
|
|
|
|
flags=HyundaiFlags.RADAR_SCC |
|
|
|
|
) |
|
|
|
|
GENESIS_G80 = HyundaiPlatformConfig( |
|
|
|
|
"GENESIS G80 2017", |
|
|
|
|
HyundaiCarInfo("Genesis G80 2018-19", "All", car_parts=CarParts.common([CarHarness.hyundai_h])), |
|
|
|
|
flags=HyundaiFlags.LEGACY |
|
|
|
|
) |
|
|
|
|
GENESIS_G90 = HyundaiPlatformConfig( |
|
|
|
|
"GENESIS G90 2017", |
|
|
|
|
HyundaiCarInfo("Genesis G90 2017-18", "All", car_parts=CarParts.common([CarHarness.hyundai_c])), |
|
|
|
|
) |
|
|
|
|
GENESIS_GV80 = HyundaiCanFDPlatformConfig( |
|
|
|
|
"GENESIS GV80 2023", |
|
|
|
|
HyundaiCarInfo("Genesis GV80 2023", "All", car_parts=CarParts.common([CarHarness.hyundai_m])), |
|
|
|
|
flags=HyundaiFlags.RADAR_SCC |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Buttons: |
|
|
|
|
NONE = 0 |
|
|
|
@ -518,118 +737,37 @@ FW_QUERY_CONFIG = FwQueryConfig( |
|
|
|
|
match_fw_to_car_fuzzy=match_fw_to_car_fuzzy, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CHECKSUM = { |
|
|
|
|
"crc8": [CAR.SANTA_FE, CAR.SONATA, CAR.PALISADE, CAR.KIA_SELTOS, CAR.ELANTRA_2021, CAR.ELANTRA_HEV_2021, |
|
|
|
|
CAR.SONATA_HYBRID, CAR.SANTA_FE_2022, CAR.KIA_K5_2021, CAR.SANTA_FE_HEV_2022, CAR.SANTA_FE_PHEV_2022, |
|
|
|
|
CAR.KIA_K5_HEV_2020, CAR.CUSTIN_1ST_GEN], |
|
|
|
|
"6B": [CAR.KIA_SORENTO, CAR.HYUNDAI_GENESIS], |
|
|
|
|
"crc8": CAR.with_flags(HyundaiFlags.CHECKSUM_CRC8), |
|
|
|
|
"6B": CAR.with_flags(HyundaiFlags.CHECKSUM_6B), |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CAN_GEARS = { |
|
|
|
|
# which message has the gear. hybrid and EV use ELECT_GEAR |
|
|
|
|
"use_cluster_gears": {CAR.ELANTRA, CAR.ELANTRA_GT_I30, CAR.KONA}, |
|
|
|
|
"use_tcu_gears": {CAR.KIA_OPTIMA_G4, CAR.KIA_OPTIMA_G4_FL, CAR.SONATA_LF, CAR.VELOSTER, CAR.TUCSON}, |
|
|
|
|
"use_cluster_gears": CAR.with_flags(HyundaiFlags.CLUSTER_GEARS), |
|
|
|
|
"use_tcu_gears": CAR.with_flags(HyundaiFlags.TCU_GEARS), |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CANFD_CAR = {CAR.KIA_EV6, CAR.IONIQ_5, CAR.IONIQ_6, CAR.TUCSON_4TH_GEN, CAR.SANTA_CRUZ_1ST_GEN, CAR.KIA_SPORTAGE_5TH_GEN, CAR.GENESIS_GV70_1ST_GEN, |
|
|
|
|
CAR.GENESIS_GV60_EV_1ST_GEN, CAR.KIA_SORENTO_4TH_GEN, CAR.KIA_NIRO_HEV_2ND_GEN, CAR.KIA_NIRO_EV_2ND_GEN, |
|
|
|
|
CAR.GENESIS_GV80, CAR.KIA_CARNIVAL_4TH_GEN, CAR.KIA_SORENTO_HEV_4TH_GEN, CAR.KONA_EV_2ND_GEN, CAR.KIA_K8_HEV_1ST_GEN, |
|
|
|
|
CAR.STARIA_4TH_GEN} |
|
|
|
|
|
|
|
|
|
# The radar does SCC on these cars when HDA I, rather than the camera |
|
|
|
|
CANFD_RADAR_SCC_CAR = {CAR.GENESIS_GV70_1ST_GEN, CAR.KIA_SORENTO_4TH_GEN, CAR.GENESIS_GV80, CAR.KIA_CARNIVAL_4TH_GEN, CAR.KIA_SORENTO_HEV_4TH_GEN} |
|
|
|
|
CANFD_CAR = CAR.with_flags(HyundaiFlags.CANFD) |
|
|
|
|
CANFD_RADAR_SCC_CAR = CAR.with_flags(HyundaiFlags.RADAR_SCC) |
|
|
|
|
|
|
|
|
|
# These CAN FD cars do not accept communication control to disable the ADAS ECU, |
|
|
|
|
# responds with 0x7F2822 - 'conditions not correct' |
|
|
|
|
CANFD_UNSUPPORTED_LONGITUDINAL_CAR = {CAR.IONIQ_6, CAR.KONA_EV_2ND_GEN} |
|
|
|
|
CANFD_UNSUPPORTED_LONGITUDINAL_CAR = CAR.with_flags(HyundaiFlags.CANFD_NO_RADAR_DISABLE) |
|
|
|
|
|
|
|
|
|
# The camera does SCC on these cars, rather than the radar |
|
|
|
|
CAMERA_SCC_CAR = {CAR.KONA_EV_2022, } |
|
|
|
|
|
|
|
|
|
# these cars use a different gas signal |
|
|
|
|
HYBRID_CAR = {CAR.IONIQ_PHEV, CAR.ELANTRA_HEV_2021, CAR.KIA_NIRO_PHEV, CAR.KIA_NIRO_HEV_2021, CAR.SONATA_HYBRID, CAR.KONA_HEV, CAR.IONIQ, |
|
|
|
|
CAR.IONIQ_HEV_2022, CAR.SANTA_FE_HEV_2022, CAR.SANTA_FE_PHEV_2022, CAR.IONIQ_PHEV_2019, CAR.KIA_K5_HEV_2020, |
|
|
|
|
CAR.KIA_OPTIMA_H, CAR.KIA_OPTIMA_H_G4_FL, CAR.AZERA_HEV_6TH_GEN, CAR.KIA_NIRO_PHEV_2022} |
|
|
|
|
|
|
|
|
|
EV_CAR = {CAR.IONIQ_EV_2020, CAR.IONIQ_EV_LTD, CAR.KONA_EV, CAR.KIA_NIRO_EV, CAR.KIA_NIRO_EV_2ND_GEN, CAR.KONA_EV_2022, |
|
|
|
|
CAR.KIA_EV6, CAR.IONIQ_5, CAR.IONIQ_6, CAR.GENESIS_GV60_EV_1ST_GEN, CAR.KONA_EV_2ND_GEN} |
|
|
|
|
|
|
|
|
|
# these cars require a special panda safety mode due to missing counters and checksums in the messages |
|
|
|
|
LEGACY_SAFETY_MODE_CAR = {CAR.HYUNDAI_GENESIS, CAR.IONIQ_EV_LTD, CAR.KIA_OPTIMA_G4, |
|
|
|
|
CAR.VELOSTER, CAR.GENESIS_G70, CAR.GENESIS_G80, CAR.KIA_CEED, CAR.ELANTRA, CAR.IONIQ_HEV_2022, |
|
|
|
|
CAR.KIA_OPTIMA_H, CAR.ELANTRA_GT_I30} |
|
|
|
|
|
|
|
|
|
# these cars have not been verified to work with longitudinal yet - radar disable, sending correct messages, etc. |
|
|
|
|
UNSUPPORTED_LONGITUDINAL_CAR = LEGACY_SAFETY_MODE_CAR | {CAR.KIA_NIRO_PHEV, CAR.KIA_SORENTO, CAR.SONATA_LF, CAR.KIA_OPTIMA_G4_FL, |
|
|
|
|
CAR.KIA_OPTIMA_H_G4_FL} |
|
|
|
|
|
|
|
|
|
# If 0x500 is present on bus 1 it probably has a Mando radar outputting radar points. |
|
|
|
|
# If no points are outputted by default it might be possible to turn it on using selfdrive/debug/hyundai_enable_radar_points.py |
|
|
|
|
DBC = { |
|
|
|
|
CAR.AZERA_6TH_GEN: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.AZERA_HEV_6TH_GEN: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.ELANTRA: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.ELANTRA_GT_I30: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.ELANTRA_2021: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.ELANTRA_HEV_2021: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.GENESIS_G70: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.GENESIS_G70_2020: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.GENESIS_G80: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.GENESIS_G90: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.HYUNDAI_GENESIS: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.IONIQ_PHEV_2019: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.IONIQ_PHEV: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.IONIQ_EV_2020: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.IONIQ_EV_LTD: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.IONIQ: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.IONIQ_HEV_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_FORTE: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_K5_2021: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_K5_HEV_2020: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.KIA_NIRO_EV: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.KIA_NIRO_PHEV: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.KIA_NIRO_HEV_2021: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_OPTIMA_G4: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_OPTIMA_G4_FL: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_OPTIMA_H: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_OPTIMA_H_G4_FL: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_SELTOS: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_SORENTO: dbc_dict('hyundai_kia_generic', None), # Has 0x5XX messages, but different format |
|
|
|
|
CAR.KIA_STINGER: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_STINGER_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KONA: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KONA_EV: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KONA_EV_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KONA_HEV: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.SANTA_FE: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.SANTA_FE_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.SANTA_FE_HEV_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.SANTA_FE_PHEV_2022: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.SONATA: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.SONATA_LF: dbc_dict('hyundai_kia_generic', None), # Has 0x5XX messages, but different format |
|
|
|
|
CAR.TUCSON: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.PALISADE: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.VELOSTER: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_CEED: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_EV6: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.SONATA_HYBRID: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.TUCSON_4TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.IONIQ_5: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.IONIQ_6: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.SANTA_CRUZ_1ST_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_SPORTAGE_5TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.GENESIS_GV70_1ST_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.GENESIS_GV60_EV_1ST_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_SORENTO_4TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_NIRO_HEV_2ND_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_NIRO_EV_2ND_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.GENESIS_GV80: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_CARNIVAL_4TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_SORENTO_HEV_4TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KONA_EV_2ND_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.KIA_K8_HEV_1ST_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
CAR.CUSTIN_1ST_GEN: dbc_dict('hyundai_kia_generic', None), |
|
|
|
|
CAR.KIA_NIRO_PHEV_2022: dbc_dict('hyundai_kia_generic', 'hyundai_kia_mando_front_radar_generated'), |
|
|
|
|
CAR.STARIA_4TH_GEN: dbc_dict('hyundai_canfd', None), |
|
|
|
|
} |
|
|
|
|
CAMERA_SCC_CAR = CAR.with_flags(HyundaiFlags.CAMERA_SCC) |
|
|
|
|
|
|
|
|
|
HYBRID_CAR = CAR.with_flags(HyundaiFlags.HYBRID) |
|
|
|
|
|
|
|
|
|
EV_CAR = CAR.with_flags(HyundaiFlags.EV) |
|
|
|
|
|
|
|
|
|
LEGACY_SAFETY_MODE_CAR = CAR.with_flags(HyundaiFlags.LEGACY) |
|
|
|
|
|
|
|
|
|
UNSUPPORTED_LONGITUDINAL_CAR = CAR.with_flags(HyundaiFlags.LEGACY) | CAR.with_flags(HyundaiFlags.UNSUPPORTED_LONGITUDINAL) |
|
|
|
|
|
|
|
|
|
CAR_INFO = CAR.create_carinfo_map() |
|
|
|
|
DBC = CAR.create_dbc_map() |
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
CAR.print_debug(HyundaiFlags) |
|
|
|
|