diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index e459f2c28f..9fd92b8857 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.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, - torque_params: car.CarParams.LateralTorqueTuning, friction_compensation: bool) -> float: + torque_params: CarParams.LateralTorqueTuning, friction_compensation: bool) -> float: friction_interp = interp( apply_center_deadzone(lateral_accel_error, lateral_accel_deadzone), [-friction_threshold, friction_threshold], diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 4919be30c9..93d8d553e1 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -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.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.fw_versions import ObdCallback 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 if self.CP.passive: - safety_config = car.CarParams.SafetyConfig.new_message() - safety_config.safetyModel = car.CarParams.SafetyModel.noOutput + safety_config = CarParams.SafetyConfig() + safety_config.safetyModel = CarParams.SafetyModel.noOutput self.CP.safetyConfigs = [safety_config] # Write previous route's CarParams diff --git a/selfdrive/car/docs.py b/selfdrive/car/docs.py index 7bf6a6ad22..9dec0995fa 100755 --- a/selfdrive/car/docs.py +++ b/selfdrive/car/docs.py @@ -6,9 +6,9 @@ import os from enum import Enum from natsort import natsorted -from cereal import car from openpilot.common.basedir import BASEDIR 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.car_helpers import interfaces, get_interface_attr from openpilot.selfdrive.car.values import PLATFORMS @@ -32,7 +32,7 @@ def get_all_car_docs() -> list[CarDocs]: car_docs = platform.config.car_docs # If available, uses experimental longitudinal limits for the docs 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): continue diff --git a/selfdrive/car/docs_definitions.py b/selfdrive/car/docs_definitions.py index f039fea9ac..ce20e651fe 100644 --- a/selfdrive/car/docs_definitions.py +++ b/selfdrive/car/docs_definitions.py @@ -4,8 +4,8 @@ import copy from dataclasses import dataclass, field from enum import Enum -from cereal import car 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 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.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_fingerprint = CP.carFingerprint @@ -316,7 +316,7 @@ class CarDocs: 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.""" def get_detail_sentence(self, CP): diff --git a/selfdrive/car/ford/carstate.py b/selfdrive/car/ford/carstate.py index ed707a5f78..751e73d21f 100644 --- a/selfdrive/car/ford/carstate.py +++ b/selfdrive/car/ford/carstate.py @@ -2,12 +2,13 @@ from cereal import car from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser 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.values import DBC, CarControllerParams, FordFlags from openpilot.selfdrive.car.interfaces import CarStateBase GearShifter = car.CarState.GearShifter -TransmissionType = car.CarParams.TransmissionType +TransmissionType = CarParams.TransmissionType class CarState(CarStateBase): diff --git a/selfdrive/car/ford/values.py b/selfdrive/car/ford/values.py index 38da1dbfc7..d9a62d2587 100644 --- a/selfdrive/car/ford/values.py +++ b/selfdrive/car/ford/values.py @@ -4,7 +4,6 @@ from dataclasses import dataclass, field, replace from enum import Enum, IntFlag 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.data_structures import CarParams from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \ @@ -66,7 +65,7 @@ class FordCarDocs(CarDocs): 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 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]) diff --git a/selfdrive/car/gm/carcontroller.py b/selfdrive/car/gm/carcontroller.py index dff280ed9a..1d2e6bd418 100644 --- a/selfdrive/car/gm/carcontroller.py +++ b/selfdrive/car/gm/carcontroller.py @@ -1,14 +1,15 @@ from cereal import car from opendbc.can.packer import CANPacker 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.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.helpers import interp from openpilot.selfdrive.car.interfaces import CarControllerBase VisualAlert = car.CarControl.HUDControl.VisualAlert -NetworkLocation = car.CarParams.NetworkLocation +NetworkLocation = CarParams.NetworkLocation LongCtrlState = car.CarControl.Actuators.LongControlState # Camera cancels up to 0.1s after brake is pressed, ECM allows 0.5s diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index 97dbd389f4..fecd303e7e 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -3,12 +3,13 @@ from cereal import car from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser 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.interfaces import CarStateBase from openpilot.selfdrive.car.gm.values import DBC, AccState, CanBus, STEER_THRESHOLD -TransmissionType = car.CarParams.TransmissionType -NetworkLocation = car.CarParams.NetworkLocation +TransmissionType = CarParams.TransmissionType +NetworkLocation = CarParams.NetworkLocation STANDSTILL_THRESHOLD = 10 * 0.0311 * CV.KPH_TO_MS diff --git a/selfdrive/car/gm/values.py b/selfdrive/car/gm/values.py index 80ae67146a..8b3645c66f 100644 --- a/selfdrive/car/gm/values.py +++ b/selfdrive/car/gm/values.py @@ -1,6 +1,5 @@ from dataclasses import dataclass, field -from cereal import car from openpilot.selfdrive.car import dbc_dict, PlatformConfig, DbcDict, Platforms, CarSpecs from openpilot.selfdrive.car.data_structures import CarParams from openpilot.selfdrive.car.docs_definitions import CarHarness, CarDocs, CarParts @@ -64,8 +63,8 @@ class CarControllerParams: class GMCarDocs(CarDocs): package: str = "Adaptive Cruise Control (ACC)" - def init_make(self, CP: car.CarParams): - if CP.networkLocation == car.CarParams.NetworkLocation.fwdCamera: + def init_make(self, CP: CarParams): + if CP.networkLocation == CarParams.NetworkLocation.fwdCamera: self.car_parts = CarParts.common([CarHarness.gm]) else: self.car_parts = CarParts.common([CarHarness.obd_ii]) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 956e6a3bd3..56b330a557 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -4,6 +4,7 @@ from cereal import car from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser 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.honda.hondacan import CanBus, get_cruise_speed_conversion 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 from openpilot.selfdrive.car.interfaces import CarStateBase -TransmissionType = car.CarParams.TransmissionType +TransmissionType = CarParams.TransmissionType def get_can_messages(CP, gearbox_msg): diff --git a/selfdrive/car/honda/values.py b/selfdrive/car/honda/values.py index 793fd9687f..ce91d569a0 100644 --- a/selfdrive/car/honda/values.py +++ b/selfdrive/car/honda/values.py @@ -91,7 +91,7 @@ VISUAL_HUD = { class HondaCarDocs(CarDocs): package: str = "Honda Sensing" - def init_make(self, CP: car.CarParams): + def init_make(self, CP: CarParams): 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]) else: diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index c25b6a82df..4bf3c36c22 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.py @@ -2,7 +2,6 @@ import re from dataclasses import dataclass, field from enum import Enum, IntFlag -from cereal import car from panda.python import uds from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict from openpilot.selfdrive.car.conversions import Conversions as CV @@ -108,7 +107,7 @@ class Footnote(Enum): class HyundaiCarDocs(CarDocs): package: str = "Smart Cruise Control (SCC)" - def init_make(self, CP: car.CarParams): + def init_make(self, CP: CarParams): if CP.flags & HyundaiFlags.CANFD: self.footnotes.insert(0, Footnote.CANFD) diff --git a/selfdrive/car/subaru/values.py b/selfdrive/car/subaru/values.py index c2ddbc2a16..4da945b3cf 100644 --- a/selfdrive/car/subaru/values.py +++ b/selfdrive/car/subaru/values.py @@ -1,7 +1,6 @@ from dataclasses import dataclass, field from enum import Enum, IntFlag -from cereal import car from panda.python import uds from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict 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])) 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]) if CP.experimentalLongitudinalAvailable: diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 6037585c90..2e927a7ca6 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -5,13 +5,14 @@ from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser from openpilot.selfdrive.car import DT_CTRL 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.helpers import mean from openpilot.selfdrive.car.interfaces import CarStateBase 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 -SteerControlType = car.CarParams.SteerControlType +SteerControlType = CarParams.SteerControlType # 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 diff --git a/selfdrive/car/toyota/interface.py b/selfdrive/car/toyota/interface.py index 6f789cde09..eb5b6d09fe 100644 --- a/selfdrive/car/toyota/interface.py +++ b/selfdrive/car/toyota/interface.py @@ -10,7 +10,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase ButtonType = car.CarState.ButtonEvent.Type EventName = car.CarEvent.EventName -SteerControlType = car.CarParams.SteerControlType +SteerControlType = CarParams.SteerControlType class CarInterface(CarInterfaceBase): diff --git a/selfdrive/car/volkswagen/carcontroller.py b/selfdrive/car/volkswagen/carcontroller.py index 4f8552b16a..1425a97658 100644 --- a/selfdrive/car/volkswagen/carcontroller.py +++ b/selfdrive/car/volkswagen/carcontroller.py @@ -2,6 +2,7 @@ from cereal import car from opendbc.can.packer import CANPacker 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.data_structures import CarParams from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.volkswagen import mqbcan, pqcan @@ -17,7 +18,7 @@ class CarController(CarControllerBase): self.CCP = CarControllerParams(CP) self.CCS = pqcan if CP.flags & VolkswagenFlags.PQ else mqbcan 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.gra_acc_counter_last = None diff --git a/selfdrive/car/volkswagen/values.py b/selfdrive/car/volkswagen/values.py index 24cf962360..416d3e53da 100644 --- a/selfdrive/car/volkswagen/values.py +++ b/selfdrive/car/volkswagen/values.py @@ -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 Ecu = CarParams.Ecu -NetworkLocation = car.CarParams.NetworkLocation -TransmissionType = car.CarParams.TransmissionType +NetworkLocation = CarParams.NetworkLocation +TransmissionType = CarParams.TransmissionType GearShifter = car.CarState.GearShifter 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" 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) if "SKODA" in CP.carFingerprint: self.footnotes.append(Footnote.SKODA_HEATED_WINDSHIELD)