remove rest of car.CarParams from the interfaces

pull/33208/head
Shane Smiskol 10 months ago
parent b926893b34
commit bddb9f3595
  1. 2
      selfdrive/car/__init__.py
  2. 5
      selfdrive/car/card.py
  3. 4
      selfdrive/car/docs.py
  4. 6
      selfdrive/car/docs_definitions.py
  5. 3
      selfdrive/car/ford/carstate.py
  6. 3
      selfdrive/car/ford/values.py
  7. 5
      selfdrive/car/gm/carcontroller.py
  8. 5
      selfdrive/car/gm/carstate.py
  9. 5
      selfdrive/car/gm/values.py
  10. 3
      selfdrive/car/honda/carstate.py
  11. 2
      selfdrive/car/honda/values.py
  12. 3
      selfdrive/car/hyundai/values.py
  13. 3
      selfdrive/car/subaru/values.py
  14. 3
      selfdrive/car/toyota/carstate.py
  15. 2
      selfdrive/car/toyota/interface.py
  16. 3
      selfdrive/car/volkswagen/carcontroller.py
  17. 6
      selfdrive/car/volkswagen/values.py

@ -185,7 +185,7 @@ def rate_limit(new_value, last_value, dw_step, up_step):
def get_friction(lateral_accel_error: float, lateral_accel_deadzone: float, friction_threshold: float, def get_friction(lateral_accel_error: float, lateral_accel_deadzone: float, friction_threshold: float,
torque_params: car.CarParams.LateralTorqueTuning, friction_compensation: bool) -> float: torque_params: CarParams.LateralTorqueTuning, friction_compensation: bool) -> float:
friction_interp = interp( friction_interp = interp(
apply_center_deadzone(lateral_accel_error, lateral_accel_deadzone), apply_center_deadzone(lateral_accel_error, lateral_accel_deadzone),
[-friction_threshold, friction_threshold], [-friction_threshold, friction_threshold],

@ -14,6 +14,7 @@ from openpilot.common.swaglog import cloudlog, ForwardingHandler
from openpilot.selfdrive.pandad import can_capnp_to_list, can_list_to_can_capnp from openpilot.selfdrive.pandad import can_capnp_to_list, can_list_to_can_capnp
from openpilot.selfdrive.car import DT_CTRL, carlog from openpilot.selfdrive.car import DT_CTRL, carlog
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.can_definitions import CanData, CanRecvCallable, CanSendCallable from openpilot.selfdrive.car.can_definitions import CanData, CanRecvCallable, CanSendCallable
from openpilot.selfdrive.car.fw_versions import ObdCallback from openpilot.selfdrive.car.fw_versions import ObdCallback
from openpilot.selfdrive.car.car_helpers import get_car from openpilot.selfdrive.car.car_helpers import get_car
@ -108,8 +109,8 @@ class Car:
self.CP.passive = not controller_available or self.CP.dashcamOnly self.CP.passive = not controller_available or self.CP.dashcamOnly
if self.CP.passive: if self.CP.passive:
safety_config = car.CarParams.SafetyConfig.new_message() safety_config = CarParams.SafetyConfig()
safety_config.safetyModel = car.CarParams.SafetyModel.noOutput safety_config.safetyModel = CarParams.SafetyModel.noOutput
self.CP.safetyConfigs = [safety_config] self.CP.safetyConfigs = [safety_config]
# Write previous route's CarParams # Write previous route's CarParams

@ -6,9 +6,9 @@ import os
from enum import Enum from enum import Enum
from natsort import natsorted from natsort import natsorted
from cereal import car
from openpilot.common.basedir import BASEDIR from openpilot.common.basedir import BASEDIR
from openpilot.selfdrive.car import gen_empty_fingerprint from openpilot.selfdrive.car import gen_empty_fingerprint
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.docs_definitions import CarDocs, Column, CommonFootnote, PartType from openpilot.selfdrive.car.docs_definitions import CarDocs, Column, CommonFootnote, PartType
from openpilot.selfdrive.car.car_helpers import interfaces, get_interface_attr from openpilot.selfdrive.car.car_helpers import interfaces, get_interface_attr
from openpilot.selfdrive.car.values import PLATFORMS from openpilot.selfdrive.car.values import PLATFORMS
@ -32,7 +32,7 @@ def get_all_car_docs() -> list[CarDocs]:
car_docs = platform.config.car_docs car_docs = platform.config.car_docs
# If available, uses experimental longitudinal limits for the docs # If available, uses experimental longitudinal limits for the docs
CP = interfaces[model][0].get_params(platform, fingerprint=gen_empty_fingerprint(), CP = interfaces[model][0].get_params(platform, fingerprint=gen_empty_fingerprint(),
car_fw=[car.CarParams.CarFw(ecu="unknown")], experimental_long=True, docs=True) car_fw=[CarParams.CarFw(ecu=CarParams.Ecu.unknown)], experimental_long=True, docs=True)
if CP.dashcamOnly or not len(car_docs): if CP.dashcamOnly or not len(car_docs):
continue continue

@ -4,8 +4,8 @@ import copy
from dataclasses import dataclass, field from dataclasses import dataclass, field
from enum import Enum from enum import Enum
from cereal import car
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2 GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2
MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)" MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)"
@ -248,7 +248,7 @@ class CarDocs:
self.make, self.model, self.years = split_name(self.name) self.make, self.model, self.years = split_name(self.name)
self.year_list = get_year_list(self.years) self.year_list = get_year_list(self.years)
def init(self, CP: car.CarParams, all_footnotes: dict[Enum, int]): def init(self, CP: CarParams, all_footnotes: dict[Enum, int]):
self.car_name = CP.carName self.car_name = CP.carName
self.car_fingerprint = CP.carFingerprint self.car_fingerprint = CP.carFingerprint
@ -316,7 +316,7 @@ class CarDocs:
return self return self
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
"""CarDocs subclasses can add make-specific logic for harness selection, footnotes, etc.""" """CarDocs subclasses can add make-specific logic for harness selection, footnotes, etc."""
def get_detail_sentence(self, CP): def get_detail_sentence(self, CP):

@ -2,12 +2,13 @@ from cereal import car
from opendbc.can.can_define import CANDefine from opendbc.can.can_define import CANDefine
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.ford.fordcan import CanBus from openpilot.selfdrive.car.ford.fordcan import CanBus
from openpilot.selfdrive.car.ford.values import DBC, CarControllerParams, FordFlags from openpilot.selfdrive.car.ford.values import DBC, CarControllerParams, FordFlags
from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.interfaces import CarStateBase
GearShifter = car.CarState.GearShifter GearShifter = car.CarState.GearShifter
TransmissionType = car.CarParams.TransmissionType TransmissionType = CarParams.TransmissionType
class CarState(CarStateBase): class CarState(CarStateBase):

@ -4,7 +4,6 @@ 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
from cereal import car
from openpilot.selfdrive.car import AngleRateLimit, CarSpecs, dbc_dict, DbcDict, PlatformConfig, Platforms from openpilot.selfdrive.car import AngleRateLimit, CarSpecs, dbc_dict, DbcDict, PlatformConfig, Platforms
from openpilot.selfdrive.car.data_structures import CarParams from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \ from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \
@ -66,7 +65,7 @@ class FordCarDocs(CarDocs):
hybrid: bool = False hybrid: bool = False
plug_in_hybrid: bool = False plug_in_hybrid: bool = False
def init_make(self, CP: car.CarParams): def init_make(self, CP: 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
if CP.carFingerprint in (CAR.FORD_BRONCO_SPORT_MK1, CAR.FORD_MAVERICK_MK1, CAR.FORD_F_150_MK14, CAR.FORD_F_150_LIGHTNING_MK1): if CP.carFingerprint in (CAR.FORD_BRONCO_SPORT_MK1, CAR.FORD_MAVERICK_MK1, CAR.FORD_F_150_MK14, CAR.FORD_F_150_LIGHTNING_MK1):
self.car_parts = CarParts([Device.threex_angled_mount, harness]) self.car_parts = CarParts([Device.threex_angled_mount, harness])

@ -1,14 +1,15 @@
from cereal import car from cereal import car
from opendbc.can.packer import CANPacker from opendbc.can.packer import CANPacker
from openpilot.selfdrive.car import DT_CTRL, apply_driver_steer_torque_limits from openpilot.selfdrive.car import DT_CTRL, apply_driver_steer_torque_limits
from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.gm import gmcan from openpilot.selfdrive.car.gm import gmcan
from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons from openpilot.selfdrive.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons
from openpilot.selfdrive.car.helpers import interp from openpilot.selfdrive.car.helpers import interp
from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.interfaces import CarControllerBase
VisualAlert = car.CarControl.HUDControl.VisualAlert VisualAlert = car.CarControl.HUDControl.VisualAlert
NetworkLocation = car.CarParams.NetworkLocation NetworkLocation = CarParams.NetworkLocation
LongCtrlState = car.CarControl.Actuators.LongControlState LongCtrlState = car.CarControl.Actuators.LongControlState
# Camera cancels up to 0.1s after brake is pressed, ECM allows 0.5s # Camera cancels up to 0.1s after brake is pressed, ECM allows 0.5s

@ -3,12 +3,13 @@ from cereal import car
from opendbc.can.can_define import CANDefine from opendbc.can.can_define import CANDefine
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.helpers import mean from openpilot.selfdrive.car.helpers import mean
from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.interfaces import CarStateBase
from openpilot.selfdrive.car.gm.values import DBC, AccState, CanBus, STEER_THRESHOLD from openpilot.selfdrive.car.gm.values import DBC, AccState, CanBus, STEER_THRESHOLD
TransmissionType = car.CarParams.TransmissionType TransmissionType = CarParams.TransmissionType
NetworkLocation = car.CarParams.NetworkLocation NetworkLocation = CarParams.NetworkLocation
STANDSTILL_THRESHOLD = 10 * 0.0311 * CV.KPH_TO_MS STANDSTILL_THRESHOLD = 10 * 0.0311 * CV.KPH_TO_MS

@ -1,6 +1,5 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from cereal import car
from openpilot.selfdrive.car import dbc_dict, PlatformConfig, DbcDict, Platforms, CarSpecs from openpilot.selfdrive.car import dbc_dict, PlatformConfig, DbcDict, Platforms, CarSpecs
from openpilot.selfdrive.car.data_structures import CarParams from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.docs_definitions import CarHarness, CarDocs, CarParts from openpilot.selfdrive.car.docs_definitions import CarHarness, CarDocs, CarParts
@ -64,8 +63,8 @@ class CarControllerParams:
class GMCarDocs(CarDocs): class GMCarDocs(CarDocs):
package: str = "Adaptive Cruise Control (ACC)" package: str = "Adaptive Cruise Control (ACC)"
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
if CP.networkLocation == car.CarParams.NetworkLocation.fwdCamera: if CP.networkLocation == CarParams.NetworkLocation.fwdCamera:
self.car_parts = CarParts.common([CarHarness.gm]) self.car_parts = CarParts.common([CarHarness.gm])
else: else:
self.car_parts = CarParts.common([CarHarness.obd_ii]) self.car_parts = CarParts.common([CarHarness.obd_ii])

@ -4,6 +4,7 @@ from cereal import car
from opendbc.can.can_define import CANDefine from opendbc.can.can_define import CANDefine
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.helpers import interp from openpilot.selfdrive.car.helpers import interp
from openpilot.selfdrive.car.honda.hondacan import CanBus, get_cruise_speed_conversion from openpilot.selfdrive.car.honda.hondacan import CanBus, get_cruise_speed_conversion
from openpilot.selfdrive.car.honda.values import CAR, DBC, STEER_THRESHOLD, HONDA_BOSCH, \ from openpilot.selfdrive.car.honda.values import CAR, DBC, STEER_THRESHOLD, HONDA_BOSCH, \
@ -11,7 +12,7 @@ from openpilot.selfdrive.car.honda.values import CAR, DBC, STEER_THRESHOLD, HOND
HondaFlags HondaFlags
from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.interfaces import CarStateBase
TransmissionType = car.CarParams.TransmissionType TransmissionType = CarParams.TransmissionType
def get_can_messages(CP, gearbox_msg): def get_can_messages(CP, gearbox_msg):

@ -91,7 +91,7 @@ VISUAL_HUD = {
class HondaCarDocs(CarDocs): class HondaCarDocs(CarDocs):
package: str = "Honda Sensing" package: str = "Honda Sensing"
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
if CP.flags & HondaFlags.BOSCH: if CP.flags & HondaFlags.BOSCH:
self.car_parts = CarParts.common([CarHarness.bosch_b]) if CP.flags & HondaFlags.BOSCH_RADARLESS else CarParts.common([CarHarness.bosch_a]) self.car_parts = CarParts.common([CarHarness.bosch_b]) if CP.flags & HondaFlags.BOSCH_RADARLESS else CarParts.common([CarHarness.bosch_a])
else: else:

@ -2,7 +2,6 @@ import re
from dataclasses import dataclass, field from dataclasses import dataclass, field
from enum import Enum, IntFlag from enum import Enum, IntFlag
from cereal import car
from panda.python import uds from panda.python import uds
from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
@ -108,7 +107,7 @@ class Footnote(Enum):
class HyundaiCarDocs(CarDocs): class HyundaiCarDocs(CarDocs):
package: str = "Smart Cruise Control (SCC)" package: str = "Smart Cruise Control (SCC)"
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
if CP.flags & HyundaiFlags.CANFD: if CP.flags & HyundaiFlags.CANFD:
self.footnotes.insert(0, Footnote.CANFD) self.footnotes.insert(0, Footnote.CANFD)

@ -1,7 +1,6 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from enum import Enum, IntFlag from enum import Enum, IntFlag
from cereal import car
from panda.python import uds from panda.python import uds
from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict
from openpilot.selfdrive.car.data_structures import CarParams from openpilot.selfdrive.car.data_structures import CarParams
@ -94,7 +93,7 @@ class SubaruCarDocs(CarDocs):
car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.subaru_a])) car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.subaru_a]))
footnotes: list[Enum] = field(default_factory=lambda: [Footnote.GLOBAL]) footnotes: list[Enum] = field(default_factory=lambda: [Footnote.GLOBAL])
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
self.car_parts.parts.extend([Tool.socket_8mm_deep, Tool.pry_tool]) self.car_parts.parts.extend([Tool.socket_8mm_deep, Tool.pry_tool])
if CP.experimentalLongitudinalAvailable: if CP.experimentalLongitudinalAvailable:

