diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index 532d4b3fb7..619982a923 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -20,12 +20,17 @@ BUTTONS_DICT = {Buttons.RES_ACCEL: ButtonType.accelCruise, Buttons.SET_DECEL: Bu Buttons.GAP_DIST: ButtonType.gapAdjustCruise, Buttons.CANCEL: ButtonType.cancel} -def set_safety_config_canfd(CAN, can_fd=True): +def set_safety_config_canfd(ret, CAN, can_fd=True): platform = SafetyModel.hyundaiCanfd if can_fd else SafetyModel.hyundai cfgs = [get_safety_config(platform), ] if CAN.ECAN >= 4: cfgs.insert(0, get_safety_config(SafetyModel.noOutput)) - return cfgs + ret.safetyConfigs = cfgs + + if ret.flags & HyundaiFlags.CANFD_HDA2: + ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2 + + return ret class CarInterface(CarInterfaceBase): @@ -286,11 +291,8 @@ class CarInterface(CarInterfaceBase): ret.enableBsm = 0x58b in fingerprint[bus] # *** panda safety config *** - if ret.flags & HyundaiFlags.CANFD_HDA2: - ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2 - if candidate in CANFD_CAR: - ret.safetyConfigs = set_safety_config_canfd(CAN, can_fd=True) + ret = set_safety_config_canfd(ret, CAN, can_fd=True) if hda2 and ret.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING: ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING @@ -299,12 +301,12 @@ class CarInterface(CarInterfaceBase): if ret.flags & HyundaiFlags.CANFD_CAMERA_SCC: ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CAMERA_SCC else: + if ret.flags & HyundaiFlags.CAN_CANFD: + ret.safetyConfigs = set_safety_config_canfd(ret, CAN, can_fd=False) + ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CAN_CANFD if candidate in LEGACY_SAFETY_MODE_CAR: # these cars require a special panda safety mode due to missing counters and checksums in the messages ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.hyundaiLegacy)] - elif ret.flags & HyundaiFlags.CAN_CANFD: - ret.safetyConfigs = set_safety_config_canfd(CAN, can_fd=False) - ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CAN_CANFD else: ret.safetyConfigs = [get_safety_config(car.CarParams.SafetyModel.hyundai, 0)]