diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index d9a982f8a17e8aea6dd36d1a86144c82ac58b626..d44192f30de611101a4582c890d06ef44753edf9 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using TUGraz.VectoCommon.InputData; @@ -18,10 +17,6 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.Reader.Impl { public abstract class AbstractDeclarationVectoRunDataFactory : LoggingObject, IVectoRunDataFactory { - - protected static readonly ConcurrentDictionary<MissionType, DrivingCycleData> CyclesCache = - new ConcurrentDictionary<MissionType, DrivingCycleData>(); - protected readonly IDeclarationInputDataProvider InputDataProvider; protected IDeclarationReport Report; diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs index 4b792d4814e09b34b96ab0c089b4640d8f0a335e..0c80a04dc1391fa8cf5c98a5fc10437da45260c8 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs @@ -1,22 +1,13 @@ using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Xml; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Configuration; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; -using TUGraz.VectoCore.Models.BusAuxiliaries; -using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; -using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; -using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; -using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -29,9 +20,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { public class DeclarationModeCompletedBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory { - protected static readonly ConcurrentDictionary<MissionType, DrivingCycleData> CyclesCache = - new ConcurrentDictionary<MissionType, DrivingCycleData>(); - protected readonly IDeclarationInputDataProvider InputDataProvider; protected IDeclarationReport Report; @@ -229,7 +217,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) { - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var simulationRunData = new VectoRunData { Loading = loading.Key, @@ -265,7 +253,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) { - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var primaryBusAuxiliaries = PrimaryVehicle.Components.BusAuxiliaries; diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs index afcd55422c69ef5e338e14dab95c2cae1539fbcd..18db5282c563ee3868e5b0da4a1bd159aa127057 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using TUGraz.VectoCommon.Exceptions; @@ -19,9 +18,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { public class DeclarationModeCompletedMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory { - protected static readonly ConcurrentDictionary<MissionType, DrivingCycleData> CyclesCache = - new ConcurrentDictionary<MissionType, DrivingCycleData>(); - protected readonly IMultistageBusInputDataProvider InputDataProvider; protected IDeclarationReport Report; @@ -241,7 +237,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx) { - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var simulationRunData = new VectoRunData { @@ -279,7 +275,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx) { - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var primaryBusAuxiliaries = PrimaryVehicle.Components.BusAuxiliaries; diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs index 475359c981777c774efbb5fd09b23037b01b7a15..4ed79040dd64ab2e778037b54b89135b97289ca9 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs @@ -148,7 +148,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl var engineModes = engine.EngineModes; var engineMode = engineModes[modeIdx]; - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var simulationRunData = new VectoRunData { Loading = loading.Key, diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs index 511cece77c22db91ed675c475ef2ab0182293f6b..d33f31097ffa9008afa82978f1beb124c488885c 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs @@ -18,7 +18,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected DeclarationDataAdapterPrimaryBus _dao = new DeclarationDataAdapterPrimaryBus(); public DeclarationModePrimaryBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : - base(dataProvider, report) { } + base(dataProvider, report) + { } #region Overrides of AbstractDeclarationVectoRunDataFactory @@ -87,10 +88,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) { if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) { - return new VectoRunData() { + return new VectoRunData { Exempted = true, Report = Report, - Mission = new Mission() { MissionType = MissionType.ExemptedMission }, + Mission = new Mission { MissionType = MissionType.ExemptedMission }, VehicleData = DataAdapter.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, new Segment(), null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(LoadingType.ReferenceLoad, @@ -103,7 +104,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl var engineModes = engine.EngineModes; var engineMode = engineModes[modeIdx]; - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); var simulationRunData = new VectoRunData { Loading = loading.Key, diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs index 194b348591e4eb33f57c6f0c123fdd588668a7f5..f6162580c1b61181fe929401151cf204888c3fa9 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -1,12 +1,9 @@ using System; using System.Collections.Generic; -using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Configuration; -using TUGraz.VectoCore.InputData; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.InputData.Reader.Impl; @@ -15,7 +12,8 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData; -namespace TUGraz.VectoCore.Models.Simulation.Impl { +namespace TUGraz.VectoCore.Models.Simulation.Impl +{ internal class DeclarationModeSingleBusVectoRunDataFactory : DeclarationModePrimaryBusVectoRunDataFactory { protected new DeclarationDataAdapterSingleBus _dao = new DeclarationDataAdapterSingleBus(); @@ -74,8 +72,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { var engineModes = engine.EngineModes; var engineMode = engineModes[modeIdx]; - var cycle = CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); - + var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false)); + var simulationRunData = new VectoRunData { Loading = loading.Key, VehicleData = DataAdapter.CreateVehicleData(vehicle, _segment, mission, loading, _allowVocational), diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index b3528b041d0a53adfffd225a2e8ddb5f527e348d..bc25fc5446f01baafdfa8c4517cfd5058a09e823 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -34,6 +34,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using Newtonsoft.Json.Linq; +using System.Collections.Concurrent; using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -99,6 +100,11 @@ namespace TUGraz.VectoCore.Models.Declaration public const double AlternatorEfficiency = 0.7; + public static readonly ConcurrentDictionary<MissionType, DrivingCycleData> CyclesCache = + new ConcurrentDictionary<MissionType, DrivingCycleData>(); + + + /// <summary> /// Formula for calculating the payload for a given gross vehicle weight. /// (so called "pc-formula", Whitebook Apr 2016, Part 1, p.187)