@ -5,13 +5,14 @@ from opendbc.can.can_define import CANDefine
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from openpilot.selfdrive.car import DT_CTRL from openpilot.selfdrive.car import DT_CTRL
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.filter_simple import FirstOrderFilter from openpilot.selfdrive.car.filter_simple import FirstOrderFilter
from openpilot.selfdrive.car.helpers import mean from openpilot.selfdrive.car.helpers import mean
from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.interfaces import CarStateBase
from openpilot.selfdrive.car.toyota.values import ToyotaFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \ from openpilot.selfdrive.car.toyota.values import ToyotaFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \
TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR
SteerControlType = car.CarParams.SteerControlType SteerControlType = CarParams.SteerControlType
# These steering fault definitions seem to be common across LKA (torque) and LTA (angle): # These steering fault definitions seem to be common across LKA (torque) and LTA (angle):
# - high steer rate fault: goes to 21 or 25 for 1 frame, then 9 for 2 seconds # - high steer rate fault: goes to 21 or 25 for 1 frame, then 9 for 2 seconds

@ -10,7 +10,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
ButtonType = car.CarState.ButtonEvent.Type ButtonType = car.CarState.ButtonEvent.Type
EventName = car.CarEvent.EventName EventName = car.CarEvent.EventName
SteerControlType = car.CarParams.SteerControlType SteerControlType = CarParams.SteerControlType
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

