From 2874a25749a4e200d0b574ff6e9a0abc697b7d24 Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Sun, 23 Jun 2024 17:03:37 -0700 Subject: [PATCH] FrogPilot community - Add SNG for 2017 Chevy Volt Co-Authored-By: garrettpall <76917194+garrettpall@users.noreply.github.com> --- selfdrive/car/gm/carcontroller.py | 9 +++++++-- selfdrive/car/gm/carstate.py | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/selfdrive/car/gm/carcontroller.py b/selfdrive/car/gm/carcontroller.py index c323a278c..40e4050a7 100644 --- a/selfdrive/car/gm/carcontroller.py +++ b/selfdrive/car/gm/carcontroller.py @@ -6,7 +6,7 @@ from openpilot.common.params_pyx import Params from opendbc.can.packer import CANPacker from openpilot.selfdrive.car import apply_driver_steer_torque_limits, create_gas_interceptor_command from openpilot.selfdrive.car.gm import gmcan -from openpilot.selfdrive.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons, GMFlags, CC_ONLY_CAR, SDGM_CAR, EV_CAR +from openpilot.selfdrive.car.gm.values import DBC, CanBus, CarControllerParams, CruiseButtons, GMFlags, CC_ONLY_CAR, SDGM_CAR, EV_CAR, AccState from openpilot.selfdrive.car.interfaces import CarControllerBase VisualAlert = car.CarControl.HUDControl.VisualAlert @@ -161,8 +161,13 @@ class CarController(CarControllerBase): resume = actuators.longControlState != LongCtrlState.starting or CC.cruiseControl.resume at_full_stop = at_full_stop and not resume + if CC.cruiseControl.resume and CS.pcm_acc_status == AccState.STANDSTILL and frogpilot_toggles.volt_sng: + acc_engaged = False + else: + acc_engaged = CC.enabled + # GasRegenCmdActive needs to be 1 to avoid cruise faults. It describes the ACC state, not actuation - can_sends.append(gmcan.create_gas_regen_command(self.packer_pt, CanBus.POWERTRAIN, self.apply_gas, idx, CC.enabled, at_full_stop)) + can_sends.append(gmcan.create_gas_regen_command(self.packer_pt, CanBus.POWERTRAIN, self.apply_gas, idx, acc_engaged, at_full_stop)) can_sends.append(gmcan.create_friction_brake_command(self.packer_ch, friction_brake_bus, self.apply_brake, idx, CC.enabled, near_stop, at_full_stop, self.CP)) diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index f64c70717..07a9dfa55 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -172,6 +172,8 @@ class CarState(CarStateBase): # FrogPilot CarState functions fp_ret.hasMenu = not (self.CP.flags & GMFlags.NO_CAMERA.value or self.CP.carFingerprint in CC_ONLY_CAR) + self.pcm_acc_status = pt_cp.vl["AcceleratorPedal2"]["CruiseState"] + return ret, fp_ret @staticmethod