|
|
|
@ -1,9 +1,9 @@ |
|
|
|
|
from enum import IntFlag, StrEnum |
|
|
|
|
from enum import IntFlag |
|
|
|
|
from dataclasses import dataclass, field |
|
|
|
|
|
|
|
|
|
from cereal import car |
|
|
|
|
from panda.python import uds |
|
|
|
|
from openpilot.selfdrive.car import dbc_dict |
|
|
|
|
from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict |
|
|
|
|
from openpilot.selfdrive.car.docs_definitions import CarHarness, CarInfo, CarParts |
|
|
|
|
from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, p16 |
|
|
|
|
|
|
|
|
@ -13,25 +13,89 @@ Ecu = car.CarParams.Ecu |
|
|
|
|
class ChryslerFlags(IntFlag): |
|
|
|
|
HIGHER_MIN_STEERING_SPEED = 1 |
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class ChryslerCarInfo(CarInfo): |
|
|
|
|
package: str = "Adaptive Cruise Control (ACC)" |
|
|
|
|
car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.fca])) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class ChryslerPlatformConfig(PlatformConfig): |
|
|
|
|
dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('chrysler_pacifica_2017_hybrid_generated', None)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class ChryslerCarSpecs(CarSpecs): |
|
|
|
|
minSteerSpeed: float = 3.8 # m/s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CAR(StrEnum): |
|
|
|
|
class CAR(Platforms): |
|
|
|
|
# Chrysler |
|
|
|
|
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" |
|
|
|
|
PACIFICA_2020 = "CHRYSLER PACIFICA 2020" |
|
|
|
|
PACIFICA_2017_HYBRID = ChryslerPlatformConfig( |
|
|
|
|
"CHRYSLER PACIFICA HYBRID 2017", |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica Hybrid 2017"), |
|
|
|
|
specs=ChryslerCarSpecs(mass=2242., wheelbase=3.089, steerRatio=16.2), |
|
|
|
|
) |
|
|
|
|
PACIFICA_2018_HYBRID = ChryslerPlatformConfig( |
|
|
|
|
"CHRYSLER PACIFICA HYBRID 2018", |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica Hybrid 2018"), |
|
|
|
|
specs=PACIFICA_2017_HYBRID.specs, |
|
|
|
|
) |
|
|
|
|
PACIFICA_2019_HYBRID = ChryslerPlatformConfig( |
|
|
|
|
"CHRYSLER PACIFICA HYBRID 2019", |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica Hybrid 2019-23"), |
|
|
|
|
specs=PACIFICA_2017_HYBRID.specs, |
|
|
|
|
) |
|
|
|
|
PACIFICA_2018 = ChryslerPlatformConfig( |
|
|
|
|
"CHRYSLER PACIFICA 2018", |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica 2017-18"), |
|
|
|
|
specs=PACIFICA_2017_HYBRID.specs, |
|
|
|
|
) |
|
|
|
|
PACIFICA_2020 = ChryslerPlatformConfig( |
|
|
|
|
"CHRYSLER PACIFICA 2020", |
|
|
|
|
[ |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica 2019-20"), |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica 2021-23", package="All"), |
|
|
|
|
], |
|
|
|
|
specs=PACIFICA_2017_HYBRID.specs, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Dodge |
|
|
|
|
DODGE_DURANGO = "DODGE DURANGO 2021" |
|
|
|
|
DODGE_DURANGO = ChryslerPlatformConfig( |
|
|
|
|
"DODGE DURANGO 2021", |
|
|
|
|
ChryslerCarInfo("Dodge Durango 2020-21"), |
|
|
|
|
specs=PACIFICA_2017_HYBRID.specs, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Jeep |
|
|
|
|
JEEP_GRAND_CHEROKEE = "JEEP GRAND CHEROKEE V6 2018" # includes 2017 Trailhawk |
|
|
|
|
JEEP_GRAND_CHEROKEE_2019 = "JEEP GRAND CHEROKEE 2019" # includes 2020 Trailhawk |
|
|
|
|
JEEP_GRAND_CHEROKEE = ChryslerPlatformConfig( # includes 2017 Trailhawk |
|
|
|
|
"JEEP GRAND CHEROKEE V6 2018", |
|
|
|
|
ChryslerCarInfo("Jeep Grand Cherokee 2016-18", video_link="https://www.youtube.com/watch?v=eLR9o2JkuRk"), |
|
|
|
|
specs=ChryslerCarSpecs(mass=1778., wheelbase=2.71, steerRatio=16.7), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
JEEP_GRAND_CHEROKEE_2019 = ChryslerPlatformConfig( # includes 2020 Trailhawk |
|
|
|
|
"JEEP GRAND CHEROKEE 2019", |
|
|
|
|
ChryslerCarInfo("Jeep Grand Cherokee 2019-21", video_link="https://www.youtube.com/watch?v=jBe4lWnRSu4"), |
|
|
|
|
specs=JEEP_GRAND_CHEROKEE.specs, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Ram |
|
|
|
|
RAM_1500 = "RAM 1500 5TH GEN" |
|
|
|
|
RAM_HD = "RAM HD 5TH GEN" |
|
|
|
|
RAM_1500 = ChryslerPlatformConfig( |
|
|
|
|
"RAM 1500 5TH GEN", |
|
|
|
|
ChryslerCarInfo("Ram 1500 2019-24", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
dbc_dict('chrysler_ram_dt_generated', None), |
|
|
|
|
specs=ChryslerCarSpecs(mass=2493., wheelbase=3.88, steerRatio=16.3, minSteerSpeed=14.5), |
|
|
|
|
) |
|
|
|
|
RAM_HD = ChryslerPlatformConfig( |
|
|
|
|
"RAM HD 5TH GEN", |
|
|
|
|
[ |
|
|
|
|
ChryslerCarInfo("Ram 2500 2020-24", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
ChryslerCarInfo("Ram 3500 2019-22", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
], |
|
|
|
|
dbc_dict('chrysler_ram_hd_generated', None), |
|
|
|
|
specs=ChryslerCarSpecs(mass=3405., wheelbase=3.785, steerRatio=15.61, minSteerSpeed=16.), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CarControllerParams: |
|
|
|
@ -59,32 +123,6 @@ RAM_HD = {CAR.RAM_HD, } |
|
|
|
|
RAM_CARS = RAM_DT | RAM_HD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class ChryslerCarInfo(CarInfo): |
|
|
|
|
package: str = "Adaptive Cruise Control (ACC)" |
|
|
|
|
car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.fca])) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CAR_INFO: dict[str, ChryslerCarInfo | list[ChryslerCarInfo] | None] = { |
|
|
|
|
CAR.PACIFICA_2017_HYBRID: ChryslerCarInfo("Chrysler Pacifica Hybrid 2017"), |
|
|
|
|
CAR.PACIFICA_2018_HYBRID: ChryslerCarInfo("Chrysler Pacifica Hybrid 2018"), |
|
|
|
|
CAR.PACIFICA_2019_HYBRID: ChryslerCarInfo("Chrysler Pacifica Hybrid 2019-23"), |
|
|
|
|
CAR.PACIFICA_2018: ChryslerCarInfo("Chrysler Pacifica 2017-18"), |
|
|
|
|
CAR.PACIFICA_2020: [ |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica 2019-20"), |
|
|
|
|
ChryslerCarInfo("Chrysler Pacifica 2021-23", package="All"), |
|
|
|
|
], |
|
|
|
|
CAR.JEEP_GRAND_CHEROKEE: ChryslerCarInfo("Jeep Grand Cherokee 2016-18", video_link="https://www.youtube.com/watch?v=eLR9o2JkuRk"), |
|
|
|
|
CAR.JEEP_GRAND_CHEROKEE_2019: ChryslerCarInfo("Jeep Grand Cherokee 2019-21", video_link="https://www.youtube.com/watch?v=jBe4lWnRSu4"), |
|
|
|
|
CAR.DODGE_DURANGO: ChryslerCarInfo("Dodge Durango 2020-21"), |
|
|
|
|
CAR.RAM_1500: ChryslerCarInfo("Ram 1500 2019-24", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
CAR.RAM_HD: [ |
|
|
|
|
ChryslerCarInfo("Ram 2500 2020-24", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
ChryslerCarInfo("Ram 3500 2019-22", car_parts=CarParts.common([CarHarness.ram])), |
|
|
|
|
], |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CHRYSLER_VERSION_REQUEST = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + \ |
|
|
|
|
p16(0xf132) |
|
|
|
|
CHRYSLER_VERSION_RESPONSE = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + \ |
|
|
|
@ -124,16 +162,5 @@ FW_QUERY_CONFIG = FwQueryConfig( |
|
|
|
|
], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBC = { |
|
|
|
|
CAR.PACIFICA_2017_HYBRID: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.PACIFICA_2018: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.PACIFICA_2020: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.PACIFICA_2018_HYBRID: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.PACIFICA_2019_HYBRID: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.DODGE_DURANGO: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.JEEP_GRAND_CHEROKEE: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.JEEP_GRAND_CHEROKEE_2019: dbc_dict('chrysler_pacifica_2017_hybrid_generated', 'chrysler_pacifica_2017_hybrid_private_fusion'), |
|
|
|
|
CAR.RAM_1500: dbc_dict('chrysler_ram_dt_generated', None), |
|
|
|
|
CAR.RAM_HD: dbc_dict('chrysler_ram_hd_generated', None), |
|
|
|
|
} |
|
|
|
|
CAR_INFO = CAR.create_carinfo_map() |
|
|
|
|
DBC = CAR.create_dbc_map() |
|
|
|
|