From 91cf5404f98c658c7e8333ddf1cda72540a735ba Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 15 Feb 2017 10:06:49 +0100 Subject: [PATCH] distance-based driving cycle: increment distance by ds as reported from driver. driver: set simulation distance in response --- .../SimulationComponent/Impl/DistanceBasedDrivingCycle.cs | 5 ++++- VectoCore/VectoCoreTest/Utils/MockDriver.cs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs index dcd1970e7c..5ae5ec47d3 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs @@ -261,7 +261,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } CurrentState.WaitPhase = 0; - CurrentState.Distance = PreviousState.Distance + ds; + //CurrentState.Distance = PreviousState.Distance + ds; CurrentState.SimulationDistance = ds; CurrentState.VehicleTargetSpeed = Left.VehicleTargetSpeed; CurrentState.Gradient = ComputeGradient(ds); @@ -274,6 +274,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl retVal = NextComponent.Request(absTime, ds, CurrentState.VehicleTargetSpeed, CurrentState.Gradient); }); CurrentState.AbsTime = absTime; + if (retVal is ResponseSuccess) { + CurrentState.Distance = PreviousState.Distance + retVal.SimulationDistance; + } return retVal; } diff --git a/VectoCore/VectoCoreTest/Utils/MockDriver.cs b/VectoCore/VectoCoreTest/Utils/MockDriver.cs index 7315419a5d..90dcf0c21c 100644 --- a/VectoCore/VectoCoreTest/Utils/MockDriver.cs +++ b/VectoCore/VectoCoreTest/Utils/MockDriver.cs @@ -70,7 +70,7 @@ namespace TUGraz.VectoCore.Tests.Utils LastRequest = new RequestData { AbsTime = absTime, ds = ds, Gradient = gradient, TargetVelocity = targetVelocity }; var acc = 0.SI<MeterPerSquareSecond>(); var dt = 1.SI<Second>(); - return new ResponseSuccess { SimulationInterval = dt, Source = this }; + return new ResponseSuccess { SimulationInterval = dt, SimulationDistance = ds, Source = this }; } public IResponse Request(Second absTime, Second dt, MeterPerSecond targetVelocity, Radian gradient) -- GitLab