From ad98cf3a284d9821a8c4f7791efc0007cdc9e5ec Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Tue, 13 Oct 2015 10:33:55 +0200 Subject: [PATCH] bugfix: consider overspeed for next actions --- .../Impl/DefaultDriverStrategy.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs index 199d653b52..e35702072e 100644 --- a/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs +++ b/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs @@ -166,31 +166,31 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var nextActions = new List<DrivingBehaviorEntry>(); foreach (var entry in lookaheadData) { if (entry.VehicleTargetSpeed < currentSpeed) { + var nextTargetSpeed = OverspeedAllowed(entry.RoadGradient, entry.VehicleTargetSpeed) + ? entry.VehicleTargetSpeed + Driver.DriverData.OverSpeedEcoRoll.OverSpeed + : entry.VehicleTargetSpeed; if (!Driver.DriverData.LookAheadCoasting.Enabled || currentSpeed < Driver.DriverData.LookAheadCoasting.MinSpeed) { - var brakingDistance = Driver.ComputeDecelerationDistance(entry.VehicleTargetSpeed); - Log.Debug("adding 'Braking' starting at distance {0}", entry.Distance - brakingDistance); + var brakingDistance = Driver.ComputeDecelerationDistance(nextTargetSpeed); + Log.Debug("adding 'Braking' starting at distance {0}. brakingDistance: {1}, triggerDistance: {2}", + entry.Distance - brakingDistance, brakingDistance, entry.Distance); nextActions.Add(new DrivingBehaviorEntry { Action = DrivingBehavior.Braking, ActionDistance = entry.Distance - brakingDistance, TriggerDistance = entry.Distance, - NextTargetSpeed = - OverspeedAllowed(entry.RoadGradient, entry.VehicleTargetSpeed) - ? entry.VehicleTargetSpeed + Driver.DriverData.OverSpeedEcoRoll.OverSpeed - : entry.VehicleTargetSpeed + NextTargetSpeed = nextTargetSpeed }); } else { - var coastingDistance = Formulas.DecelerationDistance(currentSpeed, entry.VehicleTargetSpeed, + var coastingDistance = Formulas.DecelerationDistance(currentSpeed, nextTargetSpeed, Driver.DriverData.LookAheadCoasting.Deceleration); - Log.Debug("adding 'Coasting' starting at distance {0}", entry.Distance - coastingDistance); + Log.Debug("adding 'Coasting' starting at distance {0}. coastingDistance: {1}, triggerDistance: {2}", + entry.Distance - coastingDistance, coastingDistance, entry.Distance); nextActions.Add( new DrivingBehaviorEntry { Action = DefaultDriverStrategy.DrivingBehavior.Coasting, ActionDistance = entry.Distance - coastingDistance, TriggerDistance = entry.Distance, - NextTargetSpeed = OverspeedAllowed(entry.RoadGradient, entry.VehicleTargetSpeed) - ? entry.VehicleTargetSpeed + Driver.DriverData.OverSpeedEcoRoll.OverSpeed - : entry.VehicleTargetSpeed + NextTargetSpeed = nextTargetSpeed }); } } -- GitLab