diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index 7b96b7d2c..3998c698f 100644 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -133,6 +133,10 @@ class CarInterface(CarInterfaceBase): ret.openpilotLongitudinalControl = True ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_CAM_LONG + # CAM_LONG flag only if camera-capable and conditional_experimental_mode enabled + if candidate in CAMERA_ACC_CAR and getattr(frogpilot_toggles, "conditional_experimental_mode", False): + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_CAM_LONG + elif candidate in SDGM_CAR: ret.longitudinalTuning.kiV = [0., 0.] # TODO: tuning ret.experimentalLongitudinalAvailable = False @@ -144,7 +148,12 @@ class CarInterface(CarInterfaceBase): ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_HW_SDGM else: # ASCM, OBD-II harness - ret.openpilotLongitudinalControl = not frogpilot_toggles.disable_openpilot_long + try: + disable_long = frogpilot_toggles.disable_openpilot_long + except AttributeError: + disable_long = params.get_bool("DisableOpenpilotLongitudinal") + + ret.openpilotLongitudinalControl = not disable_long ret.networkLocation = NetworkLocation.gateway ret.radarUnavailable = RADAR_HEADER_MSG not in fingerprint[CanBus.OBSTACLE] and not docs ret.pcmCruise = False # stock non-adaptive cruise control is kept off @@ -286,14 +295,15 @@ class CarInterface(CarInterfaceBase): elif candidate in CC_ONLY_CAR: ret.flags |= GMFlags.CC_LONG.value - ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_CC_LONG ret.radarUnavailable = True ret.experimentalLongitudinalAvailable = False ret.minEnableSpeed = 24 * CV.MPH_TO_MS ret.openpilotLongitudinalControl = not frogpilot_toggles.disable_openpilot_long ret.pcmCruise = False - if not ret.enableGasInterceptor and candidate in CC_ONLY_CAR: + if not ret.enableGasInterceptor: + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_GM_CC_LONG + ret.longitudinalTuning.kpBP = [10.7, 10.8, 28.] # 10.7 m/s == 24 mph ret.longitudinalTuning.kpV = [0., 20., 20.] # set lower end to 0 since we can't drive below that speed ret.longitudinalTuning.deadzoneBP = [0.]