Ford: hybrid docs (#31874)

* kinda works

* fix

* clean up

* rm hybrid entries

* shorter

* shorter

* fix that

* one line!

* we can get rid of this now!
pull/31909/head^2
Shane Smiskol 1 year ago committed by GitHub
parent 91933b5f42
commit 5746c4672d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 44
      selfdrive/car/ford/values.py

@ -1,4 +1,5 @@
from dataclasses import dataclass, field import copy
from dataclasses import dataclass, field, replace
from enum import Enum, IntFlag from enum import Enum, IntFlag
import panda.python.uds as uds import panda.python.uds as uds
@ -60,6 +61,8 @@ class Footnote(Enum):
@dataclass @dataclass
class FordCarDocs(CarDocs): class FordCarDocs(CarDocs):
package: str = "Co-Pilot360 Assist+" package: str = "Co-Pilot360 Assist+"
hybrid: bool = False
plug_in_hybrid: bool = False
def init_make(self, CP: car.CarParams): def init_make(self, CP: car.CarParams):
harness = CarHarness.ford_q4 if CP.flags & FordFlags.CANFD else CarHarness.ford_q3 harness = CarHarness.ford_q4 if CP.flags & FordFlags.CANFD else CarHarness.ford_q3
@ -73,6 +76,15 @@ class FordCarDocs(CarDocs):
class FordPlatformConfig(PlatformConfig): class FordPlatformConfig(PlatformConfig):
dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('ford_lincoln_base_pt', RADAR.DELPHI_MRR)) dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('ford_lincoln_base_pt', RADAR.DELPHI_MRR))
def init(self):
for car_info in list(self.car_info):
if car_info.hybrid:
name = f"{car_info.make} {car_info.model} Hybrid {car_info.years}"
self.car_info.append(replace(copy.deepcopy(car_info), name=name))
if car_info.plug_in_hybrid:
name = f"{car_info.make} {car_info.model} Plug-in Hybrid {car_info.years}"
self.car_info.append(replace(copy.deepcopy(car_info), name=name))
@dataclass @dataclass
class FordCANFDPlatformConfig(FordPlatformConfig): class FordCANFDPlatformConfig(FordPlatformConfig):
@ -92,31 +104,22 @@ class CAR(Platforms):
ESCAPE_MK4 = FordPlatformConfig( ESCAPE_MK4 = FordPlatformConfig(
"FORD ESCAPE 4TH GEN", "FORD ESCAPE 4TH GEN",
[ [
FordCarDocs("Ford Escape 2020-22"), FordCarDocs("Ford Escape 2020-22", hybrid=True, plug_in_hybrid=True),
FordCarDocs("Ford Escape Hybrid 2020-22"), FordCarDocs("Ford Kuga 2020-22", "Adaptive Cruise Control with Lane Centering", hybrid=True, plug_in_hybrid=True),
FordCarDocs("Ford Escape Plug-in Hybrid 2020-22"),
FordCarDocs("Ford Kuga 2020-22", "Adaptive Cruise Control with Lane Centering"),
FordCarDocs("Ford Kuga Hybrid 2020-22", "Adaptive Cruise Control with Lane Centering"),
FordCarDocs("Ford Kuga Plug-in Hybrid 2020-22", "Adaptive Cruise Control with Lane Centering"),
], ],
CarSpecs(mass=1750, wheelbase=2.71, steerRatio=16.7), CarSpecs(mass=1750, wheelbase=2.71, steerRatio=16.7),
) )
EXPLORER_MK6 = FordPlatformConfig( EXPLORER_MK6 = FordPlatformConfig(
"FORD EXPLORER 6TH GEN", "FORD EXPLORER 6TH GEN",
[ [
FordCarDocs("Ford Explorer 2020-23"), FordCarDocs("Ford Explorer 2020-23", hybrid=True), # Hybrid: Limited and Platinum only
FordCarDocs("Ford Explorer Hybrid 2020-23"), # Limited and Platinum only FordCarDocs("Lincoln Aviator 2020-23", "Co-Pilot360 Plus", plug_in_hybrid=True), # Hybrid: Grand Touring only
FordCarDocs("Lincoln Aviator 2020-23", "Co-Pilot360 Plus"),
FordCarDocs("Lincoln Aviator Plug-in Hybrid 2020-23", "Co-Pilot360 Plus"), # Grand Touring only
], ],
CarSpecs(mass=2050, wheelbase=3.025, steerRatio=16.8), CarSpecs(mass=2050, wheelbase=3.025, steerRatio=16.8),
) )
F_150_MK14 = FordCANFDPlatformConfig( F_150_MK14 = FordCANFDPlatformConfig(
"FORD F-150 14TH GEN", "FORD F-150 14TH GEN",
[ [FordCarDocs("Ford F-150 2022-23", "Co-Pilot360 Active 2.0", hybrid=True)],
FordCarDocs("Ford F-150 2022-23", "Co-Pilot360 Active 2.0"),
FordCarDocs("Ford F-150 Hybrid 2022-23", "Co-Pilot360 Active 2.0"),
],
CarSpecs(mass=2000, wheelbase=3.69, steerRatio=17.0), CarSpecs(mass=2000, wheelbase=3.69, steerRatio=17.0),
) )
F_150_LIGHTNING_MK1 = FordCANFDPlatformConfig( F_150_LIGHTNING_MK1 = FordCANFDPlatformConfig(
@ -126,19 +129,14 @@ class CAR(Platforms):
) )
FOCUS_MK4 = FordPlatformConfig( FOCUS_MK4 = FordPlatformConfig(
"FORD FOCUS 4TH GEN", "FORD FOCUS 4TH GEN",
[ [FordCarDocs("Ford Focus 2018", "Adaptive Cruise Control with Lane Centering", footnotes=[Footnote.FOCUS], hybrid=True)], # mHEV only
FordCarDocs("Ford Focus 2018", "Adaptive Cruise Control with Lane Centering", footnotes=[Footnote.FOCUS]),
FordCarDocs("Ford Focus Hybrid 2018", "Adaptive Cruise Control with Lane Centering", footnotes=[Footnote.FOCUS]), # mHEV only
],
CarSpecs(mass=1350, wheelbase=2.7, steerRatio=15.0), CarSpecs(mass=1350, wheelbase=2.7, steerRatio=15.0),
) )
MAVERICK_MK1 = FordPlatformConfig( MAVERICK_MK1 = FordPlatformConfig(
"FORD MAVERICK 1ST GEN", "FORD MAVERICK 1ST GEN",
[ [
FordCarDocs("Ford Maverick 2022", "LARIAT Luxury"), FordCarDocs("Ford Maverick 2022", "LARIAT Luxury", hybrid=True),
FordCarDocs("Ford Maverick Hybrid 2022", "LARIAT Luxury"), FordCarDocs("Ford Maverick 2023-24", "Co-Pilot360 Assist", hybrid=True),
FordCarDocs("Ford Maverick 2023-24", "Co-Pilot360 Assist"),
FordCarDocs("Ford Maverick Hybrid 2023-24", "Co-Pilot360 Assist"),
], ],
CarSpecs(mass=1650, wheelbase=3.076, steerRatio=17.0), CarSpecs(mass=1650, wheelbase=3.076, steerRatio=17.0),
) )

Loading…
Cancel
Save