diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index a6f895d0..bdd1b107 100755 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -369,8 +369,13 @@ class CarInterface(CarInterfaceBase): events.add(EventName.belowEngageSpeed) if ret.cruiseState.standstill: events.add(EventName.resumeRequired) - if ret.vEgo < self.CP.minSteerSpeed: + if ret.vEgo < self.CP.minSteerSpeed and not self.disable_belowSteerSpeed: events.add(EventName.belowSteerSpeed) + self.belowSteerSpeed_shown = True + + # Disable the "belowSteerSpeed" event after it's been shown once to not annoy the driver + if self.belowSteerSpeed_shown and ret.vEgo > self.CP.minSteerSpeed: + self.disable_belowSteerSpeed = True if (self.CP.flags & GMFlags.CC_LONG.value) and ret.vEgo < self.CP.minEnableSpeed and ret.cruiseState.enabled: events.add(EventName.speedTooLow) diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index ea59e3b3..b423803e 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -102,6 +102,9 @@ class CarInterfaceBase(ABC): # FrogPilot variables params = Params() + self.belowSteerSpeed_shown = False + self.disable_belowSteerSpeed = False + @staticmethod def get_pid_accel_limits(CP, current_speed, cruise_speed, frogpilot_variables): if frogpilot_variables.sport_plus: