From 70384887c62a49cc33a44fb53a4b2a719efb8605 Mon Sep 17 00:00:00 2001 From: James <91348155+FrogAi@users.noreply.github.com> Date: Sat, 8 Aug 2026 15:26:56 -0700 Subject: [PATCH 1/2] Honor speed limit priority for upcoming limits --- speed_limit.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/speed_limit.go b/speed_limit.go index c3705cf..fe2fe33 100644 --- a/speed_limit.go +++ b/speed_limit.go @@ -96,15 +96,23 @@ func (s *SpeedLimitState) SuggestNewSpeedLimit(currentWay CurrentWay, car CarSta slSuggestedSpeed += ms.Settings.SpeedLimitSettings.SpeedLimitOffset } if s.NextLimit.Value > 0 { - offsetNextSpeedLimit := s.NextLimit.Value + ms.Settings.SpeedLimitSettings.SpeedLimitOffset + nextSpeedLimit := ms.Settings.PrioritySpeedLimit(s.NextLimit.Value) s.Limit.Update(ms.Settings.PrioritySpeedLimit(float32(currentWay.EffectiveMaxSpeed()))) - nextIsLower := s.Limit.Value > s.NextLimit.Value + if nextSpeedLimit == 0 { + return slSuggestedSpeed + } + if nextSpeedLimit != s.NextLimitTarget { + s.NextLimitTarget = nextSpeedLimit + s.NextLimit.TriggerDistance = 0 + } + offsetNextSpeedLimit := nextSpeedLimit + ms.Settings.SpeedLimitSettings.SpeedLimitOffset + nextIsLower := s.Limit.Value > nextSpeedLimit personality := ms.Settings.CurrentPersonality() distanceToReachSpeed := m.CalculateJerkLimitedDistanceSimple(car.VEgo, car.AEgo, offsetNextSpeedLimit, personality.TargetSpeedAccel, personality.TargetSpeedJerk) if nextIsLower { - distanceToReachSpeed += personality.SpeedLimitDecreaseTargetSpeedTimeOffset * (s.NextLimit.Value + ms.Settings.SpeedLimitSettings.SpeedLimitOffset) + distanceToReachSpeed += personality.SpeedLimitDecreaseTargetSpeedTimeOffset * offsetNextSpeedLimit } else { - distanceToReachSpeed += personality.SpeedLimitIncreaseTargetSpeedTimeOffset * (s.NextLimit.Value + ms.Settings.SpeedLimitSettings.SpeedLimitOffset) + distanceToReachSpeed += personality.SpeedLimitIncreaseTargetSpeedTimeOffset * offsetNextSpeedLimit } if s.NextLimit.TriggerDistance > distanceToReachSpeed { distanceToReachSpeed = s.NextLimit.TriggerDistance From a0454e441756b8ba2dd1804a1b2a5bc77567a0fe Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Sat, 8 Aug 2026 16:29:53 -0700 Subject: [PATCH 2/2] Reset next limit trigger distance when arbitrated target changes --- speed_limit.go | 1 + 1 file changed, 1 insertion(+) diff --git a/speed_limit.go b/speed_limit.go index fe2fe33..3f4052f 100644 --- a/speed_limit.go +++ b/speed_limit.go @@ -18,6 +18,7 @@ type SpeedLimitState struct { OverrideSpeed float32 AcceptedLimit float32 NextLimit Upcoming[float32] + NextLimitTarget float32 } func (s *SpeedLimitState) Init() {