From caa5070752d6f5c8cfe25eacefbf0e7343e12ed0 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Fri, 12 May 2023 12:07:49 +0200 Subject: [PATCH] added mission filter, to only run certain missions during testing --- .../Reader/IVectoRunDataFactoryFactory.cs | 2 + .../AbstractDeclarationVectoRunDataFactory.cs | 9 ++- ...clarationModeCompletedBusRunDataFactory.cs | 57 ++++++-------- ...DeclarationModeHeavyLorryRunDataFactory.cs | 26 ++++--- ...tionModeHeavyLorryRunDataFactory_Hybrid.cs | 47 ++++------- ...DeclarationModePrimaryBusRunDataFactory.cs | 46 ++++++----- ...arationModeSingleBusVectoRunDataFactory.cs | 78 ++++++++++++++----- .../Reader/VectoRunDataFactoryFactory.cs | 4 + .../CompletedBusRunDataFactory.cs | 4 +- .../MockupLorryVectoRunDataFactory.cs | 2 +- .../PrimaryBusMockupRunDataFactory.cs | 7 +- .../VectoMockupRunDataFactoryFactory.cs | 15 ++-- .../SimulationFactoryNinjectModule.cs | 4 + .../FileIO/SimulationDataReaderTest.cs | 2 +- .../PrimaryBus/PrimaryBusSimulation.cs | 4 +- .../Models/Declaration/DeclarationDataTest.cs | 6 +- .../TestDeclarationCycleFactoryVariant.cs | 26 +++++++ 17 files changed, 201 insertions(+), 138 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs index 80b27c015f..0bde4ea283 100644 --- a/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/IVectoRunDataFactoryFactory.cs @@ -1,4 +1,5 @@ using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData; namespace TUGraz.VectoCore.InputData @@ -12,6 +13,7 @@ namespace TUGraz.VectoCore.InputData /// </summary> /// <param name="inputDataProvider"></param> /// <param name="report"></param> + /// <param name="vtpReport"></param> /// <returns></returns> IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, IVTPReport vtpReport); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index cf86db666f..35d56868f3 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -36,12 +36,13 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { protected virtual IVehicleDeclarationInputData Vehicle => InputDataProvider.JobInputData.Vehicle; - protected AbstractDeclarationVectoRunDataFactory( - IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IDeclarationCycleFactory cycleFactory, bool checkJobType = true) + protected AbstractDeclarationVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, + IDeclarationReport report, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter, + bool checkJobType = true) { CycleFactory = cycleFactory; InputDataProvider = dataProvider; - + MissionFilter = missionFilter; if (checkJobType) { if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)) { @@ -54,6 +55,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { _allowVocational = true; } + protected IMissionFilter MissionFilter { get; } + protected DriverData DriverData => _driverdata ?? (_driverdata = CreateDriverData(_segment)); protected abstract DriverData CreateDriverData(Segment segment); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs index 7bee9296e7..2cee6e3e35 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs @@ -40,7 +40,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public CompletedBusBase(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(null, report, cycleFactory, false) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(null, report, cycleFactory, missionFilter,false) { DataAdapterSpecific = dataAdapterSpecific; DataAdapterGeneric = dataAdapterGeneric; @@ -204,8 +204,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { public Conventional(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, - dataAdapterGeneric, cycleFactory) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, + dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() @@ -323,8 +323,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { protected Hybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -338,7 +338,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun } foreach (var mission in _segment.Missions) { - foreach (var loading in mission.Loadings) { + foreach (var loading in mission.Loadings.Where(l => MissionFilter?.Run(mission.MissionType, l.Key) ?? true)) { // TODO: charge sustaining / charge depleting if (ovc) { if (PrimaryVehicle.MaxChargingPower == null) { @@ -415,10 +415,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { - protected SerialHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + protected SerialHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of Hybrid @@ -574,10 +571,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_S2 : SerialHybrid { - public HEV_S2(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of SerialHybrid @@ -606,17 +600,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_S3 : SerialHybrid { - public HEV_S3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_S_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of SerialHybrid @@ -645,10 +639,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun #region ParallelHybrid public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, - ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + protected ParallelHybrid(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of Hybrid @@ -792,27 +783,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class HEV_P1 : ParallelHybrid { - public HEV_P1(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P1(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P2_5(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public HEV_P4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } #endregion ParallelHybrid @@ -824,8 +815,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun { public BatteryElectric(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -966,7 +957,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class PEV_E2 : BatteryElectric { - public PEV_E2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E2(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -990,15 +981,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun } public class PEV_E3 : BatteryElectric { - public PEV_E3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E3(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E4(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public PEV_E_IEPC(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } #region Overrides of BatteryElectric @@ -1057,7 +1048,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun public class Exempted : CompletedBusBase { - public Exempted(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) { } + public Exempted(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index 2c3f43e687..9831d1284e 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public IDeclarationReport Report { get; } protected LorryBase(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory, false) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter, false) { DataAdapter = declarationDataAdapter; InputDataProvider = dataProvider; @@ -206,7 +206,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class Conventional : LorryBase { public Conventional(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of LorryBase protected override IEnumerable<VectoRunData> GetNextRun() @@ -333,8 +333,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa #endregion public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -446,8 +446,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class PEV_E2 : BatteryElectric { public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -484,20 +484,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class PEV_E3 : BatteryElectric { public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter:missionFilter) { } @@ -559,7 +562,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class Exempted : LorryBase { public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of AbstractDeclarationVectoRunDataFactory diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs index b3f9bd5c28..969b3304db 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs @@ -23,8 +23,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public abstract class Hybrid : LorryBase { public Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -87,8 +87,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa #endregion public SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { } @@ -190,9 +190,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class ParallelHybrid : Hybrid { - public ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) { } + public ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, @@ -303,8 +301,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_S2 : SerialHybrid { public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, + declarationDataAdapter, cycleFactory, missionFilter) { @@ -333,21 +331,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_S3 : SerialHybrid { - public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } @@ -423,40 +417,33 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public class HEV_P1 : ParallelHybrid { - public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } - } + public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } + } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P_IHPC : HEV_P2 { - public HEV_P_IHPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + public HEV_P_IHPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index 6a686c4d02..69400b7fa6 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -30,7 +30,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa //public IDeclarationReport Report { get; } protected PrimaryBusBase(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory, false) + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter, false) { DataAdapter = declarationDataAdapter; DataProvider = dataProvider; @@ -123,7 +124,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class Conventional : PrimaryBusBase { public Conventional(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -212,7 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class Hybrid : PrimaryBusBase { - protected Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + protected Hybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -242,9 +244,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class SerialHybrid : Hybrid { - protected SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, - declarationDataAdapter, cycleFactory) + protected SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } @@ -344,8 +344,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_S2 : SerialHybrid { - public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -372,20 +371,19 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_S3 : SerialHybrid { - public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -444,7 +442,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + protected ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -546,38 +544,38 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class HEV_P1 : ParallelHybrid { - public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P1(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P2_5(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public HEV_P4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public abstract class BatteryElectric : PrimaryBusBase { - public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public BatteryElectric(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -660,7 +658,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class PEV_E2 : BatteryElectric { - public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase @@ -690,19 +688,19 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class PEV_E3 : BatteryElectric { - public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } protected override bool AxleGearRequired() @@ -753,7 +751,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa public class Exempted : PrimaryBusBase { - public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) { } + public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of PrimaryBusBase diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs index 7969ce62c5..449cd74358 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -38,7 +38,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus protected override IVehicleDeclarationInputData Vehicle => throw new NotImplementedException(); protected SingleBusBase(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, - ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, cycleFactory) + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, cycleFactory, missionFilter) { DataAdapter = dataAdapter; Report = report; @@ -128,7 +129,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class Conventional : SingleBusBase { public Conventional(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, - ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } @@ -222,7 +224,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class Hybrid : SingleBusBase { - protected Hybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected Hybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -258,7 +262,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class SerialHybrid : Hybrid { - protected SerialHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected SerialHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -353,7 +359,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus } public class HEV_S2 : SerialHybrid { - public HEV_S2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -382,18 +390,24 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class HEV_S3 : SerialHybrid { - public HEV_S3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_S4 : SerialHybrid { - public HEV_S4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_S_IEPC : SerialHybrid { - public HEV_S_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_S_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -452,7 +466,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public abstract class ParallelHybrid : Hybrid { - protected ParallelHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected ParallelHybrid(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override VectoRunData CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, @@ -561,32 +577,44 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class HEV_P1 : ParallelHybrid { - public HEV_P1(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P1(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2 : ParallelHybrid { - public HEV_P2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P2_5 : ParallelHybrid { - public HEV_P2_5(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P2_5(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P3 : ParallelHybrid { - public HEV_P3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class HEV_P4 : ParallelHybrid { - public HEV_P4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public HEV_P4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public abstract class BatteryElectric : SingleBusBase { - protected BatteryElectric(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + protected BatteryElectric(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override IEnumerable<VectoRunData> GetNextRun() { @@ -664,7 +692,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class PEV_E2 : BatteryElectric { - public PEV_E2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E2(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override void CreateGearboxAndGearshiftData(VectoRunData runData) { @@ -692,17 +722,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class PEV_E3 : BatteryElectric { - public PEV_E3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E3(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class PEV_E4 : BatteryElectric { - public PEV_E4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E4(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } public class PEV_E_IEPC : BatteryElectric { - public PEV_E_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public PEV_E_IEPC(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } protected override bool AxleGearRequired() { @@ -753,7 +789,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus public class Exempted : SingleBusBase { - public Exempted(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapter, cycleFactory) { } + public Exempted(ISingleBusInputDataProvider dataProvider, IDeclarationReport report, + ISingleBusDeclarationDataAdapter dataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } #region Overrides of SingleBusBase diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs index 1b43c18fce..928e8753be 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs @@ -7,6 +7,7 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; @@ -39,11 +40,14 @@ namespace TUGraz.VectoCore.InputData.Reader { _internalFactory = internalFactory; } + /// <summary> /// Creates a VectoRunDataFactory based on the type of inputDataProvider /// </summary> /// <param name="inputDataProvider"></param> /// <param name="report"></param> + /// <param name="vtpReport"></param> + /// <param name="missionFilter"></param> /// <returns></returns> public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, IVTPReport vtpReport) diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs index aec5f2a8c3..52c0994215 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs @@ -24,7 +24,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories public MockupMultistageCompletedBusRunDataFactory(IMultistageVIFInputData dataProvider, IDeclarationReport report, ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific, - IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory) + IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric, cycleFactory, missionFilter) { } @@ -163,7 +163,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories { var InputDataProvider = DataProvider.MultistageJobInputData; foreach (var mission in _segment.Missions) { - foreach (var loading in mission.Loadings) { + foreach (var loading in mission.Loadings.Where(l => MissionFilter?.Run(mission.MissionType, l.Key) ?? true)) { var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx); if (simulationRunData != null) { yield return simulationRunData; diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs index 827633da86..99d1a438a9 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs @@ -22,7 +22,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories { public MockupLorryVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : base(dataProvider, report, declarationDataAdapter, cycleFactory) + ILorryDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs index ba7fdb81da..1d45ebe037 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs @@ -23,9 +23,10 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories public class PrimaryBusMockupRunDataFactory : DeclarationModePrimaryBusRunDataFactory.Conventional { public PrimaryBusMockupRunDataFactory(IDeclarationInputDataProvider dataProvider, - IDeclarationReport report, - IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory) : - base(dataProvider, report, declarationDataAdapter, cycleFactory) + IDeclarationReport report, + IPrimaryBusDeclarationDataAdapter declarationDataAdapter, IDeclarationCycleFactory cycleFactory, + IMissionFilter missionFilter) : + base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } #region Overrides of AbstractDeclarationVectoRunDataFactory diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs index eb84061a17..b31d364640 100644 --- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs @@ -12,6 +12,7 @@ using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Specific; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData; @@ -23,8 +24,9 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories - public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report, - IVTPReport vtpReport) + public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, + IDeclarationReport report, + IVTPReport vtpReport) { if (inputDataProvider == null) throw new ArgumentNullException(nameof(inputDataProvider)); @@ -53,20 +55,21 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories multistageVifInputData, report, new DeclarationDataAdapterSpecificCompletedBus.Conventional(), new DeclarationDeclarationDataAdapterGenericCompletedBusDeclaration.Conventional(), - null); + null, null); } else { return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); } } - private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report) + private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, + IDeclarationReport report) { var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory; if (vehicleCategory.IsLorry()) { return new MockupLorryVectoRunDataFactory(declDataProvider, report, new DeclarationDataAdapterHeavyLorry.Conventional(), - null); + null, null); } if (vehicleCategory.IsBus()) @@ -78,7 +81,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories //return new DeclarationModeMultistageBusVectoRunDataFactory(declDataProvider, report); case VehicleCategory.HeavyBusPrimaryVehicle: return new PrimaryBusMockupRunDataFactory(declDataProvider, report, new DeclarationDataAdapterPrimaryBus.Conventional(), - null); + null, null); default: break; } diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs index e9eb9f0d1f..b1c732de6d 100644 --- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs @@ -57,7 +57,11 @@ namespace TUGraz.VectoCore.Models.Simulation // ToDo: MQ 2023-05-09: REMOVE CLASS IN PRODUCTION!!! Bind<IDeclarationCycleFactory>().To<DeclarationCycleFromFilesystemFactory>().InSingletonScope(); + Bind<IMissionFilter>().To<DefaultMissionFilter>(); + //Bind<IDeclarationCycleFactory>().To<DeclarationCycleFactory>().InSingletonScope(); + //Bind<IMissionFilter>().ToMethod((context => null)); + Bind<IDeclarationReport>().To<NullDeclarationReport>(); Bind<IVTPReport>().To<NullVTPReport>(); diff --git a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs index a31cefeade..14b44daa73 100644 --- a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs @@ -73,7 +73,7 @@ namespace TUGraz.VectoCore.Tests.FileIO } var dataAdapter = new DeclarationDataAdapterHeavyLorry.Conventional(); - var reader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(declarationProvider, null, dataAdapter, _kernel.Get<IDeclarationCycleFactory>()); + var reader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(declarationProvider, null, dataAdapter, _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); //reader.SetJobFile(DeclarationJob); var runData = reader.NextRun().First(); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs index 47b10a23c3..97ec8f5b7f 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs @@ -113,7 +113,9 @@ public class PrimaryBusSimulation _kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryStartPoint>().InSingletonScope(); var cycleFactory = _kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryStartPoint; - + _kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope(); + var missionFilter = _kernel.Get<IMissionFilter>() as TestMissionFilter; + missionFilter!.SetMissions((MissionType.Interurban, LoadingType.ReferenceLoad)); cycleFactory!.SetStartPoint(MissionType.Interurban, start.SI<Meter>(), true, distance?.SI<Meter>()); var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed)); diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 62a83c790b..0704e32b4d 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -2132,7 +2132,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\12t Delivery Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); Assert.AreEqual(6, runs.Count); @@ -2156,7 +2156,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration var dataProvider = JSONInputDataFactory.ReadJsonJob( @"TestData\Jobs\Class4_40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); Assert.AreEqual(8, runs.Count); @@ -2180,7 +2180,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider; - var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>()); + var dataReader = new DeclarationModeHeavyLorryRunDataFactory.Conventional(dataProvider, null, new DeclarationDataAdapterHeavyLorry.Conventional(), _kernel.Get<IDeclarationCycleFactory>(), _kernel.Get<IMissionFilter>()); var runs = dataReader.NextRun().ToList(); diff --git a/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs b/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs index 2dc4e2c3e6..2de806682e 100644 --- a/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs +++ b/VectoCore/VectoCoreTest/Utils/TestDeclarationCycleFactoryVariant.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using NUnit.Framework; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; @@ -12,6 +13,31 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; namespace TUGraz.VectoCore.Tests.Utils { + public class TestMissionFilter : IMissionFilter + { + private HashSet<(MissionType m, LoadingType l)> _missionsToRun = new HashSet<(MissionType m, LoadingType l)>(); + + #region Implementation of IMissionFilter + + public bool Run(MissionType missionType, LoadingType loadingType) + { + var run = _missionsToRun.Contains((missionType, loadingType)); + if(!run){ + TestContext.Progress.WriteLine($"[{nameof(TestMissionFilter)}] skipping {missionType} - {loadingType}"); + } + return run; + } + + internal void SetMissions(params (MissionType m, LoadingType loadingType)[] missionLoadingPairs) + { + foreach (var missionLoadingPair in missionLoadingPairs) { + _missionsToRun.Add((missionLoadingPair.m, missionLoadingPair.loadingType)); + } + } + + #endregion + } + public class TestDeclarationCycleFactoryVariant : IDeclarationCycleFactory { -- GitLab