From 9ab8ce85f9e43366aeb83ebd035ac1d728ff56ab Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Sat, 17 Oct 2015 23:50:22 +0200
Subject: [PATCH] distance cycle: avoid driving beyond end of cycle

---
 .../Models/SimulationComponent/Impl/DefaultDriverStrategy.cs   | 2 +-
 .../SimulationComponent/Impl/DistanceBasedDrivingCycle.cs      | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index 7f1a20eb9f..a9fae590ee 100644
--- a/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -119,7 +119,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				default:
 					return retVal;
 			}
-			if (ds.IsEqual(newds, 1e-3.SI<Meter>())) {
+			if (newds.IsEqual(0, 1e-3) || ds.IsEqual(newds, 1e-3.SI<Meter>())) {
 				return retVal;
 			}
 			Log.Debug("Exceeding next ActionDistance at {0}. Reducing max Distance to {1}", nextAction.ActionDistance, newds);
diff --git a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index f32fc8e0dc..0aa2dc841f 100644
--- a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -189,6 +189,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					return cycleIterator.RightSample.Distance;
 				}
 			} while (cycleIterator.RightSample.Distance < PreviousState.Distance + ds && cycleIterator.MoveNext());
+			if (cycleIterator.LastEntry) {
+				return cycleIterator.RightSample.Distance;
+			}
 			return null;
 		}
 
-- 
GitLab