From 469831c6f19a86a44aa99051f1fc446a3d4fe1e9 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Mon, 7 Jun 2021 11:21:21 +0200
Subject: [PATCH] allow starting a cycle at a certain distance (used for
 debugging)

---
 .../InputData/Reader/Impl/DrivingCycleProxy.cs       |  2 +-
 .../Impl/DistanceBasedDrivingCycle.cs                | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DrivingCycleProxy.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DrivingCycleProxy.cs
index 079964e83b..0045ee7d7c 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DrivingCycleProxy.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DrivingCycleProxy.cs
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		}
 
 		[JsonIgnore]
-		public List<DrivingCycleData.DrivingCycleEntry> Entries { get; private set; }
+		public List<DrivingCycleData.DrivingCycleEntry> Entries { get; protected internal set; }
 
 		public string Name { get; private set; }
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index 2da207c37a..f939777d2f 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -99,6 +99,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public IResponse Initialize()
 		{
+			CycleStartDistance = Data.Entries.Count > 0 ? Data.Entries.First().Distance : 0.SI<Meter>();
+			CycleEndDistance = Data.Entries.Count > 0 ? Data.Entries.Last().Distance : 0.SI<Meter>();
+			var first = Data.Entries.First();
+			PreviousState = new DrivingCycleState {
+				AbsTime = 0.SI<Second>(),
+				WaitTime = 0.SI<Second>(),
+				Distance = first.Distance,
+				Altitude = first.Altitude,
+				VehicleTargetSpeed = Data.Entries.First().VehicleTargetSpeed
+			};
+			CurrentState = PreviousState.Clone();
+
 			if (Left.VehicleTargetSpeed.IsEqual(0)) {
 				var retVal = NextComponent.Initialize(StartSpeed,
 					Left.RoadGradient, StartAcceleration);
-- 
GitLab