@ -2,6 +2,7 @@ from cereal import car
from opendbc.can.packer import CANPacker from opendbc.can.packer import CANPacker
from openpilot.selfdrive.car import DT_CTRL, apply_driver_steer_torque_limits from openpilot.selfdrive.car import DT_CTRL, apply_driver_steer_torque_limits
from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.data_structures import CarParams
from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.helpers import clip
from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.interfaces import CarControllerBase
from openpilot.selfdrive.car.volkswagen import mqbcan, pqcan from openpilot.selfdrive.car.volkswagen import mqbcan, pqcan
@ -17,7 +18,7 @@ class CarController(CarControllerBase):
self.CCP = CarControllerParams(CP) self.CCP = CarControllerParams(CP)
self.CCS = pqcan if CP.flags & VolkswagenFlags.PQ else mqbcan self.CCS = pqcan if CP.flags & VolkswagenFlags.PQ else mqbcan
self.packer_pt = CANPacker(dbc_name) self.packer_pt = CANPacker(dbc_name)
self.ext_bus = CANBUS.pt if CP.networkLocation == car.CarParams.NetworkLocation.fwdCamera else CANBUS.cam self.ext_bus = CANBUS.pt if CP.networkLocation == CarParams.NetworkLocation.fwdCamera else CANBUS.cam
self.apply_steer_last = 0 self.apply_steer_last = 0
self.gra_acc_counter_last = None self.gra_acc_counter_last = None

