diff --git a/selfdrive/car/chrysler/interface.py b/selfdrive/car/chrysler/interface.py index 93858bf125..45d1ecdde9 100755 --- a/selfdrive/car/chrysler/interface.py +++ b/selfdrive/car/chrysler/interface.py @@ -2,7 +2,7 @@ from cereal import car from panda import Panda from selfdrive.car import STD_CARGO_KG, get_safety_config, create_mads_event -from selfdrive.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, BUTTON_STATES +from selfdrive.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, ChryslerFlagsSP, BUTTON_STATES from selfdrive.car.interfaces import CarInterfaceBase ButtonType = car.CarState.ButtonEvent.Type @@ -82,7 +82,7 @@ class CarInterface(CarInterfaceBase): ret.mass = 3405. + STD_CARGO_KG ret.minSteerSpeed = 16 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning, 1.0, False) - ret.flags |= ChryslerFlags.SP_RAM_HD_PARAMSD_IGNORE.value + ret.spFlags |= ChryslerFlagsSP.SP_RAM_HD_PARAMSD_IGNORE.value else: raise ValueError(f"Unsupported car: {candidate}") diff --git a/selfdrive/car/chrysler/values.py b/selfdrive/car/chrysler/values.py index c7d1f9905d..ff6da1ce00 100644 --- a/selfdrive/car/chrysler/values.py +++ b/selfdrive/car/chrysler/values.py @@ -14,7 +14,10 @@ Ecu = car.CarParams.Ecu class ChryslerFlags(IntFlag): HIGHER_MIN_STEERING_SPEED = 1 - SP_RAM_HD_PARAMSD_IGNORE = 2 + +class ChryslerFlagsSP(IntFlag): + SP_RAM_HD_PARAMSD_IGNORE = 1 + class CAR: # Chrysler diff --git a/selfdrive/car/hyundai/carcontroller.py b/selfdrive/car/hyundai/carcontroller.py index 0db9f7258a..40d6d207dc 100644 --- a/selfdrive/car/hyundai/carcontroller.py +++ b/selfdrive/car/hyundai/carcontroller.py @@ -8,7 +8,7 @@ from opendbc.can.packer import CANPacker from selfdrive.car import apply_driver_steer_torque_limits from selfdrive.car.hyundai import hyundaicanfd, hyundaican from selfdrive.car.hyundai.hyundaicanfd import CanBus -from selfdrive.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CANFD_CAR, CAR, CAMERA_SCC_CAR +from selfdrive.car.hyundai.values import HyundaiFlags, HyundaiFlagsSP, Buttons, CarControllerParams, CANFD_CAR, CAR, CAMERA_SCC_CAR from selfdrive.controls.lib.drive_helpers import HYUNDAI_V_CRUISE_MIN VisualAlert = car.CarControl.HUDControl.VisualAlert @@ -161,7 +161,7 @@ class CarController: self.lat_active_last = CC.latActive - escc = self.CP.flags & HyundaiFlags.SP_ENHANCED_SCC.value + escc = self.CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC.value can_sends = [] diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 07e16e0213..00b36e3c6a 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -7,7 +7,7 @@ from common.conversions import Conversions as CV from opendbc.can.parser import CANParser from opendbc.can.can_define import CANDefine from selfdrive.car.hyundai.hyundaicanfd import CanBus -from selfdrive.car.hyundai.values import HyundaiFlags, CAR, DBC, CAN_GEARS, CAMERA_SCC_CAR, CANFD_CAR, EV_CAR, HYBRID_CAR, NON_SCC_CAR, NON_SCC_NO_FCA_CAR, NON_SCC_RADAR_FCA_CAR, Buttons, CarControllerParams +from selfdrive.car.hyundai.values import HyundaiFlags, HyundaiFlagsSP, CAR, DBC, CAN_GEARS, CAMERA_SCC_CAR, CANFD_CAR, EV_CAR, HYBRID_CAR, NON_SCC_CAR, NON_SCC_NO_FCA_CAR, NON_SCC_RADAR_FCA_CAR, Buttons, CarControllerParams from selfdrive.car.interfaces import CarStateBase PREV_BUTTON_SAMPLES = 8 @@ -156,7 +156,7 @@ class CarState(CarStateBase): aeb_braking = cp_cruise.vl[aeb_src]["CF_VSM_DecCmdAct"] != 0 or cp_cruise.vl[aeb_src][aeb_sig] != 0 ret.stockFcw = aeb_warning and not aeb_braking ret.stockAeb = aeb_warning and aeb_braking - elif self.CP.flags & HyundaiFlags.SP_ENHANCED_SCC: + elif self.CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC: aeb_src = "ESCC" aeb_sig = "FCA_CmdAct" if self.CP.flags & HyundaiFlags.USE_FCA.value else "AEB_CmdAct" aeb_warning_sig = "CF_VSM_Warn_FCA11" if self.CP.flags & HyundaiFlags.USE_FCA.value else "CF_VSM_Warn_SCC12" @@ -194,12 +194,12 @@ class CarState(CarStateBase): ret.cruiseState.available = ret.cruiseState.available and self.mainEnabled self.prev_mads_enabled = self.mads_enabled self.prev_lfa_enabled = self.lfa_enabled - if self.CP.flags & HyundaiFlags.SP_CAN_LFA_BTN: + if self.CP.spFlags & HyundaiFlagsSP.SP_CAN_LFA_BTN: self.lfa_enabled = cp.vl["BCM_PO_11"]["LFA_Pressed"] self.mads_enabled = False if not self.control_initialized else ret.cruiseState.available - if self.CP.flags & HyundaiFlags.SP_NAV_MSG: + if self.CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG: self._update_traffic_signals(self.CP, cp, cp_cam) ret.cruiseState.speedLimit = self._calculate_speed_limit() * speed_conv @@ -280,7 +280,7 @@ class CarState(CarStateBase): if self.CP.flags & HyundaiFlags.CANFD_HDA2: self.cam_0x2a4 = copy.copy(cp_cam.vl["CAM_0x2a4"]) - if self.CP.flags & HyundaiFlags.SP_NAV_MSG: + if self.CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG: self._update_traffic_signals(self.CP, cp, cp_cam) ret.cruiseState.speedLimit = self._calculate_speed_limit() * speed_factor @@ -439,11 +439,11 @@ class CarState(CarStateBase): signals.append(("CF_Lvr_Gear", "LVR12")) checks.append(("LVR12", 100)) - if CP.flags & HyundaiFlags.SP_CAN_LFA_BTN: + if CP.spFlags & HyundaiFlagsSP.SP_CAN_LFA_BTN: signals.append(("LFA_Pressed", "BCM_PO_11")) checks.append(("BCM_PO_11", 50)) - if CP.flags & HyundaiFlags.SP_ENHANCED_SCC.value: + if CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC.value: if CP.flags & HyundaiFlags.USE_FCA.value: signals += [ ("FCA_CmdAct", "ESCC"), @@ -460,7 +460,7 @@ class CarState(CarStateBase): ] checks.append(("ESCC", 50)) - if CP.flags & HyundaiFlags.SP_NAV_MSG: + if CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG: signals.append(("SpeedLim_Nav_Clu", "Navi_HU")) checks.append(("Navi_HU", 5)) @@ -646,7 +646,7 @@ class CarState(CarStateBase): ("ACCELERATOR_BRAKE_ALT", 100), ] - if CP.flags & HyundaiFlags.CANFD_HDA2 and CP.flags & HyundaiFlags.SP_NAV_MSG: + if CP.flags & HyundaiFlags.CANFD_HDA2 and CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG: signals.append(("SPEED_LIMIT_1", "CLUSTER_SPEED_LIMIT")) checks.append(("CLUSTER_SPEED_LIMIT", 10)) @@ -678,7 +678,7 @@ class CarState(CarStateBase): ("SCC_CONTROL", 50), ] - if not (CP.flags & HyundaiFlags.CANFD_HDA2) and CP.flags & HyundaiFlags.SP_NAV_MSG: + if not (CP.flags & HyundaiFlags.CANFD_HDA2) and CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG: signals.append(("SPEED_LIMIT_1", "CLUSTER_SPEED_LIMIT")) checks.append(("CLUSTER_SPEED_LIMIT", 10)) diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index e9ed98ccf5..72f443d26c 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -4,7 +4,7 @@ from panda import Panda from common.conversions import Conversions as CV from common.params import Params from selfdrive.car.hyundai.hyundaicanfd import CanBus -from selfdrive.car.hyundai.values import HyundaiFlags, CAR, DBC, CANFD_CAR, CAMERA_SCC_CAR, CANFD_RADAR_SCC_CAR, EV_CAR, HYBRID_CAR, LEGACY_SAFETY_MODE_CAR, NON_SCC_CAR, Buttons +from selfdrive.car.hyundai.values import HyundaiFlags, HyundaiFlagsSP, CAR, DBC, CANFD_CAR, CAMERA_SCC_CAR, CANFD_RADAR_SCC_CAR, EV_CAR, HYBRID_CAR, LEGACY_SAFETY_MODE_CAR, NON_SCC_CAR, Buttons from selfdrive.car.hyundai.radar_interface import RADAR_START_ADDR from selfdrive.car import STD_CARGO_KG, create_button_event, scale_tire_stiffness, get_safety_config, create_mads_event from selfdrive.car.interfaces import CarInterfaceBase @@ -60,7 +60,7 @@ class CarInterface(CarInterfaceBase): ret.flags |= HyundaiFlags.USE_FCA.value if 0x2AB in fingerprint[0]: - ret.flags |= HyundaiFlags.SP_ENHANCED_SCC.value + ret.spFlags |= HyundaiFlagsSP.SP_ENHANCED_SCC.value ret.steerActuatorDelay = 0.1 # Default delay ret.steerLimitTimer = 0.4 @@ -265,12 +265,12 @@ class CarInterface(CarInterfaceBase): ret.enableBsm = 0x1e5 in fingerprint[CAN.ECAN] if 0x1fa in fingerprint[CAN.ECAN]: - ret.flags |= HyundaiFlags.SP_NAV_MSG.value + ret.spFlags |= HyundaiFlagsSP.SP_NAV_MSG.value else: ret.enableBsm = 0x58b in fingerprint[0] if 0x544 in fingerprint[0]: - ret.flags |= HyundaiFlags.SP_NAV_MSG.value + ret.spFlags |= HyundaiFlagsSP.SP_NAV_MSG.value # *** panda safety config *** if candidate in CANFD_CAR: @@ -296,10 +296,10 @@ class CarInterface(CarInterfaceBase): ret.safetyConfigs[0].safetyParam |= Panda.FLAG_HYUNDAI_CAMERA_SCC if 0x391 in fingerprint[0]: - ret.flags |= HyundaiFlags.SP_CAN_LFA_BTN.value + ret.spFlags |= HyundaiFlagsSP.SP_CAN_LFA_BTN.value ret.safetyConfigs[0].safetyParam |= Panda.FLAG_HYUNDAI_LFA_BTN - if ret.flags & HyundaiFlags.SP_ENHANCED_SCC: + if ret.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC: ret.safetyConfigs[0].safetyParam |= Panda.FLAG_HYUNDAI_ESCC if candidate in NON_SCC_CAR: @@ -334,7 +334,7 @@ class CarInterface(CarInterfaceBase): @staticmethod def init(CP, logcan, sendcan): - if CP.openpilotLongitudinalControl and not ((CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value) or (CP.flags & HyundaiFlags.SP_ENHANCED_SCC)) and \ + if CP.openpilotLongitudinalControl and not ((CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value) or (CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC)) and \ CP.carFingerprint not in CAMERA_SCC_CAR: addr, bus = 0x7d0, 0 if CP.flags & HyundaiFlags.CANFD_HDA2.value: diff --git a/selfdrive/car/hyundai/radar_interface.py b/selfdrive/car/hyundai/radar_interface.py index 55c07502e3..85517cb1be 100644 --- a/selfdrive/car/hyundai/radar_interface.py +++ b/selfdrive/car/hyundai/radar_interface.py @@ -4,14 +4,14 @@ import math from cereal import car from opendbc.can.parser import CANParser from selfdrive.car.interfaces import RadarInterfaceBase -from selfdrive.car.hyundai.values import DBC, HyundaiFlags +from selfdrive.car.hyundai.values import DBC, HyundaiFlagsSP RADAR_START_ADDR = 0x500 RADAR_MSG_COUNT = 32 def get_radar_can_parser(CP): - if (CP.flags & HyundaiFlags.SP_ENHANCED_SCC) and DBC[CP.carFingerprint]['radar'] is None: + if (CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC) and DBC[CP.carFingerprint]['radar'] is None: msg = "ESCC" signals = [ ("ObjValid", msg), @@ -47,7 +47,7 @@ def get_radar_can_parser(CP): class RadarInterface(RadarInterfaceBase): def __init__(self, CP): super().__init__(CP) - self.enhanced_scc = (CP.flags & HyundaiFlags.SP_ENHANCED_SCC) and DBC[CP.carFingerprint]['radar'] is None + self.enhanced_scc = (CP.spFlags & HyundaiFlagsSP.SP_ENHANCED_SCC) and DBC[CP.carFingerprint]['radar'] is None self.updated_messages = set() self.trigger_msg = 0x2AB if self.enhanced_scc else RADAR_START_ADDR + RADAR_MSG_COUNT - 1 self.track_id = 0 diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py index 5c2bdb4a90..42a51ed0a3 100644 --- a/selfdrive/car/hyundai/values.py +++ b/selfdrive/car/hyundai/values.py @@ -63,9 +63,12 @@ class HyundaiFlags(IntFlag): CANFD_ALT_GEARS_2 = 64 SEND_LFA = 128 USE_FCA = 256 - SP_ENHANCED_SCC = 512 - SP_CAN_LFA_BTN = 1024 - SP_NAV_MSG = 2048 + + +class HyundaiFlagsSP(IntFlag): + SP_ENHANCED_SCC = 1 + SP_CAN_LFA_BTN = 2 + SP_NAV_MSG = 4 class CAR: diff --git a/selfdrive/locationd/paramsd.py b/selfdrive/locationd/paramsd.py index 8980994395..d5750b2ce1 100755 --- a/selfdrive/locationd/paramsd.py +++ b/selfdrive/locationd/paramsd.py @@ -8,7 +8,7 @@ from cereal import car from common.params import Params, put_nonblocking from common.realtime import config_realtime_process, DT_MDL from common.numpy_fast import clip -from selfdrive.car.chrysler.values import ChryslerFlags +from selfdrive.car.chrysler.values import ChryslerFlagsSP from selfdrive.locationd.models.car_kf import CarKalman, ObservationKind, States from selfdrive.locationd.models.constants import GENERATED_DIR from system.swaglog import cloudlog @@ -215,7 +215,7 @@ def main(sm=None, pm=None): 0.2 <= liveParameters.stiffnessFactor <= 5.0, min_sr <= liveParameters.steerRatio <= max_sr, )) - if CP.carName == "chrysler" and CP.flags & ChryslerFlags.SP_RAM_HD_PARAMSD_IGNORE: + if CP.carName == "chrysler" and CP.spFlags & ChryslerFlagsSP.SP_RAM_HD_PARAMSD_IGNORE: liveParameters.valid = True liveParameters.steerRatioStd = float(P[States.STEER_RATIO]) liveParameters.stiffnessFactorStd = float(P[States.STIFFNESS])