diff --git a/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index 185ec935bb443834bc939045a3c5e0206020ef56..e3fc54da14e0ad6a1d2bd486cc197db6ed8ec286 100644 --- a/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -119,9 +119,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl component.CommitSimulationStep(_dataWriter); } - _dataWriter[ModalResultField.time] = time; - _dataWriter[ModalResultField.simulationInterval] = simulationInterval; - _dataWriter.CommitSimulationStep(); + if (_dataWriter != null) { + _dataWriter[ModalResultField.time] = time; + _dataWriter[ModalResultField.simulationInterval] = simulationInterval; + _dataWriter.CommitSimulationStep(); + } } public void FinishSimulation() diff --git a/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs b/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs index d460551aacc0ed9c8b812129e064574da68a0ee0..5c9dd9182c63685b90da6f0c1bb34ff69fcdf215 100644 --- a/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs +++ b/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs @@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl angularVelocity * _gearData.Ratio); } - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { // nothing to commit } diff --git a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs index 8115687d9f6bdf58148b624557911c6864d9f7a9..c6b5f3e971df435fbafa1981e57eb70742983690 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs @@ -35,7 +35,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return _clutchState; } - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { //todo: implement! //throw new NotImplementedException(); diff --git a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 72c376749914d588273baa74cbbe39b241d49075..c37ce4de1b0e644108a1d58bec08cde9446102ee 100644 --- a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -113,7 +113,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { writer[ModalResultField.PaEng] = (double)_currentState.EnginePowerLoss; writer[ModalResultField.Pe_drag] = (double)_currentState.FullDragPower; diff --git a/VectoCore/Models/SimulationComponent/Impl/DirectAuxiliary.cs b/VectoCore/Models/SimulationComponent/Impl/DirectAuxiliary.cs index 6617c929f4df3319e190f839986a1f8a8c5c9f0f..b4351ea681d44c8b1f7105159924c726aff84137 100644 --- a/VectoCore/Models/SimulationComponent/Impl/DirectAuxiliary.cs +++ b/VectoCore/Models/SimulationComponent/Impl/DirectAuxiliary.cs @@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { writer[ModalResultField.Paux] = (double)_powerDemand; } diff --git a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs index e16b4717a1b18642386a2893b711f9d304e3eea9..6d9cfbd5bc992b43ff9bcabb79d33fff37511591 100644 --- a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs @@ -134,15 +134,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #endregion - protected IResponse ProcessResponse(IResponse response) {} - #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { _previousState = _currentState; - _currentState = new DrivingCycleState(); - throw new NotImplementedException("Distance based Cycle is not yet implemented."); + _currentState = _currentState.Clone(); + // todo: write something? } #endregion diff --git a/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/Models/SimulationComponent/Impl/Driver.cs index 135294610bcabdc94b212d99b111eeebdc550489..74460c5ebec083619a247e9a40143a99d22870cf 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -43,6 +43,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return this; } - public override void CommitSimulationStep(IModalDataWriter writer) {} + protected override void DoCommitSimulationStep(IModalDataWriter writer) {} } } \ No newline at end of file diff --git a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs index e4ecf5e6b311a21d3430d838a46fda817fc1293d..0c2545d1a6d9b9ac2026f614eb03deb690a25436 100644 --- a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs @@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) {} + protected override void DoCommitSimulationStep(IModalDataWriter writer) {} #endregion } diff --git a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyGearbox.cs b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyGearbox.cs index e47a981c80666df47721a39a67291e2ad8ed8c46..ea744c846bbb3f76521b07f2da5b7861e827bb70 100644 --- a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyGearbox.cs +++ b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyGearbox.cs @@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) {} + protected override void DoCommitSimulationStep(IModalDataWriter writer) {} #endregion } diff --git a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index 7faeb67cc9c67eb4ddeb3fcfd277340caf78d96b..67c4625409302a753837b581dc7da533f3a80729 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { throw new NotImplementedException(); } diff --git a/VectoCore/Models/SimulationComponent/Impl/MappingAuxiliary.cs b/VectoCore/Models/SimulationComponent/Impl/MappingAuxiliary.cs index b55ac5422a646c979bcecf8f92a56db24f39bb19..26e68743cdadfc9cc5165dd5bb4cfee837d9b903 100644 --- a/VectoCore/Models/SimulationComponent/Impl/MappingAuxiliary.cs +++ b/VectoCore/Models/SimulationComponent/Impl/MappingAuxiliary.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { writer[ModalResultField.Paux_xxx] = (double)_powerDemand; } diff --git a/VectoCore/Models/SimulationComponent/Impl/Retarder.cs b/VectoCore/Models/SimulationComponent/Impl/Retarder.cs index b3cb58d0ba2397360ef27bdaddb291eca39bb2af..fedcce98821ae97966098ad22064f7136969e30d 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Retarder.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Retarder.cs @@ -21,7 +21,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl _lossMap = lossMap; } - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { writer[ModalResultField.PlossRetarder] = _lossMap; } diff --git a/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs index 5100afd79d15fe6070528e928332738d4067356a..3df954e12d2d3b3a85f15caba0f279a4b82faa23 100644 --- a/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs @@ -84,10 +84,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override - void CommitSimulationStep - (IModalDataWriter - writer) {} + protected override void DoCommitSimulationStep(IModalDataWriter writer) {} #endregion } diff --git a/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs index 713048a5297339097083b4d013e311b2cc3c2728..f46900260d3dd2bff8be4d08f9d69eee3a0e0387 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs @@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl _nextInstance = other; } - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { _previousState = _currentState; _currentState = new VehicleState(); diff --git a/VectoCore/Models/SimulationComponent/Impl/Wheels.cs b/VectoCore/Models/SimulationComponent/Impl/Wheels.cs index 5bc8b3c00ed76ab07d1d39c2c5bb2f781316f5b9..c345abbf025c6bf3bb2e47e04b497814f248937c 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Wheels.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Wheels.cs @@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #region VectoSimulationComponent - public override void CommitSimulationStep(IModalDataWriter writer) + protected override void DoCommitSimulationStep(IModalDataWriter writer) { throw new NotImplementedException(); } diff --git a/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs b/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs index 85ae6769dd5bdf764ed13b236619d741a343fcb0..2ed066357b79ebb6f3388a4ff150f94fd0d106f5 100644 --- a/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs +++ b/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs @@ -26,12 +26,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent cockpit.AddComponent(this); } + public void CommitSimulationStep(IModalDataWriter writer) + { + if (writer != null) { + DoCommitSimulationStep(writer); + } + } + /// <summary> /// Commits the simulation step. /// Writes the moddata into the data writer. /// Commits the internal state of the object if needed. /// </summary> /// <param name="writer">a data writer to write the data into.</param> - public abstract void CommitSimulationStep(IModalDataWriter writer); + protected abstract void DoCommitSimulationStep(IModalDataWriter writer); } } \ No newline at end of file