diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs index 5d66b6ccbc859960ff066628fae0ea2ae79a3cd3..a06008c9d5a4799a227385a4cb568cad10100621 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs @@ -285,7 +285,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Bind<ISingleBusDeclarationDataAdapter>().To<DeclarationDataAdapterSingleBus.HEV_P4>() .WhenInjectedExactlyInto<DeclarationModeSingleBusRunDataFactory.HEV_P4>(); - Bind<ISingleBusDeclarationDataAdapter>().To<DeclarationDataAdapterSingleBus.PEV_E2>() + Bind<ISingleBusDeclarationDataAdapter>().To<DeclarationDataAdapterSingleBus.HEV_P2>() + .WhenInjectedExactlyInto<DeclarationModeSingleBusRunDataFactory.HEV_P_IHPC>(); + + Bind<ISingleBusDeclarationDataAdapter>().To<DeclarationDataAdapterSingleBus.PEV_E2>() .WhenInjectedExactlyInto<DeclarationModeSingleBusRunDataFactory.PEV_E2>(); Bind<ISingleBusDeclarationDataAdapter>().To<DeclarationDataAdapterSingleBus.PEV_E3>() diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs index 4dbf9d73db6993a9b50269edda104259bbbda060..cccfe44a5da42f79e1736163b36010591bf903ef 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs @@ -23,7 +23,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus public abstract class PrimaryBusBase : IPrimaryBusDeclarationDataAdapter { - public virtual GearboxType[] SupportedGearboxTypes => throw new NotImplementedException(); + public abstract GearboxType[] SupportedGearboxTypes { get; } private readonly IDriverDataAdapter _driverDataAdapter = new PrimaryBusDriverDataAdapter(); //protected readonly IVehicleDataAdapter _vehicleDataAdapter = new PrimaryBusVehicleDataAdapter(); @@ -172,6 +172,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus { GearboxType.MT, GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial }; + protected override IEngineDataAdapter EngineDataAdapter { get; } = new CombustionEngineComponentDataAdapter(); protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); @@ -228,7 +229,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus public abstract class SerialHybrid : Hybrid { - protected override IGearboxDataAdapter GearboxDataAdapter => throw new NotImplementedException(); + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] { }; + + + protected override IGearboxDataAdapter GearboxDataAdapter => throw new NotImplementedException(); protected override IHybridStrategyDataAdapter HybridStrategyDataAdapter { get; } = new SerialHybridStrategyParameterDataAdapter(); @@ -317,8 +321,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus { private readonly IElectricStorageAdapter _electricStorageAdapter = new ElectricStorageAdapter(); - public override GearboxType[] SupportedGearboxTypes => new[] - { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.APTN, GearboxType.ATSerial }; + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] { }; #region Overrides of PrimaryBusBase @@ -360,7 +363,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus public class PEV_E2 : BatteryElectric { - protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(null); + public override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.APTN, GearboxType.ATSerial }; + + protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(null); } public class PEV_E3 : BatteryElectric @@ -386,6 +392,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus { #region Overrides of PrimaryBusBase + public override GearboxType[] SupportedGearboxTypes => new GearboxType[]{}; + protected override IVehicleDataAdapter VehicleDataAdapter { get; } = new ExemptedPrimaryBusVehicleDataAdapter(); protected override IEngineDataAdapter EngineDataAdapter => throw new NotImplementedException(); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs index 4c07ba76c0f0f60caefa918d59ab7336c63ebf60..ce24d52527e96d583c783463352d462fe1208ad5 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs @@ -25,8 +25,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus { public abstract class SingleBusBase : ISingleBusDeclarationDataAdapter { - public static readonly GearboxType[] SupportedGearboxTypes = - { GearboxType.MT, GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial }; + public abstract GearboxType[] SupportedGearboxTypes { get; } private IDriverDataAdapter _driverDataAdapter = new PrimaryBusDriverDataAdapter(); private SingleBusVehicleDataAdapter _vehicleDataAdapter = new SingleBusVehicleDataAdapter(); @@ -178,9 +177,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class Conventional : SingleBusBase { - #region Overrides of SingleBusBase + #region Overrides of SingleBusBase + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] + { + GearboxType.MT, GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial + }; - protected override IEngineDataAdapter EngineDataAdapter { get; } = new CombustionEngineComponentDataAdapter(); + protected override IEngineDataAdapter EngineDataAdapter { get; } = new CombustionEngineComponentDataAdapter(); protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); protected override IHybridStrategyDataAdapter HybridStrategyDataAdapter => @@ -223,9 +226,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus } } - public class SerialHybrid : Hybrid + public abstract class SerialHybrid : Hybrid { - protected override IGearboxDataAdapter GearboxDataAdapter => throw new NotImplementedException(); + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] { }; + + protected override IGearboxDataAdapter GearboxDataAdapter => throw new NotImplementedException(); protected override IHybridStrategyDataAdapter HybridStrategyDataAdapter { get; } = new SerialHybridStrategyParameterDataAdapter(); @@ -233,7 +238,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class HEV_S2 : SerialHybrid { - protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); + public override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.APTN, GearboxType.ATSerial }; + + protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); } @@ -246,9 +254,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new IEPCGearboxDataAdapter(); } - public class ParallelHybrid : Hybrid + public abstract class ParallelHybrid : Hybrid { - protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); + public override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATSerial, GearboxType.ATPowerSplit }; + + protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); protected override IHybridStrategyDataAdapter HybridStrategyDataAdapter { get; } = new ParallelHybridStrategyParameterDataAdapter(); @@ -256,7 +267,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class HEV_P1 : ParallelHybrid { } - public class HEV_P2 : ParallelHybrid { } + public class HEV_P2 : ParallelHybrid + { + public override GearboxType[] SupportedGearboxTypes => new[] { GearboxType.AMT, GearboxType.IHPC }; + } public class HEV_P2_5 : ParallelHybrid { } @@ -264,9 +278,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class HEV_P4 : ParallelHybrid { } - public class BatteryElectric : SingleBusBase + public abstract class BatteryElectric : SingleBusBase { - private readonly IElectricStorageAdapter _electricStorageAdapter = new ElectricStorageAdapter(); + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] { }; + + private readonly IElectricStorageAdapter _electricStorageAdapter = new ElectricStorageAdapter(); protected override IEngineDataAdapter EngineDataAdapter => throw new NotImplementedException(); @@ -301,7 +317,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class PEV_E2 : BatteryElectric { - protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); + public override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.APTN, GearboxType.ATSerial }; + + protected override IGearboxDataAdapter GearboxDataAdapter { get; } = new GearboxDataAdapter(new TorqueConverterDataAdapter()); } @@ -317,7 +336,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus public class Exempted : SingleBusBase { - protected override IEngineDataAdapter EngineDataAdapter => throw new NotImplementedException(); + public override GearboxType[] SupportedGearboxTypes => new GearboxType[] { }; + + protected override IEngineDataAdapter EngineDataAdapter => throw new NotImplementedException(); protected override IGearboxDataAdapter GearboxDataAdapter => throw new NotImplementedException(); protected override IHybridStrategyDataAdapter HybridStrategyDataAdapter => throw new NotImplementedException(); protected override ICompletedBusAuxiliaryDataAdapter AuxDataAdapter => throw new NotImplementedException(); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs index 9881d79e08f956faefcd3ce80568e5f2aeb32416..c5761106978adbc23d6c2a9f5d627d01f2832586 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -610,6 +610,13 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus IMissionFilter missionFilter) : base(dataProvider, report, dataAdapter, cycleFactory, missionFilter) { } } + public class HEV_P_IHPC : ParallelHybrid + { + public HEV_P_IHPC(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, diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs index 654867d9285e26f43acd50c002552f147a36b697..084bf48fcb72f85ac49c4645b778b54fd0d14511 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs @@ -250,6 +250,7 @@ namespace TUGraz.VectoCore.InputData.Reader Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_S_IEPC>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.IEPC_S, ArchitectureID.S_IEPC)); + Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_P1>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P1)); @@ -259,14 +260,17 @@ namespace TUGraz.VectoCore.InputData.Reader Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_P2_5>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P2_5)); - Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_P3>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P3)); Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_P4>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P4)); - Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.PEV_E2>().Named( + Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.HEV_P_IHPC>().Named( + _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.IHPC, + ArchitectureID.P2)); + + Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.PEV_E2>().Named( _vehicleStringHelper.GetSingleBusName(VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2)); Bind<IVectoRunDataFactory>().To<DeclarationModeSingleBusRunDataFactory.PEV_E3>().Named(