diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index 86766aac0..fda6b4080 100755 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -295,8 +295,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 8c94d6b07..f18ef83e2 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -105,6 +105,9 @@ class CarInterfaceBase(ABC): lateral_tune = self.params.get_bool("LateralTune") + 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: