From e4bdd010b700a4a85c27956e759dd5ee461d124a Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 15 Feb 2022 19:29:32 -0800 Subject: [PATCH] skip enums for now --- selfdrive/car/car_helpers.py | 5 +- selfdrive/car/chrysler/values.py | 18 +++---- selfdrive/car/ford/values.py | 6 +-- selfdrive/car/gm/values.py | 18 +++---- selfdrive/car/honda/values.py | 48 ++++++++--------- selfdrive/car/hyundai/values.py | 78 +++++++++++++-------------- selfdrive/car/mazda/values.py | 16 +++--- selfdrive/car/nissan/values.py | 14 +++-- selfdrive/car/subaru/values.py | 20 ++++--- selfdrive/car/tesla/values.py | 8 ++- selfdrive/car/toyota/values.py | 85 +++++++++++++++--------------- selfdrive/car/volkswagen/values.py | 49 +++++++++-------- 12 files changed, 173 insertions(+), 192 deletions(-) diff --git a/selfdrive/car/car_helpers.py b/selfdrive/car/car_helpers.py index b4a57179ac..c347f76627 100644 --- a/selfdrive/car/car_helpers.py +++ b/selfdrive/car/car_helpers.py @@ -1,5 +1,4 @@ import os -from enum import Enum from common.params import Params from common.basedir import BASEDIR @@ -55,7 +54,6 @@ def load_interfaces(brand_names): CarController = None for model_name in brand_names[brand_name]: - # print(model_name) ret[model_name] = (CarInterface, CarController, CarState) return ret @@ -69,8 +67,7 @@ def _get_interface_names(): try: brand_name = car_folder.split('/')[-1] model_names = __import__(f'selfdrive.car.{brand_name}.values', fromlist=['CAR']).CAR - if not issubclass(model_names, Enum): # TODO: remove exception - model_names = [getattr(model_names, c) for c in model_names.__dict__.keys() if not c.startswith("__")] + model_names = [getattr(model_names, c) for c in model_names.__dict__.keys() if not c.startswith("__")] brand_names[brand_name] = model_names except (ImportError, OSError): pass diff --git a/selfdrive/car/chrysler/values.py b/selfdrive/car/chrysler/values.py index 21b4444738..3074ed6071 100644 --- a/selfdrive/car/chrysler/values.py +++ b/selfdrive/car/chrysler/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from selfdrive.car import CarInfo, dbc_dict from cereal import car Ecu = car.CarParams.Ecu @@ -11,14 +9,14 @@ class CarControllerParams: STEER_ERROR_MAX = 80 -class CAR(Enum): - PACIFICA_2017_HYBRID = 0 - PACIFICA_2018_HYBRID = 1 - PACIFICA_2019_HYBRID = 2 - PACIFICA_2018 = 3 - PACIFICA_2020 = 4 - JEEP_CHEROKEE = 5 - JEEP_CHEROKEE_2019 = 6 +class CAR: + PACIFICA_2017_HYBRID = "CHRYSLER PACIFICA HYBRID 2017" + PACIFICA_2018_HYBRID = "CHRYSLER PACIFICA HYBRID 2018" + PACIFICA_2019_HYBRID = "CHRYSLER PACIFICA HYBRID 2019" + PACIFICA_2018 = "CHRYSLER PACIFICA 2018" # includes 2017 Pacifica + PACIFICA_2020 = "CHRYSLER PACIFICA 2020" + JEEP_CHEROKEE = "JEEP GRAND CHEROKEE V6 2018" # includes 2017 Trailhawk + JEEP_CHEROKEE_2019 = "JEEP GRAND CHEROKEE 2019" # includes 2020 Trailhawk CAR_INFO = { diff --git a/selfdrive/car/ford/values.py b/selfdrive/car/ford/values.py index c3100dab1e..749a8e4583 100644 --- a/selfdrive/car/ford/values.py +++ b/selfdrive/car/ford/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from selfdrive.car import CarInfo, dbc_dict from cereal import car Ecu = car.CarParams.Ecu @@ -7,8 +5,8 @@ Ecu = car.CarParams.Ecu MAX_ANGLE = 87. # make sure we never command the extremes (0xfff) which cause latching fault -class CAR(Enum): - FUSION = 0 +class CAR: + FUSION = "FORD FUSION 2018" CAR_INFO = { diff --git a/selfdrive/car/gm/values.py b/selfdrive/car/gm/values.py index 01e6013de3..abf4459b7e 100644 --- a/selfdrive/car/gm/values.py +++ b/selfdrive/car/gm/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from cereal import car from selfdrive.car import CarInfo, dbc_dict Ecu = car.CarParams.Ecu @@ -42,14 +40,14 @@ class CarControllerParams: STEER_THRESHOLD = 1.0 -class CAR(Enum): - HOLDEN_ASTRA = 0 - VOLT = 1 - CADILLAC_ATS = 2 - MALIBU = 3 - ACADIA = 4 - BUICK_REGAL = 5 - ESCALADE_ESV = 6 +class CAR: + HOLDEN_ASTRA = "HOLDEN ASTRA RS-V BK 2017" + VOLT = "CHEVROLET VOLT PREMIER 2017" + CADILLAC_ATS = "CADILLAC ATS Premium Performance 2018" + MALIBU = "CHEVROLET MALIBU PREMIER 2017" + ACADIA = "GMC ACADIA DENALI 2018" + BUICK_REGAL = "BUICK REGAL ESSENCE 2018" + ESCALADE_ESV = "CADILLAC ESCALADE ESV 2016" CAR_INFO = { diff --git a/selfdrive/car/honda/values.py b/selfdrive/car/honda/values.py index 480ec0f9bf..04bc6608e4 100644 --- a/selfdrive/car/honda/values.py +++ b/selfdrive/car/honda/values.py @@ -1,4 +1,4 @@ -from enum import Enum, IntFlag +from enum import IntFlag from cereal import car from selfdrive.car import CarInfo, dbc_dict @@ -63,29 +63,29 @@ VISUAL_HUD = { } -class CAR(Enum): - ACCORD = 0 - ACCORDH = 1 - CIVIC = 2 - CIVIC_BOSCH = 3 - CIVIC_BOSCH_DIESEL = 4 - ACURA_ILX = 5 - CRV = 6 - CRV_5G = 7 - CRV_EU = 8 - CRV_HYBRID = 9 - FIT = 10 - FREED = 11 - HRV = 12 - ODYSSEY = 13 - ODYSSEY_CHN = 14 - ACURA_RDX = 15 - ACURA_RDX_3G = 16 - PILOT = 17 - PASSPORT = 18 - RIDGELINE = 19 - INSIGHT = 20 - HONDA_E = 21 +class CAR: + ACCORD = "HONDA ACCORD 2018" + ACCORDH = "HONDA ACCORD HYBRID 2018" + CIVIC = "HONDA CIVIC 2016" + CIVIC_BOSCH = "HONDA CIVIC (BOSCH) 2019" + CIVIC_BOSCH_DIESEL = "HONDA CIVIC SEDAN 1.6 DIESEL 2019" + ACURA_ILX = "ACURA ILX 2016" + CRV = "HONDA CR-V 2016" + CRV_5G = "HONDA CR-V 2017" + CRV_EU = "HONDA CR-V EU 2016" + CRV_HYBRID = "HONDA CR-V HYBRID 2019" + FIT = "HONDA FIT 2018" + FREED = "HONDA FREED 2020" + HRV = "HONDA HRV 2019" + ODYSSEY = "HONDA ODYSSEY 2018" + ODYSSEY_CHN = "HONDA ODYSSEY CHN 2019" + ACURA_RDX = "ACURA RDX 2018" + ACURA_RDX_3G = "ACURA RDX 2020" + PILOT = "HONDA PILOT 2017" + PASSPORT = "HONDA PASSPORT 2021" + RIDGELINE = "HONDA RIDGELINE 2017" + INSIGHT = "HONDA INSIGHT 2019" + HONDA_E = "HONDA E 2020" CAR_INFO = { diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index cea100c01e..eb822b9a8a 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from cereal import car from selfdrive.car import CarInfo, dbc_dict Ecu = car.CarParams.Ecu @@ -25,49 +23,49 @@ class CarControllerParams: self.STEER_DRIVER_FACTOR = 1 -class CAR(Enum): +class CAR: # Hyundai - ELANTRA = 0 - ELANTRA_2021 = 1 - ELANTRA_HEV_2021 = 2 - ELANTRA_GT_I30 = 3 - HYUNDAI_GENESIS = 4 - IONIQ = 5 - IONIQ_HEV_2022 = 6 - IONIQ_EV_LTD = 7 - IONIQ_EV_2020 = 8 - IONIQ_PHEV = 9 - KONA = 10 - KONA_EV = 11 - KONA_HEV = 12 - SANTA_FE = 13 - SANTA_FE_2022 = 14 - SANTA_FE_HEV_2022 = 15 - SANTA_FE_PHEV_2022 = 16 - SONATA = 17 - SONATA_LF = 18 - PALISADE = 19 - VELOSTER = 20 - SONATA_HYBRID = 21 + ELANTRA = "HYUNDAI ELANTRA 2017" + ELANTRA_2021 = "HYUNDAI ELANTRA 2021" + ELANTRA_HEV_2021 = "HYUNDAI ELANTRA HYBRID 2021" + ELANTRA_GT_I30 = "HYUNDAI I30 N LINE 2019 & GT 2018 DCT" + 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 = "HYUNDAI IONIQ PHEV 2020" + KONA = "HYUNDAI KONA 2020" + KONA_EV = "HYUNDAI KONA ELECTRIC 2019" + 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" + PALISADE = "HYUNDAI PALISADE 2020" + VELOSTER = "HYUNDAI VELOSTER 2019" + SONATA_HYBRID = "HYUNDAI SONATA HYBRID 2021" # Kia - KIA_FORTE = 22 - KIA_K5_2021 = 23 - KIA_NIRO_EV = 24 - KIA_NIRO_HEV = 25 - KIA_NIRO_HEV_2021 = 26 - KIA_OPTIMA = 27 - KIA_OPTIMA_H = 28 - KIA_SELTOS = 29 - KIA_SORENTO = 30 - KIA_STINGER = 31 - KIA_CEED = 32 + KIA_FORTE = "KIA FORTE E 2018 & GT 2021" + KIA_K5_2021 = "KIA K5 2021" + KIA_NIRO_EV = "KIA NIRO EV 2020" + KIA_NIRO_HEV = "KIA NIRO HYBRID 2019" + KIA_NIRO_HEV_2021 = "KIA NIRO HYBRID 2021" + KIA_OPTIMA = "KIA OPTIMA SX 2019 & 2016" + KIA_OPTIMA_H = "KIA OPTIMA HYBRID 2017 & SPORTS 2019" + KIA_SELTOS = "KIA SELTOS 2021" + KIA_SORENTO = "KIA SORENTO GT LINE 2018" + KIA_STINGER = "KIA STINGER GT2 2018" + KIA_CEED = "KIA CEED INTRO ED 2019" # Genesis - GENESIS_G70 = 33 - GENESIS_G70_2020 = 34 - GENESIS_G80 = 35 - GENESIS_G90 = 36 + GENESIS_G70 = "GENESIS G70 2018" + GENESIS_G70_2020 = "GENESIS G70 2020" + GENESIS_G80 = "GENESIS G80 2017" + GENESIS_G90 = "GENESIS G90 2017" CAR_INFO = { diff --git a/selfdrive/car/mazda/values.py b/selfdrive/car/mazda/values.py index 026b73007d..5f76c68a2d 100644 --- a/selfdrive/car/mazda/values.py +++ b/selfdrive/car/mazda/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from selfdrive.car import CarInfo, dbc_dict from cereal import car Ecu = car.CarParams.Ecu @@ -17,13 +15,13 @@ class CarControllerParams: STEER_ERROR_MAX = 350 # max delta between torque cmd and torque motor -class CAR(Enum): - CX5 = 0 - CX9 = 1 - MAZDA3 = 2 - MAZDA6 = 3 - CX9_2021 = 4 - CX5_2022 = 5 +class CAR: + CX5 = "MAZDA CX-5" + CX9 = "MAZDA CX-9" + MAZDA3 = "MAZDA 3" + MAZDA6 = "MAZDA 6" + CX9_2021 = "MAZDA CX-9 2021" + CX5_2022 = "MAZDA CX-5 2022" CAR_INFO = { diff --git a/selfdrive/car/nissan/values.py b/selfdrive/car/nissan/values.py index 23950a046a..0a0ba4b697 100644 --- a/selfdrive/car/nissan/values.py +++ b/selfdrive/car/nissan/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from selfdrive.car import CarInfo, dbc_dict from cereal import car Ecu = car.CarParams.Ecu @@ -13,14 +11,14 @@ class CarControllerParams: STEER_THRESHOLD = 1.0 -class CAR(Enum): - XTRAIL = 0 - LEAF = 1 +class CAR: + XTRAIL = "NISSAN X-TRAIL 2017" + LEAF = "NISSAN LEAF 2018" # Leaf with ADAS ECU found behind instrument cluster instead of glovebox # Currently the only known difference between them is the inverted seatbelt signal. - LEAF_IC = 2 - ROGUE = 3 - ALTIMA = 4 + LEAF_IC = "NISSAN LEAF 2018 Instrument Cluster" + ROGUE = "NISSAN ROGUE 2019" + ALTIMA = "NISSAN ALTIMA 2020" CAR_INFO = { diff --git a/selfdrive/car/subaru/values.py b/selfdrive/car/subaru/values.py index 9b0a278089..11e1503d97 100644 --- a/selfdrive/car/subaru/values.py +++ b/selfdrive/car/subaru/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from selfdrive.car import CarInfo, dbc_dict from cereal import car Ecu = car.CarParams.Ecu @@ -18,15 +16,15 @@ class CarControllerParams: self.STEER_DRIVER_FACTOR = 1 # from dbc -class CAR(Enum): - ASCENT = 0 - IMPREZA = 1 - IMPREZA_2020 = 2 - FORESTER = 3 - FORESTER_PREGLOBAL = 4 - LEGACY_PREGLOBAL = 5 - OUTBACK_PREGLOBAL = 6 - OUTBACK_PREGLOBAL_2018 = 7 +class CAR: + ASCENT = "SUBARU ASCENT LIMITED 2019" + IMPREZA = "SUBARU IMPREZA LIMITED 2019" + IMPREZA_2020 = "SUBARU IMPREZA SPORT 2020" + FORESTER = "SUBARU FORESTER 2019" + FORESTER_PREGLOBAL = "SUBARU FORESTER 2017 - 2018" + LEGACY_PREGLOBAL = "SUBARU LEGACY 2015 - 2018" + OUTBACK_PREGLOBAL = "SUBARU OUTBACK 2015 - 2017" + OUTBACK_PREGLOBAL_2018 = "SUBARU OUTBACK 2018 - 2019" CAR_INFO = { diff --git a/selfdrive/car/tesla/values.py b/selfdrive/car/tesla/values.py index 961144a9c3..61b785e05d 100644 --- a/selfdrive/car/tesla/values.py +++ b/selfdrive/car/tesla/values.py @@ -1,5 +1,3 @@ -from enum import Enum - from collections import namedtuple from selfdrive.car import CarInfo, dbc_dict from cereal import car @@ -8,9 +6,9 @@ Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values']) AngleRateLimit = namedtuple('AngleRateLimit', ['speed_points', 'max_angle_diff_points']) -class CAR(Enum): - AP1_MODELS = 0 - AP2_MODELS = 1 +class CAR: + AP1_MODELS = 'TESLA AP1 MODEL S' + AP2_MODELS = 'TESLA AP2 MODEL S' CAR_INFO = { diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 978088154c..0bb94d5246 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -1,5 +1,5 @@ from collections import defaultdict -from enum import Enum, IntFlag +from enum import IntFlag from cereal import car from selfdrive.car import dbc_dict, CarInfo @@ -24,50 +24,51 @@ class ToyotaFlags(IntFlag): HYBRID = 1 -class CAR(Enum): +class CAR: # Toyota - ALPHARD_TSS2 = 0 - AVALON = 1 - AVALON_2019 = 2 - AVALONH_2019 = 3 - AVALON_TSS2 = 4 - CAMRY = 5 - CAMRYH = 6 - CAMRY_TSS2 = 7 - CAMRYH_TSS2 = 8 - CHR = 9 - CHRH = 10 - COROLLA = 11 - COROLLA_TSS2 = 12 - COROLLAH_TSS2 = 13 - HIGHLANDER = 14 - HIGHLANDER_TSS2 = 15 - HIGHLANDERH = 16 - HIGHLANDERH_TSS2 = 17 - PRIUS = 18 - PRIUS_V = 19 - PRIUS_TSS2 = 20 - RAV4 = 21 - RAV4H = 22 - RAV4_TSS2 = 23 - RAV4H_TSS2 = 24 - MIRAI = 25 - SIENNA = 26 + ALPHARD_TSS2 = "TOYOTA ALPHARD 2020" + AVALON = "TOYOTA AVALON 2016" + AVALON_2019 = "TOYOTA AVALON 2019" + AVALONH_2019 = "TOYOTA AVALON HYBRID 2019" + AVALON_TSS2 = "TOYOTA AVALON 2022" + CAMRY = "TOYOTA CAMRY 2018" + CAMRYH = "TOYOTA CAMRY HYBRID 2018" + CAMRY_TSS2 = "TOYOTA CAMRY 2021" # TSS 2.5 + CAMRYH_TSS2 = "TOYOTA CAMRY HYBRID 2021" + CHR = "TOYOTA C-HR 2018" + CHRH = "TOYOTA C-HR HYBRID 2018" + COROLLA = "TOYOTA COROLLA 2017" + COROLLA_TSS2 = "TOYOTA COROLLA TSS2 2019" + # LSS2 Lexus UX Hybrid is same as a TSS2 Corolla Hybrid + COROLLAH_TSS2 = "TOYOTA COROLLA HYBRID TSS2 2019" + HIGHLANDER = "TOYOTA HIGHLANDER 2017" + HIGHLANDER_TSS2 = "TOYOTA HIGHLANDER 2020" + 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" + RAV4_TSS2 = "TOYOTA RAV4 2019" + RAV4H_TSS2 = "TOYOTA RAV4 HYBRID 2019" + MIRAI = "TOYOTA MIRAI 2021" # TSS 2.5 + SIENNA = "TOYOTA SIENNA 2018" # Lexus - LEXUS_CTH = 27 - LEXUS_ESH = 28 - LEXUS_ES_TSS2 = 29 - LEXUS_ESH_TSS2 = 30 - LEXUS_IS = 31 - LEXUS_NX = 32 - LEXUS_NXH = 33 - LEXUS_NX_TSS2 = 33 - LEXUS_RC = 34 - LEXUS_RX = 35 - LEXUS_RXH = 36 - LEXUS_RX_TSS2 = 37 - LEXUS_RXH_TSS2 = 38 + LEXUS_CTH = "LEXUS CT HYBRID 2018" + LEXUS_ESH = "LEXUS ES HYBRID 2018" + LEXUS_ES_TSS2 = "LEXUS ES 2019" + LEXUS_ESH_TSS2 = "LEXUS ES HYBRID 2019" + LEXUS_IS = "LEXUS IS 2018" + LEXUS_NX = "LEXUS NX 2018" + LEXUS_NXH = "LEXUS NX HYBRID 2018" + LEXUS_NX_TSS2 = "LEXUS NX 2020" + LEXUS_RC = "LEXUS RC 2020" + LEXUS_RX = "LEXUS RX 2016" + LEXUS_RXH = "LEXUS RX HYBRID 2017" + LEXUS_RX_TSS2 = "LEXUS RX 2020" + LEXUS_RXH_TSS2 = "LEXUS RX HYBRID 2020" CAR_INFO = { diff --git a/selfdrive/car/volkswagen/values.py b/selfdrive/car/volkswagen/values.py index 50ec91e796..237bba15c2 100755 --- a/selfdrive/car/volkswagen/values.py +++ b/selfdrive/car/volkswagen/values.py @@ -1,5 +1,4 @@ from collections import defaultdict -from enum import Enum from typing import Dict from cereal import car @@ -63,30 +62,30 @@ MQB_LDW_MESSAGES = { # FW_VERSIONS for that existing CAR. # Exception: SEAT Leon and SEAT Ateca share a chassis code -class CAR(Enum): - ARTEON_MK1 = 0 # Chassis AN, Mk1 VW Arteon and variants - ATLAS_MK1 = 1 # Chassis CA, Mk1 VW Atlas and Atlas Cross Sport - GOLF_MK7 = 2 # Chassis 5G/AU/BA/BE, Mk7 VW Golf and variants - JETTA_MK7 = 3 # Chassis BU, Mk7 VW Jetta - PASSAT_MK8 = 4 # Chassis 3G, Mk8 VW Passat and variants - POLO_MK6 = 5 # Chassis AW, Mk6 VW Polo - TAOS_MK1 = 6 # Chassis B2, Mk1 VW Taos and Tharu - TCROSS_MK1 = 7 # Chassis C1, Mk1 VW T-Cross SWB and LWB variants - TIGUAN_MK2 = 8 # Chassis AD/BW, Mk2 VW Tiguan and variants - TOURAN_MK2 = 9 # Chassis 1T, Mk2 VW Touran and variants - TRANSPORTER_T61 = 10 # Chassis 7H/7L, T6-facelift Transporter/Multivan/Caravelle/California - TROC_MK1 = 11 # Chassis A1, Mk1 VW VW T-Roc and variants - AUDI_A3_MK3 = 12 # Chassis 8V/FF, Mk3 Audi A3 and variants - AUDI_Q2_MK1 = 13 # Chassis GA, Mk1 Audi Q2 (RoW) and Q2L (China only) - AUDI_Q3_MK2 = 14 # Chassis 8U/F3/FS, Mk2 Audi Q3 and variants - SEAT_ATECA_MK1 = 15 # Chassis 5F, Mk1 SEAT Ateca and CUPRA Ateca - SEAT_LEON_MK3 = 16 # Chassis 5F, Mk3 SEAT Leon and variants - SKODA_KAMIQ_MK1 = 17 # Chassis NW, Mk1 Skoda Kamiq - SKODA_KAROQ_MK1 = 18 # Chassis NU, Mk1 Skoda Karoq - SKODA_KODIAQ_MK1 = 19 # Chassis NS, Mk1 Skoda Kodiaq - SKODA_SCALA_MK1 = 20 # Chassis NW, Mk1 Skoda Scala and Skoda Kamiq - SKODA_SUPERB_MK3 = 21 # Chassis 3V/NP, Mk3 Skoda Superb and variants - SKODA_OCTAVIA_MK3 = 22 # Chassis NE, Mk3 Skoda Octavia and variants +class CAR: + ARTEON_MK1 = "VOLKSWAGEN ARTEON 1ST GEN" # Chassis AN, Mk1 VW Arteon and variants + ATLAS_MK1 = "VOLKSWAGEN ATLAS 1ST GEN" # Chassis CA, Mk1 VW Atlas and Atlas Cross Sport + GOLF_MK7 = "VOLKSWAGEN GOLF 7TH GEN" # Chassis 5G/AU/BA/BE, Mk7 VW Golf and variants + JETTA_MK7 = "VOLKSWAGEN JETTA 7TH GEN" # Chassis BU, Mk7 VW Jetta + PASSAT_MK8 = "VOLKSWAGEN PASSAT 8TH GEN" # Chassis 3G, Mk8 VW Passat and variants + POLO_MK6 = "VOLKSWAGEN POLO 6TH GEN" # Chassis AW, Mk6 VW Polo + TAOS_MK1 = "VOLKSWAGEN TAOS 1ST GEN" # Chassis B2, Mk1 VW Taos and Tharu + TCROSS_MK1 = "VOLKSWAGEN T-CROSS 1ST GEN" # Chassis C1, Mk1 VW T-Cross SWB and LWB variants + TIGUAN_MK2 = "VOLKSWAGEN TIGUAN 2ND GEN" # Chassis AD/BW, Mk2 VW Tiguan and variants + TOURAN_MK2 = "VOLKSWAGEN TOURAN 2ND GEN" # Chassis 1T, Mk2 VW Touran and variants + TRANSPORTER_T61 = "VOLKSWAGEN TRANSPORTER T6.1" # Chassis 7H/7L, T6-facelift Transporter/Multivan/Caravelle/California + TROC_MK1 = "VOLKSWAGEN T-ROC 1ST GEN" # Chassis A1, Mk1 VW VW T-Roc and variants + AUDI_A3_MK3 = "AUDI A3 3RD GEN" # Chassis 8V/FF, Mk3 Audi A3 and variants + AUDI_Q2_MK1 = "AUDI Q2 1ST GEN" # Chassis GA, Mk1 Audi Q2 (RoW) and Q2L (China only) + AUDI_Q3_MK2 = "AUDI Q3 2ND GEN" # Chassis 8U/F3/FS, Mk2 Audi Q3 and variants + SEAT_ATECA_MK1 = "SEAT ATECA 1ST GEN" # Chassis 5F, Mk1 SEAT Ateca and CUPRA Ateca + SEAT_LEON_MK3 = "SEAT LEON 3RD GEN" # Chassis 5F, Mk3 SEAT Leon and variants + SKODA_KAMIQ_MK1 = "SKODA KAMIQ 1ST GEN" # Chassis NW, Mk1 Skoda Kamiq + SKODA_KAROQ_MK1 = "SKODA KAROQ 1ST GEN" # Chassis NU, Mk1 Skoda Karoq + SKODA_KODIAQ_MK1 = "SKODA KODIAQ 1ST GEN" # Chassis NS, Mk1 Skoda Kodiaq + SKODA_SCALA_MK1 = "SKODA SCALA 1ST GEN" # Chassis NW, Mk1 Skoda Scala and Skoda Kamiq + SKODA_SUPERB_MK3 = "SKODA SUPERB 3RD GEN" # Chassis 3V/NP, Mk3 Skoda Superb and variants + SKODA_OCTAVIA_MK3 = "SKODA OCTAVIA 3RD GEN" # Chassis NE, Mk3 Skoda Octavia and variants CAR_INFO = {