@ -13,8 +13,8 @@ from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, Ca
from openpilot.selfdrive.car.fw_query_definitions import EcuAddrSubAddr, FwQueryConfig, Request, p16 from openpilot.selfdrive.car.fw_query_definitions import EcuAddrSubAddr, FwQueryConfig, Request, p16
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
NetworkLocation = car.CarParams.NetworkLocation NetworkLocation = CarParams.NetworkLocation
TransmissionType = car.CarParams.TransmissionType TransmissionType = CarParams.TransmissionType
GearShifter = car.CarState.GearShifter GearShifter = car.CarState.GearShifter
Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values']) Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values'])
@ -191,7 +191,7 @@ class VWCarDocs(CarDocs):
package: str = "Adaptive Cruise Control (ACC) & Lane Assist" package: str = "Adaptive Cruise Control (ACC) & Lane Assist"
car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.vw_j533])) car_parts: CarParts = field(default_factory=CarParts.common([CarHarness.vw_j533]))
def init_make(self, CP: car.CarParams): def init_make(self, CP: CarParams):
self.footnotes.append(Footnote.VW_EXP_LONG) self.footnotes.append(Footnote.VW_EXP_LONG)
if "SKODA" in CP.carFingerprint: if "SKODA" in CP.carFingerprint:
self.footnotes.append(Footnote.SKODA_HEATED_WINDSHIELD) self.footnotes.append(Footnote.SKODA_HEATED_WINDSHIELD)

Loading…
Cancel
Save