diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index b483bdb99b..0f673c18d3 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -7,7 +7,7 @@ from common.numpy_fast import clip # kg of standard extra cargo to count for drive, gas, etc... STD_CARGO_KG = 136. -CarInfo = namedtuple('CarInfo', ['name', 'years', 'supported_package'], defaults=('All',)) +CarInfo = namedtuple('CarInfo', ['name', 'years', 'package']) def gen_empty_fingerprint(): diff --git a/selfdrive/car/ford/values.py b/selfdrive/car/ford/values.py index 749a8e4583..4a229d0cde 100644 --- a/selfdrive/car/ford/values.py +++ b/selfdrive/car/ford/values.py @@ -10,7 +10,7 @@ class CAR: CAR_INFO = { - CAR.FUSION: CarInfo("Ford Fusion", {2018}) + CAR.FUSION: CarInfo("Ford Fusion", {2018}, "All") } DBC = { diff --git a/selfdrive/car/honda/values.py b/selfdrive/car/honda/values.py index 04bc6608e4..07ddbd7298 100644 --- a/selfdrive/car/honda/values.py +++ b/selfdrive/car/honda/values.py @@ -89,11 +89,11 @@ class CAR: CAR_INFO = { - CAR.ACCORD: CarInfo("Honda Accord", {2018, 2019, 2020, 2021}), - CAR.ACCORDH: CarInfo("Honda Accord Hybrid", {2018, 2019, 2020, 2021}), + CAR.ACCORD: CarInfo("Honda Accord", {2018, 2019, 2020, 2021}, "All"), + CAR.ACCORDH: CarInfo("Honda Accord Hybrid", {2018, 2019, 2020, 2021}, "All"), CAR.CIVIC: CarInfo("Honda Civic", {2016, 2017, 2018}, "Honda Sensing"), # TODO: there's also the identical coupe - CAR.CIVIC_BOSCH: CarInfo("Honda Civic (Bosch)", {2019, 2020}), - CAR.CIVIC_BOSCH_DIESEL: CarInfo("Honda Civic Sedan 1.6 DIESEL", {2019, 2020}), # TODO: same as civic bosch but has no alc under 12 mph exception + CAR.CIVIC_BOSCH: CarInfo("Honda Civic (Bosch)", {2019, 2020}, "All"), + CAR.CIVIC_BOSCH_DIESEL: CarInfo("Honda Civic Sedan 1.6 DIESEL", {2019, 2020}, "All"), # TODO: same as civic bosch but has no alc under 12 mph exception CAR.ACURA_ILX: CarInfo("Acura ILX", {2016, 2017, 2018, 2019}, "AcuraWatch Plus"), CAR.CRV: CarInfo("Honda CR-V", {2015, 2016}, "Touring"), CAR.CRV_5G: CarInfo("Honda CR-V", {2017, 2018, 2019, 2020, 2021}, "Honda Sensing"), @@ -106,12 +106,12 @@ CAR_INFO = { # TODO: Duplicate of above CAR.ODYSSEY_CHN: CarInfo("Honda Odyssey CHN", {2018, 2019, 2020}, "Honda Sensing"), CAR.ACURA_RDX: CarInfo("Acura RDX", {2016, 2017, 2018}, "AcuraWatch Plus"), - CAR.ACURA_RDX_3G: CarInfo("Acura RDX", {2019, 2020, 2021}), + CAR.ACURA_RDX_3G: CarInfo("Acura RDX", {2019, 2020, 2021}, "All"), CAR.PILOT: CarInfo("Honda Pilot", {2016, 2017, 2018, 2019, 2020, 2021}, "Honda Sensing"), - CAR.PASSPORT: CarInfo("Honda Passport", {2019, 2020, 2021}), + CAR.PASSPORT: CarInfo("Honda Passport", {2019, 2020, 2021}, "All"), CAR.RIDGELINE: CarInfo("Honda Ridgeline", {2017, 2018, 2019, 2020, 2021}, "Honda Sensing"), - CAR.INSIGHT: CarInfo("Honda Insight", {2019, 2020, 2021}), - CAR.HONDA_E: CarInfo("Honda E", {2020}), + CAR.INSIGHT: CarInfo("Honda Insight", {2019, 2020, 2021}, "All"), + CAR.HONDA_E: CarInfo("Honda E", {2020}, "All"), } diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index eb822b9a8a..78d9574720 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.py @@ -82,20 +82,20 @@ CAR_INFO = { CAR.KONA: CarInfo("Hyundai Kona", {2020}, "SCC + LKAS"), CAR.KONA_EV: CarInfo("Hyundai Kona Electric", {2018, 2019}, "SCC + LKAS"), CAR.KONA_HEV: CarInfo("Hyundai Kona Hybrid", {2020}, "SCC + LKAS"), - CAR.SANTA_FE: CarInfo("Hyundai Santa Fe", {2019, 2020}), - CAR.SANTA_FE_2022: CarInfo("Hyundai Santa Fe", {2021, 2022}), - CAR.SANTA_FE_HEV_2022: CarInfo("Hyundai Santa Fe Hybrid", {2022}), - CAR.SANTA_FE_PHEV_2022: CarInfo("Hyundai Santa Fe Plug-In Hybrid", {2022}), - CAR.SONATA: CarInfo("Hyundai Sonata", {2020, 2021, 2022}), + CAR.SANTA_FE: CarInfo("Hyundai Santa Fe", {2019, 2020}, "All"), + CAR.SANTA_FE_2022: CarInfo("Hyundai Santa Fe", {2021, 2022}, "All"), + CAR.SANTA_FE_HEV_2022: CarInfo("Hyundai Santa Fe Hybrid", {2022}, "All"), + CAR.SANTA_FE_PHEV_2022: CarInfo("Hyundai Santa Fe Plug-In Hybrid", {2022}, "All"), + CAR.SONATA: CarInfo("Hyundai Sonata", {2020, 2021, 2022}, "All"), CAR.SONATA_LF: CarInfo("Hyundai Sonata", {2018, 2019}, "SCC + LKAS"), - CAR.PALISADE: CarInfo("Hyundai Palisade", {2020, 2021}), + CAR.PALISADE: CarInfo("Hyundai Palisade", {2020, 2021}, "All"), CAR.VELOSTER: CarInfo("Hyundai Veloster", {2019, 2020}, "SCC + LKAS"), - CAR.SONATA_HYBRID: CarInfo("Hyundai Sonata Hybrid", {2021, 2022}), + CAR.SONATA_HYBRID: CarInfo("Hyundai Sonata Hybrid", {2021, 2022}, "All"), # Kia CAR.KIA_FORTE: CarInfo("Kia Forte E 2018 & GT 2021", {2018, 2019, 2020, 2021}, "SCC + LKAS"), # TODO: figure out which cars this exactly supports CAR.KIA_K5_2021: CarInfo("Kia K5", {2021, 2022}, "SCC + LFA"), - CAR.KIA_NIRO_EV: CarInfo("Kia Niro EV", {2019, 2020, 2021, 2022}), + CAR.KIA_NIRO_EV: CarInfo("Kia Niro EV", {2019, 2020, 2021, 2022}, "All"), CAR.KIA_NIRO_HEV: CarInfo("Kia Niro Plug-In Hybrid", {2019}, "SCC + LKAS"), CAR.KIA_NIRO_HEV_2021: CarInfo("Kia Niro Hybrid", {2021}, "SCC + LKAS"), CAR.KIA_OPTIMA: CarInfo("Kia Optima SX 2019 & 2016", {2017, 2019}, "SCC + LKAS"), @@ -106,10 +106,10 @@ CAR_INFO = { CAR.KIA_CEED: CarInfo("Kia Ceed Intro Edition", {2019}, "SCC + LKAS"), # Genesis - CAR.GENESIS_G70: CarInfo("Genesis G70", {2018}), - CAR.GENESIS_G70_2020: CarInfo("Genesis G70", {2020}), - CAR.GENESIS_G80: CarInfo("Genesis G80", {2018}), - CAR.GENESIS_G90: CarInfo("Genesis G90", {2018}), + CAR.GENESIS_G70: CarInfo("Genesis G70", {2018}, "All"), + CAR.GENESIS_G70_2020: CarInfo("Genesis G70", {2020}, "All"), + CAR.GENESIS_G80: CarInfo("Genesis G80", {2018}, "All"), + CAR.GENESIS_G90: CarInfo("Genesis G90", {2018}, "All"), } diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index fa69608714..e6f546acc3 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -71,7 +71,7 @@ class CarInterfaceBase(ABC): @staticmethod def get_std_params(candidate, fingerprint): ret = car.CarParams.new_message() - ret.carFingerprint = candidate.name + ret.carFingerprint = candidate ret.unsafeMode = 0 # see panda/board/safety_declarations.h for allowed values # standard ALC params diff --git a/selfdrive/car/mazda/values.py b/selfdrive/car/mazda/values.py index 5f76c68a2d..9b754bc3c3 100644 --- a/selfdrive/car/mazda/values.py +++ b/selfdrive/car/mazda/values.py @@ -25,12 +25,12 @@ class CAR: CAR_INFO = { - CAR.CX5: CarInfo("Mazda CX-5", {2017, 2019}), # TODO: verify years for first 4 - CAR.CX9: CarInfo("Mazda CX-9", {2016, 2017}), - CAR.MAZDA3: CarInfo("Mazda 3", {2017}), - CAR.MAZDA6: CarInfo("Mazda 6", {2017}), - CAR.CX9_2021: CarInfo("Mazda CX-9", {2021}), - CAR.CX5_2022: CarInfo("Mazda CX-5", {2022}), + CAR.CX5: CarInfo("Mazda CX-5", {2017, 2019}, "All"), # TODO: verify years for first 4 + CAR.CX9: CarInfo("Mazda CX-9", {2016, 2017}, "All"), + CAR.MAZDA3: CarInfo("Mazda 3", {2017}, "All"), + CAR.MAZDA6: CarInfo("Mazda 6", {2017}, "All"), + CAR.CX9_2021: CarInfo("Mazda CX-9", {2021}, "All"), + CAR.CX5_2022: CarInfo("Mazda CX-5", {2022}, "All"), } diff --git a/selfdrive/car/nissan/values.py b/selfdrive/car/nissan/values.py index 0a0ba4b697..dd25bafe83 100644 --- a/selfdrive/car/nissan/values.py +++ b/selfdrive/car/nissan/values.py @@ -26,7 +26,7 @@ CAR_INFO = { CAR.LEAF: CarInfo("Nissan Leaf", {2018, 2019, 2020, 2021, 2022}, "ProPILOT"), # TODO: ensure we can leave out cars when generating docs # CAR.LEAF_IC: CarInfo("Nissan Leaf Instrument Cluster", {2018, 2019, 2020, 2021, 2022}, "ProPILOT"), - CAR.ROGUE: CarInfo("Nissan Rogue", {2018, 2019, 2020}), + CAR.ROGUE: CarInfo("Nissan Rogue", {2018, 2019, 2020}, "All"), CAR.ALTIMA: CarInfo("Nissan Altima", {2019, 2020}, "ProPILOT"), } diff --git a/selfdrive/car/tesla/values.py b/selfdrive/car/tesla/values.py index 61b785e05d..1f96bc8410 100644 --- a/selfdrive/car/tesla/values.py +++ b/selfdrive/car/tesla/values.py @@ -12,8 +12,8 @@ class CAR: CAR_INFO = { - CAR.AP1_MODELS: CarInfo("Tesla AP1 Model S", {}), - CAR.AP2_MODELS: CarInfo("TESLA AP2 MODEL S", {}), + CAR.AP1_MODELS: CarInfo("Tesla AP1 Model S", {}, "All"), + CAR.AP2_MODELS: CarInfo("Tesla AP2 Model S", {}, "All"), } FINGERPRINTS = { diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 0bb94d5246..e1a8342fe0 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -73,49 +73,49 @@ class CAR: CAR_INFO = { # Toyota - CAR.ALPHARD_TSS2: CarInfo("Toyota Alphard", {2019, 2020}), + CAR.ALPHARD_TSS2: CarInfo("Toyota Alphard", {2019, 2020}, "All"), CAR.AVALON: CarInfo("Toyota Avalon", {2016, 2017, 2018, 2019, 2020, 2021}, 'TSS-P'), CAR.AVALON_2019: CarInfo("Toyota Avalon", {2022}, 'TSS-P'), CAR.AVALONH_2019: CarInfo("Toyota Avalon Hybrid", {2019, 2020, 2021}, 'TSS-P'), - CAR.AVALON_TSS2: CarInfo("Toyota Avalon", {2022}), - CAR.CAMRY: CarInfo("Toyota Camry", {2018, 2019, 2020}), - CAR.CAMRYH: CarInfo("Toyota Camry Hybrid", {2018, 2019, 2020}), - CAR.CAMRY_TSS2: CarInfo("Toyota Camry", {2021, 2022}), # TSS 2.5 - CAR.CAMRYH_TSS2: CarInfo("Toyota Camry Hybrid", {2021, 2022}), - CAR.CHR: CarInfo("Toyota C-HR", {2017, 2018, 2019, 2020, 2021}), - CAR.CHRH: CarInfo("Toyota C-HR Hybrid", {2017, 2018, 2019}), - CAR.COROLLA: CarInfo("Toyota Corolla", {2017, 2018, 2019}), - CAR.COROLLA_TSS2: CarInfo("Toyota Corolla TSS2", {2020, 2021, 2022}), + CAR.AVALON_TSS2: CarInfo("Toyota Avalon", {2022}, "All"), + CAR.CAMRY: CarInfo("Toyota Camry", {2018, 2019, 2020}, "All"), + CAR.CAMRYH: CarInfo("Toyota Camry Hybrid", {2018, 2019, 2020}, "All"), + CAR.CAMRY_TSS2: CarInfo("Toyota Camry", {2021, 2022}, "All"), # TSS 2.5 + CAR.CAMRYH_TSS2: CarInfo("Toyota Camry Hybrid", {2021, 2022}, "All"), + CAR.CHR: CarInfo("Toyota C-HR", {2017, 2018, 2019, 2020, 2021}, "All"), + CAR.CHRH: CarInfo("Toyota C-HR Hybrid", {2017, 2018, 2019}, "All"), + CAR.COROLLA: CarInfo("Toyota Corolla", {2017, 2018, 2019}, "All"), + CAR.COROLLA_TSS2: CarInfo("Toyota Corolla TSS2", {2020, 2021, 2022}, "All"), # LSS2 Lexus UX Hybrid is same as a TSS2 Corolla Hybrid - CAR.COROLLAH_TSS2: CarInfo("Toyota Corolla Hybrid TSS2", {2020, 2021, 2022}), - CAR.HIGHLANDER: CarInfo("Toyota Highlander", {2017, 2018, 2019}), - CAR.HIGHLANDER_TSS2: CarInfo("Toyota Highlander", {2020, 2021, 2022}), - CAR.HIGHLANDERH: CarInfo("Toyota Highlander Hybrid", {2017, 2018, 2019}), - CAR.HIGHLANDERH_TSS2: CarInfo("Toyota Highlander Hybrid", {2020, 2021, 2022}), + CAR.COROLLAH_TSS2: CarInfo("Toyota Corolla Hybrid TSS2", {2020, 2021, 2022}, "All"), + CAR.HIGHLANDER: CarInfo("Toyota Highlander", {2017, 2018, 2019}, "All"), + CAR.HIGHLANDER_TSS2: CarInfo("Toyota Highlander", {2020, 2021, 2022}, "All"), + CAR.HIGHLANDERH: CarInfo("Toyota Highlander Hybrid", {2017, 2018, 2019}, "All"), + CAR.HIGHLANDERH_TSS2: CarInfo("Toyota Highlander Hybrid", {2020, 2021, 2022}, "All"), CAR.PRIUS: CarInfo("Toyota Prius", {2016, 2017, 2018, 2019, 2020}, 'TSS-P'), # TODO: Prius Prime is lost here (supports All packages) CAR.PRIUS_V: CarInfo("Toyota Prius v", {2017}, 'TSS-P'), - CAR.PRIUS_TSS2: CarInfo("Toyota Prius Prime TSS2", {2021, 2022}), + CAR.PRIUS_TSS2: CarInfo("Toyota Prius Prime TSS2", {2021, 2022}, "All"), CAR.RAV4: CarInfo("Toyota RAV4", {2016, 2017, 2018}, 'TSS-P'), CAR.RAV4H: CarInfo("Toyota RAV4 Hybrid", {2016, 2017, 2018}, 'TSS-P'), - CAR.RAV4_TSS2: CarInfo("Toyota RAV4", {2019, 2020, 2021}), - CAR.RAV4H_TSS2: CarInfo("Toyota RAV4 Hybrid", {2019, 2020, 2021}), - CAR.MIRAI: CarInfo("Toyota Mirai", {2021}), # TSS 2.5 - CAR.SIENNA: CarInfo("Toyota Sienna", {2018, 2019, 2020}), + CAR.RAV4_TSS2: CarInfo("Toyota RAV4", {2019, 2020, 2021}, "All"), + CAR.RAV4H_TSS2: CarInfo("Toyota RAV4 Hybrid", {2019, 2020, 2021}, "All"), + CAR.MIRAI: CarInfo("Toyota Mirai", {2021}, "All"), # TSS 2.5 + CAR.SIENNA: CarInfo("Toyota Sienna", {2018, 2019, 2020}, "All"), # Lexus CAR.LEXUS_CTH: CarInfo("Lexus CT Hybrid", {2017, 2018}, 'LSS'), CAR.LEXUS_ESH: CarInfo("Lexus ES Hybrid", {2017, 2018}, 'LSS'), - CAR.LEXUS_ES_TSS2: CarInfo("Lexus ES", {2019, 2020, 2021}), - CAR.LEXUS_ESH_TSS2: CarInfo("Lexus ES Hybrid", {2019, 2020, 2021}), - CAR.LEXUS_IS: CarInfo("Lexus IS", {2017, 2018, 2019}), - CAR.LEXUS_NX: CarInfo("Lexus NX", {2018, 2019}), - CAR.LEXUS_NXH: CarInfo("Lexus NX Hybrid", {2018, 2019}), - CAR.LEXUS_NX_TSS2: CarInfo("Lexus NX", {2020}), - CAR.LEXUS_RC: CarInfo("Lexus RC", {2020}), - CAR.LEXUS_RX: CarInfo("Lexus RX", {2016, 2017, 2018}), - CAR.LEXUS_RXH: CarInfo("Lexus RX Hybrid", {2016, 2017, 2018, 2019}), - CAR.LEXUS_RX_TSS2: CarInfo("Lexus RX", {2020, 2021}), - CAR.LEXUS_RXH_TSS2: CarInfo("Lexus RX Hybrid", {2020, 2021}), + CAR.LEXUS_ES_TSS2: CarInfo("Lexus ES", {2019, 2020, 2021}, "All"), + CAR.LEXUS_ESH_TSS2: CarInfo("Lexus ES Hybrid", {2019, 2020, 2021}, "All"), + CAR.LEXUS_IS: CarInfo("Lexus IS", {2017, 2018, 2019}, "All"), + CAR.LEXUS_NX: CarInfo("Lexus NX", {2018, 2019}, "All"), + CAR.LEXUS_NXH: CarInfo("Lexus NX Hybrid", {2018, 2019}, "All"), + CAR.LEXUS_NX_TSS2: CarInfo("Lexus NX", {2020}, "All"), + CAR.LEXUS_RC: CarInfo("Lexus RC", {2020}, "All"), + CAR.LEXUS_RX: CarInfo("Lexus RX", {2016, 2017, 2018}, "All"), + CAR.LEXUS_RXH: CarInfo("Lexus RX Hybrid", {2016, 2017, 2018, 2019}, "All"), + CAR.LEXUS_RX_TSS2: CarInfo("Lexus RX", {2020, 2021}, "All"), + CAR.LEXUS_RXH_TSS2: CarInfo("Lexus RX Hybrid", {2020, 2021}, "All"), } # (addr, cars, bus, 1/freq*100, vl) diff --git a/selfdrive/car/volkswagen/values.py b/selfdrive/car/volkswagen/values.py index 5a30fc3a78..31f3f92228 100755 --- a/selfdrive/car/volkswagen/values.py +++ b/selfdrive/car/volkswagen/values.py @@ -91,7 +91,7 @@ class CAR: CAR_INFO = { CAR.ARTEON_MK1: CarInfo("Volkswagen Arteon", {2018, 2021}, "Driver Assistance"), CAR.ATLAS_MK1: CarInfo("Volkswagen Atlas", {2018, 2019, 2022}, "Driver Assistance"), - CAR.GOLF_MK7: { + CAR.GOLF_MK7: ( CarInfo("Volkswagen e-Golf", {2014, 2019, 2020}, "Driver Assistance"), CarInfo("Volkswagen Golf", {2015, 2016, 2017, 2018, 2019, 2020}, "Driver Assistance"), CarInfo("Volkswagen Golf Alltrack", {2017, 2018}, "Driver Assistance"), @@ -100,26 +100,26 @@ CAR_INFO = { CarInfo("Volkswagen Golf R", {2016, 2017, 2018, 2019}, "Driver Assistance"), CarInfo("Volkswagen Golf SportsVan", {2016}, "Driver Assistance"), CarInfo("Volkswagen Golf SportWagen", {2016}, "Driver Assistance"), - }, - CAR.JETTA_MK7: { + ), + CAR.JETTA_MK7: ( CarInfo("Volkswagen Jetta", {2018, 2019, 2020}, "Driver Assistance"), CarInfo("Volkswagen Jetta GLI", {2021}, "Driver Assistance"), - }, + ), CAR.PASSAT_MK8: CarInfo("Volkswagen Passat", {2016, 2017, 2018}, "Driver Assistance"), CAR.POLO_MK6: CarInfo("Volkswagen Polo", {2020}, "Driver Assistance"), CAR.TAOS_MK1: CarInfo("Volkswagen Taos", {2022}, "Driver Assistance"), CAR.TCROSS_MK1: CarInfo("Volkswagen T-Cross", {2021}, "Driver Assistance"), CAR.TIGUAN_MK2: CarInfo("Volkswagen Tiguan", {2020}, "Driver Assistance"), CAR.TOURAN_MK2: CarInfo("Volkswagen Touran", {2017}, "Driver Assistance"), - CAR.TRANSPORTER_T61: { + CAR.TRANSPORTER_T61: ( CarInfo("Volkswagen Caravelle", {2020}, "Driver Assistance"), CarInfo("Volkswagen California", {2021}, "Driver Assistance"), - }, + ), CAR.TROC_MK1: CarInfo("Volkswagen T-Roc", {2021}, "Driver Assistance"), - CAR.AUDI_A3_MK3: { + CAR.AUDI_A3_MK3: ( CarInfo("Audi A3", {2014, 2015, 2016, 2017, 2018, 2019}, "ACC + Lane Assist"), CarInfo("Audi A3 Sportback e-tron", {2017, 2018}, "ACC + Lane Assist"), - }, + ), CAR.AUDI_Q2_MK1: CarInfo("Audi Q2", {2018}, "ACC + Lane Assist"), CAR.AUDI_Q3_MK2: CarInfo("Audi Q3", {2020, 2021}, "ACC + Lane Assist"), CAR.SEAT_ATECA_MK1: CarInfo("SEAT Ateca", {2018}, "Driver Assistance"), @@ -129,10 +129,10 @@ CAR_INFO = { CAR.SKODA_KODIAQ_MK1: CarInfo("Škoda Kodiaq", {2018, 2019}, "Driver Assistance"), CAR.SKODA_SCALA_MK1: CarInfo("Škoda Scala", {2020}, "Driver Assistance"), CAR.SKODA_SUPERB_MK3: CarInfo("Škoda Superb", {2015, 2017, 2018}, "Driver Assistance"), - CAR.SKODA_OCTAVIA_MK3: { + CAR.SKODA_OCTAVIA_MK3: ( CarInfo("Škoda Octavia", {2015, 2018, 2019}, "Driver Assistance"), CarInfo("Škoda Octavia RS", {2016}, "Driver Assistance"), - } + ), } # All supported cars should return FW from the engine, srs, eps, and fwdRadar. Cars