diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index 5506f9349cfd4c8e452137c0ab55deb200f0e7af..3dd0227bf3c4774b2a56fab06eaf66d2109737ed 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -343,5 +343,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { get { return DrivingCycle.CycleData; } } + + public Meter Altitude + { + get { return DrivingCycle.Altitude; } + } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs b/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs index 5f5c0f51679c8791185496ac3c56a4e22e26d1ec..203a39311adb1e2946308e2d927930cbd4e3da17 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.SimulationComponent.Data; namespace TUGraz.VectoCore.Models.SimulationComponent @@ -43,5 +44,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent /// Returns the data samples for the current position in the cycle. /// </summary> CycleData CycleData { get; } + + Meter Altitude { get; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs index f0db6c2284e483b91d6f58712cb45fbd210510b1..ee5b06535f7de27f9cae98ef6688308782f80190 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs @@ -350,7 +350,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (cycleIterator.RightSample.VehicleTargetSpeed.IsEqual(velocity)) { continue; } - retVal.Add(cycleIterator.RightSample); + retVal.Add(cycleIterator.RightSample); // TODO: MQ 2016-05-13: use clone if iterator here? velocity = cycleIterator.RightSample.VehicleTargetSpeed; } while (cycleIterator.MoveNext() && cycleIterator.RightSample.Distance < PreviousState.Distance + lookaheadDistance); if (retVal.Count > 0) { @@ -378,6 +378,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } } + public Meter Altitude + { + get { return CurrentState.Altitude; } + } + internal void SetDriveOffDistance(Meter startDistance) { while (CycleIntervalIterator.MoveNext() && CycleIntervalIterator.RightSample.Distance < startDistance) {} diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index 98aa75c196f3e5c34d6fdf440fbfcd6c7f062735..63163d0fa955dde668daec2f325b34289c2faa47 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -799,7 +799,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl foreach (var kv in _coastData) { container.SetDataValue(kv.Key, kv.Value); } - container.SetDataValue("Alt", DataBus.CycleData.LeftSample.Altitude.Value()); + container.SetDataValue("Alt", DataBus.Altitude.Value()); container.SetDataValue("DrivingMode", ((DefaultDriverStrategy)DriverStrategy).CurrentDrivingMode); container.SetDataValue("Action", CurrentAction); _coastData.Clear(); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs index b475517770c06485e8f8abf83dc4ca211f94aff2..ccbc4b2f61702f23b5ca5d594875f94bc3bc50bf 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs @@ -215,6 +215,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl }; } } + + public Meter Altitude + { + get { return 0.SI<Meter>(); } + } } /// <summary> @@ -514,6 +519,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } } + public Meter Altitude + { + get { return LeftSample.Current.Altitude; } + } + protected override void DoWriteModalResults(IModalDataContainer container) { container[ModalResultField.dist] = CurrentState.Distance; diff --git a/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs b/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs index 5894b9b6ce42c4c9932a2b9e8cc6508efcfcf978..b563210354b76ff58a98ce7905e84d6313145a03 100644 --- a/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs +++ b/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs @@ -74,6 +74,11 @@ namespace TUGraz.VectoCore.Tests.Utils } } + public Meter Altitude + { + get { return 0.SI<Meter>(); } + } + protected override void DoWriteModalResults(IModalDataContainer container) { container[ModalResultField.dist] = 0.SI<Meter>(); diff --git a/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs index 5408a3f33e6470d301cf79026c3f16b93cff5b66..84df8c4615068dae534673e1d601aa98d6dcb6e6 100644 --- a/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs @@ -110,6 +110,7 @@ namespace TUGraz.VectoCore.Tests.Utils public bool VehicleStopped { get; private set; } public DrivingBehavior DriverBehavior { get; private set; } public CycleData CycleData { get; set; } + public Meter Altitude { get; set; } public ExecutionMode ExecutionMode { get; set; } public IModalDataContainer ModalData { get; private set; } public VectoRunData RunData { get; private set; }