diff --git a/.importlinter b/.importlinter index 2d82ad7f1a..1f31cb4d3c 100644 --- a/.importlinter +++ b/.importlinter @@ -8,7 +8,7 @@ type = forbidden source_modules = openpilot.selfdrive.car forbidden_modules = - openpilot.common.params + openpilot.common openpilot.selfdrive.controls openpilot.system openpilot.body @@ -23,6 +23,15 @@ ignore_imports = # remove these openpilot.selfdrive.car.interfaces -> openpilot.selfdrive.controls.lib.events openpilot.selfdrive.car.body.carcontroller -> openpilot.selfdrive.controls.lib.pid + openpilot.selfdrive.car.tests.test_docs -> openpilot.common.basedir + openpilot.selfdrive.car.docs -> openpilot.common.basedir + # car interface will not filter the speed + openpilot.selfdrive.car.interfaces -> openpilot.common.simple_kalman + openpilot.selfdrive.car.gm.interface -> openpilot.common.basedir + openpilot.selfdrive.car.interfaces -> openpilot.common.basedir + # these two will still live in openpilot, but require some modification + openpilot.selfdrive.car.fw_versions -> openpilot.common.params + openpilot.selfdrive.car.ecu_addrs -> openpilot.common.params # these are okay openpilot.selfdrive.car.card -> openpilot.common.swaglog @@ -39,7 +48,5 @@ ignore_imports = openpilot.selfdrive.car.tests.test_car_interfaces -> openpilot.selfdrive.controls.lib.latcontrol_pid openpilot.selfdrive.car.card -> openpilot.common.params openpilot.selfdrive.car.tests.test_models -> openpilot.common.params - # these two will still live in openpilot, but require some modification - openpilot.selfdrive.car.fw_versions -> openpilot.common.params - openpilot.selfdrive.car.ecu_addrs -> openpilot.common.params + openpilot.selfdrive.car.tests.test_models -> openpilot.common.basedir unmatched_ignore_imports_alerting = warn diff --git a/common/utils.py b/common/utils.py deleted file mode 100644 index b9de020ee6..0000000000 --- a/common/utils.py +++ /dev/null @@ -1,11 +0,0 @@ -class Freezable: - _frozen: bool = False - - def freeze(self): - if not self._frozen: - self._frozen = True - - def __setattr__(self, *args, **kwargs): - if self._frozen: - raise Exception("cannot modify frozen object") - super().__setattr__(*args, **kwargs) diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index 0cdc6e9d8d..1da53d4cfa 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -9,9 +9,8 @@ import capnp from cereal import car from panda.python.uds import SERVICE_TYPE -from openpilot.common.numpy_fast import clip, interp -from openpilot.common.utils import Freezable from openpilot.selfdrive.car.docs_definitions import CarDocs +from openpilot.selfdrive.car.helpers import clip, interp # set up logging carlog = logging.getLogger('carlog') @@ -263,6 +262,19 @@ class CarSpecs: return replace(self, **kwargs) +class Freezable: + _frozen: bool = False + + def freeze(self): + if not self._frozen: + self._frozen = True + + def __setattr__(self, *args, **kwargs): + if self._frozen: + raise Exception("cannot modify frozen object") + super().__setattr__(*args, **kwargs) + + @dataclass(order=True) class PlatformConfig(Freezable): car_docs: list[CarDocs] diff --git a/selfdrive/car/chrysler/carstate.py b/selfdrive/car/chrysler/carstate.py index 91b922c596..c8b084aa62 100644 --- a/selfdrive/car/chrysler/carstate.py +++ b/selfdrive/car/chrysler/carstate.py @@ -1,9 +1,9 @@ from cereal import car -from openpilot.common.conversions import Conversions as CV from opendbc.can.parser import CANParser from opendbc.can.can_define import CANDefine -from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.interfaces import CarStateBase class CarState(CarStateBase): diff --git a/selfdrive/car/conversions.py b/selfdrive/car/conversions.py new file mode 100644 index 0000000000..b02b33c625 --- /dev/null +++ b/selfdrive/car/conversions.py @@ -0,0 +1,19 @@ +import numpy as np + +class Conversions: + # Speed + MPH_TO_KPH = 1.609344 + KPH_TO_MPH = 1. / MPH_TO_KPH + MS_TO_KPH = 3.6 + KPH_TO_MS = 1. / MS_TO_KPH + MS_TO_MPH = MS_TO_KPH * KPH_TO_MPH + MPH_TO_MS = MPH_TO_KPH * KPH_TO_MS + MS_TO_KNOTS = 1.9438 + KNOTS_TO_MS = 1. / MS_TO_KNOTS + + # Angle + DEG_TO_RAD = np.pi / 180. + RAD_TO_DEG = 1. / DEG_TO_RAD + + # Mass + LB_TO_KG = 0.453592 diff --git a/selfdrive/car/docs_definitions.py b/selfdrive/car/docs_definitions.py index a04653c140..f039fea9ac 100644 --- a/selfdrive/car/docs_definitions.py +++ b/selfdrive/car/docs_definitions.py @@ -5,7 +5,7 @@ from dataclasses import dataclass, field from enum import Enum from cereal import car -from openpilot.common.conversions import Conversions as CV +from openpilot.selfdrive.car.conversions import Conversions as CV GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2 MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)" diff --git a/selfdrive/car/filter_simple.py b/selfdrive/car/filter_simple.py new file mode 100644 index 0000000000..0ec7a51562 --- /dev/null +++ b/selfdrive/car/filter_simple.py @@ -0,0 +1,18 @@ +class FirstOrderFilter: + # first order filter + def __init__(self, x0, rc, dt, initialized=True): + self.x = x0 + self.dt = dt + self.update_alpha(rc) + self.initialized = initialized + + def update_alpha(self, rc): + self.alpha = self.dt / (rc + self.dt) + + def update(self, x): + if self.initialized: + self.x = (1. - self.alpha) * self.x + self.alpha * x + else: + self.initialized = True + self.x = x + return self.x diff --git a/selfdrive/car/ford/carcontroller.py b/selfdrive/car/ford/carcontroller.py index 9628dc651d..961d7086c4 100644 --- a/selfdrive/car/ford/carcontroller.py +++ b/selfdrive/car/ford/carcontroller.py @@ -1,9 +1,9 @@ from cereal import car from opendbc.can.packer import CANPacker -from openpilot.common.numpy_fast import clip from openpilot.selfdrive.car import apply_std_steer_angle_limits from openpilot.selfdrive.car.ford import fordcan from openpilot.selfdrive.car.ford.values import CarControllerParams, FordFlags +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.interfaces import CarControllerBase, V_CRUISE_MAX LongCtrlState = car.CarControl.Actuators.LongControlState diff --git a/selfdrive/car/ford/carstate.py b/selfdrive/car/ford/carstate.py index d7130681d4..ed707a5f78 100644 --- a/selfdrive/car/ford/carstate.py +++ b/selfdrive/car/ford/carstate.py @@ -1,7 +1,7 @@ from cereal import car from opendbc.can.can_define import CANDefine from opendbc.can.parser import CANParser -from openpilot.common.conversions import Conversions as CV +from openpilot.selfdrive.car.conversions import Conversions as CV 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 diff --git a/selfdrive/car/ford/interface.py b/selfdrive/car/ford/interface.py index 54cf865109..b872be212b 100644 --- a/selfdrive/car/ford/interface.py +++ b/selfdrive/car/ford/interface.py @@ -1,7 +1,7 @@ from cereal import car from panda import Panda -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import create_button_events, get_safety_config +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.ford.fordcan import CanBus from openpilot.selfdrive.car.ford.values import Ecu, FordFlags from openpilot.selfdrive.car.interfaces import CarInterfaceBase diff --git a/selfdrive/car/ford/radar_interface.py b/selfdrive/car/ford/radar_interface.py index 209bbebae3..f405373661 100644 --- a/selfdrive/car/ford/radar_interface.py +++ b/selfdrive/car/ford/radar_interface.py @@ -1,7 +1,7 @@ from math import cos, sin from cereal import car from opendbc.can.parser import CANParser -from openpilot.common.conversions import Conversions as CV +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.ford.fordcan import CanBus from openpilot.selfdrive.car.ford.values import DBC, RADAR from openpilot.selfdrive.car.interfaces import RadarInterfaceBase diff --git a/selfdrive/car/gm/carcontroller.py b/selfdrive/car/gm/carcontroller.py index cffaf4791d..dff280ed9a 100644 --- a/selfdrive/car/gm/carcontroller.py +++ b/selfdrive/car/gm/carcontroller.py @@ -1,10 +1,10 @@ from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import interp 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.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 diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index a1129c59c8..97dbd389f4 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -1,9 +1,9 @@ import copy from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import mean 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.helpers import mean from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.gm.values import DBC, AccState, CanBus, STEER_THRESHOLD diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index 1d4a6066cc..31b874502b 100755 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -5,8 +5,8 @@ from math import fabs, exp from panda import Panda from openpilot.common.basedir import BASEDIR -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import create_button_events, get_safety_config, get_friction +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.gm.radar_interface import RADAR_HEADER_MSG from openpilot.selfdrive.car.gm.values import CAR, CruiseButtons, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, CanBus from openpilot.selfdrive.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, FRICTION_THRESHOLD, LatControlInputs, NanoFFModel diff --git a/selfdrive/car/gm/radar_interface.py b/selfdrive/car/gm/radar_interface.py index b893babd31..b305d418b8 100755 --- a/selfdrive/car/gm/radar_interface.py +++ b/selfdrive/car/gm/radar_interface.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 import math from cereal import car -from openpilot.common.conversions import Conversions as CV from opendbc.can.parser import CANParser +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.gm.values import DBC, CanBus from openpilot.selfdrive.car.interfaces import RadarInterfaceBase diff --git a/selfdrive/car/helpers.py b/selfdrive/car/helpers.py new file mode 100644 index 0000000000..81f6d6a6bc --- /dev/null +++ b/selfdrive/car/helpers.py @@ -0,0 +1,22 @@ +def clip(x, lo, hi): + return max(lo, min(hi, x)) + + +def interp(x, xp, fp): + N = len(xp) + + def get_interp(xv): + hi = 0 + while hi < N and xv > xp[hi]: + hi += 1 + low = hi - 1 + return fp[-1] if hi == N and xv > xp[low] else ( + fp[0] if hi == 0 else + (xv - xp[low]) * (fp[hi] - fp[low]) / (xp[hi] - xp[low]) + fp[low]) + + return [get_interp(v) for v in x] if hasattr(x, '__iter__') else get_interp(x) + + +def mean(x): + return sum(x) / len(x) + diff --git a/selfdrive/car/honda/carcontroller.py b/selfdrive/car/honda/carcontroller.py index 86815ae9f5..0f08ee21a8 100644 --- a/selfdrive/car/honda/carcontroller.py +++ b/selfdrive/car/honda/carcontroller.py @@ -1,9 +1,9 @@ from collections import namedtuple from cereal import car -from openpilot.common.numpy_fast import clip, interp from opendbc.can.packer import CANPacker from openpilot.selfdrive.car import DT_CTRL, rate_limit, make_tester_present_msg +from openpilot.selfdrive.car.helpers import clip, interp from openpilot.selfdrive.car.honda import hondacan from openpilot.selfdrive.car.honda.values import CruiseButtons, VISUAL_HUD, HONDA_BOSCH, HONDA_BOSCH_RADARLESS, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams from openpilot.selfdrive.car.interfaces import CarControllerBase diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index c98d1a72d3..956e6a3bd3 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -1,10 +1,10 @@ from collections import defaultdict from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import interp 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.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, \ HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS, \ diff --git a/selfdrive/car/honda/hondacan.py b/selfdrive/car/honda/hondacan.py index 1be496d951..b350455014 100644 --- a/selfdrive/car/honda/hondacan.py +++ b/selfdrive/car/honda/hondacan.py @@ -1,5 +1,5 @@ -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import CanBusBase +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.honda.values import HondaFlags, HONDA_BOSCH, HONDA_BOSCH_RADARLESS, CAR, CarControllerParams # CAN bus layout with relay diff --git a/selfdrive/car/honda/interface.py b/selfdrive/car/honda/interface.py index fdcba8bb81..4c9f9674d3 100755 --- a/selfdrive/car/honda/interface.py +++ b/selfdrive/car/honda/interface.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 from cereal import car from panda import Panda -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import interp +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.helpers import interp from openpilot.selfdrive.car.honda.hondacan import CanBus from openpilot.selfdrive.car.honda.values import CarControllerParams, CruiseButtons, CruiseSettings, HondaFlags, CAR, HONDA_BOSCH, \ HONDA_NIDEC_ALT_SCM_MESSAGES, HONDA_BOSCH_RADARLESS diff --git a/selfdrive/car/honda/values.py b/selfdrive/car/honda/values.py index 5a78995c0a..53e5435f29 100644 --- a/selfdrive/car/honda/values.py +++ b/selfdrive/car/honda/values.py @@ -2,9 +2,9 @@ from dataclasses import dataclass from enum import Enum, IntFlag from cereal import car -from openpilot.common.conversions import Conversions as CV from panda.python import uds from openpilot.selfdrive.car import CarSpecs, PlatformConfig, Platforms, dbc_dict +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, StdQueries, p16 diff --git a/selfdrive/car/hyundai/carcontroller.py b/selfdrive/car/hyundai/carcontroller.py index e6bc83283e..0e3a3f0afd 100644 --- a/selfdrive/car/hyundai/carcontroller.py +++ b/selfdrive/car/hyundai/carcontroller.py @@ -1,8 +1,8 @@ from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import clip from opendbc.can.packer import CANPacker from openpilot.selfdrive.car import DT_CTRL, apply_driver_steer_torque_limits, common_fault_avoidance, make_tester_present_msg +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.hyundai import hyundaicanfd, hyundaican from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CANFD_CAR, CAR diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 41cb9ee457..1b56b3304e 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -3,9 +3,9 @@ import copy import math from cereal import car -from openpilot.common.conversions import Conversions as CV from opendbc.can.parser import CANParser from opendbc.can.can_define import CANDefine +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, CAR, DBC, CAN_GEARS, CAMERA_SCC_CAR, \ CANFD_CAR, Buttons, CarControllerParams diff --git a/selfdrive/car/hyundai/hyundaicanfd.py b/selfdrive/car/hyundai/hyundaicanfd.py index 54804f94fd..bd46f18612 100644 --- a/selfdrive/car/hyundai/hyundaicanfd.py +++ b/selfdrive/car/hyundai/hyundaicanfd.py @@ -1,5 +1,5 @@ -from openpilot.common.numpy_fast import clip from openpilot.selfdrive.car import CanBusBase +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.hyundai.values import HyundaiFlags diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index 8ed0edd319..0db82a7577 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.py @@ -4,8 +4,8 @@ from enum import Enum, IntFlag from cereal import car from panda.python import uds -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, p16 diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index fcdc3d77fe..90d50f0903 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -10,10 +10,10 @@ from functools import cache from cereal import car from openpilot.common.basedir import BASEDIR -from openpilot.common.conversions import Conversions as CV from openpilot.common.simple_kalman import KF1D, get_kalman_gain -from openpilot.common.numpy_fast import clip from openpilot.selfdrive.car import DT_CTRL, apply_hysteresis, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, get_friction, STD_CARGO_KG +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.values import PLATFORMS from openpilot.selfdrive.controls.lib.events import Events from openpilot.selfdrive.pandad import can_capnp_to_list diff --git a/selfdrive/car/mazda/carstate.py b/selfdrive/car/mazda/carstate.py index 83b238fb68..83aa09b66b 100644 --- a/selfdrive/car/mazda/carstate.py +++ b/selfdrive/car/mazda/carstate.py @@ -1,7 +1,7 @@ from cereal import car -from openpilot.common.conversions import Conversions as CV 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.interfaces import CarStateBase from openpilot.selfdrive.car.mazda.values import DBC, LKAS_LIMITS, MazdaFlags diff --git a/selfdrive/car/mazda/interface.py b/selfdrive/car/mazda/interface.py index 6992d49ffe..fcec6b18b0 100755 --- a/selfdrive/car/mazda/interface.py +++ b/selfdrive/car/mazda/interface.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.selfdrive.car.mazda.values import CAR, LKAS_LIMITS from openpilot.selfdrive.car import create_button_events, get_safety_config +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.mazda.values import CAR, LKAS_LIMITS from openpilot.selfdrive.car.interfaces import CarInterfaceBase ButtonType = car.CarState.ButtonEvent.Type diff --git a/selfdrive/car/mazda/values.py b/selfdrive/car/mazda/values.py index a8c808d582..cfd7067db6 100644 --- a/selfdrive/car/mazda/values.py +++ b/selfdrive/car/mazda/values.py @@ -2,8 +2,8 @@ from dataclasses import dataclass, field from enum import IntFlag from cereal import car -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import CarSpecs, DbcDict, PlatformConfig, Platforms, dbc_dict +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.docs_definitions import CarHarness, CarDocs, CarParts from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, StdQueries diff --git a/selfdrive/car/nissan/carstate.py b/selfdrive/car/nissan/carstate.py index 57146b49c4..c38173c3e3 100644 --- a/selfdrive/car/nissan/carstate.py +++ b/selfdrive/car/nissan/carstate.py @@ -2,9 +2,9 @@ import copy from collections import deque from cereal import car from opendbc.can.can_define import CANDefine -from openpilot.selfdrive.car.interfaces import CarStateBase -from openpilot.common.conversions import Conversions as CV from opendbc.can.parser import CANParser +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.nissan.values import CAR, DBC, CarControllerParams TORQUE_SAMPLES = 12 diff --git a/selfdrive/car/subaru/carcontroller.py b/selfdrive/car/subaru/carcontroller.py index acabc2ca5a..c8c2e7417b 100644 --- a/selfdrive/car/subaru/carcontroller.py +++ b/selfdrive/car/subaru/carcontroller.py @@ -1,6 +1,6 @@ -from openpilot.common.numpy_fast import clip, interp from opendbc.can.packer import CANPacker from openpilot.selfdrive.car import apply_driver_steer_torque_limits, common_fault_avoidance, make_tester_present_msg +from openpilot.selfdrive.car.helpers import clip, interp from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.subaru import subarucan from openpilot.selfdrive.car.subaru.values import DBC, GLOBAL_ES_ADDR, CanBus, CarControllerParams, SubaruFlags diff --git a/selfdrive/car/subaru/carstate.py b/selfdrive/car/subaru/carstate.py index 821ff2c151..0501494fdd 100644 --- a/selfdrive/car/subaru/carstate.py +++ b/selfdrive/car/subaru/carstate.py @@ -1,9 +1,9 @@ import copy from cereal import car from opendbc.can.can_define import CANDefine -from openpilot.common.conversions import Conversions as CV -from openpilot.selfdrive.car.interfaces import CarStateBase from opendbc.can.parser import CANParser +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.subaru.values import DBC, CanBus, SubaruFlags from openpilot.selfdrive.car import CanSignalRateCalculator diff --git a/selfdrive/car/tesla/carcontroller.py b/selfdrive/car/tesla/carcontroller.py index 32d83dfb68..ed81fd0c50 100644 --- a/selfdrive/car/tesla/carcontroller.py +++ b/selfdrive/car/tesla/carcontroller.py @@ -1,6 +1,6 @@ -from openpilot.common.numpy_fast import clip from opendbc.can.packer import CANPacker from openpilot.selfdrive.car import apply_std_steer_angle_limits +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.tesla.teslacan import TeslaCAN from openpilot.selfdrive.car.tesla.values import DBC, CANBUS, CarControllerParams diff --git a/selfdrive/car/tesla/carstate.py b/selfdrive/car/tesla/carstate.py index 645ea46014..5aa21cbc7c 100644 --- a/selfdrive/car/tesla/carstate.py +++ b/selfdrive/car/tesla/carstate.py @@ -1,11 +1,11 @@ import copy from collections import deque from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.selfdrive.car.tesla.values import CAR, DBC, CANBUS, GEAR_MAP, DOORS, BUTTONS -from openpilot.selfdrive.car.interfaces import CarStateBase from opendbc.can.parser import CANParser from opendbc.can.can_define import CANDefine +from openpilot.selfdrive.car.conversions import Conversions as CV +from openpilot.selfdrive.car.tesla.values import CAR, DBC, CANBUS, GEAR_MAP, DOORS, BUTTONS +from openpilot.selfdrive.car.interfaces import CarStateBase class CarState(CarStateBase): def __init__(self, CP): diff --git a/selfdrive/car/tesla/teslacan.py b/selfdrive/car/tesla/teslacan.py index f8cd138e77..22e0ac6c4e 100644 --- a/selfdrive/car/tesla/teslacan.py +++ b/selfdrive/car/tesla/teslacan.py @@ -1,6 +1,6 @@ import crcmod -from openpilot.common.conversions import Conversions as CV +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.tesla.values import CANBUS, CarControllerParams diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index f33f8673ea..ea49a49026 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -1,6 +1,6 @@ from cereal import car -from openpilot.common.numpy_fast import clip from openpilot.selfdrive.car import apply_meas_steer_torque_limits, apply_std_steer_angle_limits, common_fault_avoidance, make_can_msg, make_tester_present_msg +from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.toyota import toyotacan from openpilot.selfdrive.car.toyota.values import CAR, STATIC_DSU_MSGS, NO_STOP_TIMER_CAR, TSS2_CAR, \ diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index e02293da4e..6037585c90 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -1,12 +1,12 @@ import copy from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import mean -from openpilot.common.filter_simple import FirstOrderFilter 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.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 diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 8022e8b3ab..ca422c73ef 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -4,9 +4,8 @@ from dataclasses import dataclass, field from enum import Enum, IntFlag from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.selfdrive.car import CarSpecs, PlatformConfig, Platforms -from openpilot.selfdrive.car import AngleRateLimit, dbc_dict +from openpilot.selfdrive.car import CarSpecs, PlatformConfig, Platforms, AngleRateLimit, dbc_dict +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarDocs, Column, CarParts, CarHarness from openpilot.selfdrive.car.fw_query_definitions import FwQueryConfig, Request, StdQueries diff --git a/selfdrive/car/volkswagen/carcontroller.py b/selfdrive/car/volkswagen/carcontroller.py index dda8de6cab..4f8552b16a 100644 --- a/selfdrive/car/volkswagen/carcontroller.py +++ b/selfdrive/car/volkswagen/carcontroller.py @@ -1,8 +1,8 @@ from cereal import car from opendbc.can.packer import CANPacker -from openpilot.common.numpy_fast import clip -from openpilot.common.conversions import Conversions as CV 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.helpers import clip from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.volkswagen import mqbcan, pqcan from openpilot.selfdrive.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags diff --git a/selfdrive/car/volkswagen/carstate.py b/selfdrive/car/volkswagen/carstate.py index ec6403496f..c53639a7dd 100644 --- a/selfdrive/car/volkswagen/carstate.py +++ b/selfdrive/car/volkswagen/carstate.py @@ -1,8 +1,8 @@ import numpy as np from cereal import car -from openpilot.common.conversions import Conversions as CV -from openpilot.selfdrive.car.interfaces import CarStateBase from opendbc.can.parser import CANParser +from openpilot.selfdrive.car.interfaces import CarStateBase +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.volkswagen.values import DBC, CANBUS, NetworkLocation, TransmissionType, GearShifter, \ CarControllerParams, VolkswagenFlags diff --git a/selfdrive/car/volkswagen/values.py b/selfdrive/car/volkswagen/values.py index 69dd63fefd..27816712f6 100644 --- a/selfdrive/car/volkswagen/values.py +++ b/selfdrive/car/volkswagen/values.py @@ -5,8 +5,8 @@ from enum import Enum, IntFlag, StrEnum from cereal import car from panda.python import uds from opendbc.can.can_define import CANDefine -from openpilot.common.conversions import Conversions as CV from openpilot.selfdrive.car import dbc_dict, CarSpecs, DbcDict, PlatformConfig, Platforms +from openpilot.selfdrive.car.conversions import Conversions as CV from openpilot.selfdrive.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \ Device from openpilot.selfdrive.car.fw_query_definitions import EcuAddrSubAddr, FwQueryConfig, Request, p16