diff --git a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs index 60c20e99537d5c30050788590550481cbcbdc2a2..2b8cb7808cb380a17e64964d5e9ea9eeb2d05e14 100644 --- a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs +++ b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs @@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl var engineData = dao.CreateEngineData(Engine); var simulationRunData = new VectoRunData { - VehicleData = dao.CreateVehicleData(Vehicle, mission, loading), + VehicleData = dao.CreateVehicleData(Vehicle, mission, loading.LoadingWeight), EngineData = engineData, GearboxData = dao.CreateGearboxData(Gearbox, engineData), Aux = dao.CreateAuxiliaryData(Aux, mission.MissionType, segment.VehicleClass), @@ -47,8 +47,10 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl DriverData = driverdata, IsEngineOnly = IsEngineOnly, JobFileName = Job.JobFile, - BasePath = "" + BasePath = "", + ModFileSuffix = loading.Name }; + simulationRunData.Cycle.Name = mission.MissionType.ToString(); simulationRunData.VehicleData.VehicleClass = segment.VehicleClass; yield return simulationRunData; } diff --git a/VectoCore/Models/Declaration/Mission.cs b/VectoCore/Models/Declaration/Mission.cs index 995b777b9286a34294e06ea07b021485064cdfd1..be6b86957d73d0a34e4a392ff69e03499d5af51f 100644 --- a/VectoCore/Models/Declaration/Mission.cs +++ b/VectoCore/Models/Declaration/Mission.cs @@ -17,13 +17,26 @@ namespace TUGraz.VectoCore.Models.Declaration public Kilogram RefLoad { get; set; } public Kilogram MaxLoad { get; set; } - public IEnumerable<Kilogram> Loadings + public IEnumerable<LoadingEntry> Loadings { - get { return new[] { MinLoad, RefLoad, MaxLoad }; } + get + { + return new[] { + new LoadingEntry() { LoadingWeight = MinLoad, Name = "EmptyLoading" }, + new LoadingEntry() { LoadingWeight = RefLoad, Name = "ReferenceLoad" }, + new LoadingEntry() { LoadingWeight = MaxLoad, Name = "FullLoading" } + }; + } } public Stream CycleFile { get; set; } public bool UseCdA2 { get; set; } + + public class LoadingEntry + { + public Kilogram LoadingWeight; + public string Name; + } } } \ No newline at end of file diff --git a/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/Models/Simulation/Data/VectoRunData.cs index 201f7d78c2b38aae8d7cf65124928339fdc11977..7e424c73a5d180c791a6e69eb9cd0e571b978c80 100644 --- a/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -34,6 +34,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data public string JobFileName { get; set; } public string BasePath { get; set; } + public string ModFileSuffix { get; set; } public class AuxData diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index 8ef16956cafd5514cb71628207e23e4e53d72851..ff00c7f47f443e1b78589ba83ee47d2745d15311 100644 --- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -71,9 +71,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var i = 0; foreach (var data in DataReader.NextRun()) { var modFileName = Path.Combine(data.BasePath, - data.JobFileName.Replace(Constants.FileExtensions.VectoJobFile, "") + "_{0}" + + data.JobFileName.Replace(Constants.FileExtensions.VectoJobFile, "") + "_{0}{1}" + Constants.FileExtensions.ModDataFile); - IModalDataWriter modWriter = new ModalDataWriter(string.Format(modFileName, data.Cycle.Name), _mode); + IModalDataWriter modWriter = + new ModalDataWriter(string.Format(modFileName, data.Cycle.Name, data.ModFileSuffix ?? ""), _mode); var jobName = string.Format("{0}-{1}", JobNumber, i++); var sumWriterDecorator = DecorateSumWriter(data.IsEngineOnly, SumWriter, data.JobFileName, jobName, data.Cycle.Name); var builder = new PowertrainBuilder(modWriter, sumWriterDecorator, DataReader.IsEngineOnly); diff --git a/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/Models/Simulation/Impl/VectoRun.cs index d3d3d3900b87dbabc44e5237936893606e166d70..b8c97a48ea615b343efbd3931d9650fdeaf6afd7 100644 --- a/VectoCore/Models/Simulation/Impl/VectoRun.cs +++ b/VectoCore/Models/Simulation/Impl/VectoRun.cs @@ -56,10 +56,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl Container.FinishSimulation(); throw new VectoSimulationException("absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4}", ve, AbsTime, Container.Distance, dt, Container.VehicleSpeed, Container.Gear, ve.Message); + } catch (Exception e) { + Container.FinishSimulation(); + throw new VectoSimulationException("absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4}", e, AbsTime, + Container.Distance, dt, Container.VehicleSpeed, Container.Gear, e.Message); } - Container.FinishSimulation(); - Log.Info("VectoJob finished."); }