From 65ff1b1a7009a07ff575d98d21eeca131037706c Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Sat, 8 Aug 2026 15:43:49 -0700 Subject: [PATCH] Track speed limit state independently of lookahead --- speed_limit.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/speed_limit.go b/speed_limit.go index c3705cf..8fb93f5 100644 --- a/speed_limit.go +++ b/speed_limit.go @@ -88,17 +88,18 @@ func (s *SpeedLimitState) SpeedLimitFinalSuggestion(enableSpeedActive bool, setS } func (s *SpeedLimitState) SuggestNewSpeedLimit(currentWay CurrentWay, car CarState) float32 { - slSuggestedSpeed := ms.Settings.PrioritySpeedLimit(float32(currentWay.EffectiveMaxSpeed())) - if slSuggestedSpeed == 0 && ms.Settings.SpeedLimitSettings.HoldLastSeenSpeedLimit { - slSuggestedSpeed = float32(s.Limit.LastValue) + s.Limit.Update(ms.Settings.PrioritySpeedLimit(float32(currentWay.EffectiveMaxSpeed()))) + currentLimit := s.Limit.Value + if currentLimit == 0 && ms.Settings.SpeedLimitSettings.HoldLastSeenSpeedLimit { + currentLimit = s.Limit.LastValue } + slSuggestedSpeed := currentLimit if slSuggestedSpeed > 0 { slSuggestedSpeed += ms.Settings.SpeedLimitSettings.SpeedLimitOffset } if s.NextLimit.Value > 0 { offsetNextSpeedLimit := s.NextLimit.Value + ms.Settings.SpeedLimitSettings.SpeedLimitOffset - s.Limit.Update(ms.Settings.PrioritySpeedLimit(float32(currentWay.EffectiveMaxSpeed()))) - nextIsLower := s.Limit.Value > s.NextLimit.Value + nextIsLower := currentLimit > s.NextLimit.Value personality := ms.Settings.CurrentPersonality() distanceToReachSpeed := m.CalculateJerkLimitedDistanceSimple(car.VEgo, car.AEgo, offsetNextSpeedLimit, personality.TargetSpeedAccel, personality.TargetSpeedJerk) if nextIsLower {