diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs index 83eff954bbfe47629a9ccf15546b9deb8ccabf9d..2aa396ee77e43e3e5780cd5ad5b928d36893965e 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Xml; using System.Xml.Linq; using TUGraz.IVT.VectoXML; @@ -113,7 +114,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public XMLDeclarationHevPxPrimaryBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } - public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle; + + + public override VectoSimulationJobType VehicleType + { + get => Components.ElectricMachines.Entries.Any(em => em.ElectricMachine.IsIHPC()) ? VectoSimulationJobType.IHPC : VectoSimulationJobType.ParallelHybridVehicle; + } + + public override bool HybridElectricHDV => true; diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs index 69a515ce53d80a14582c6eedacdd47f25dac1a92..1c747238078dce228597ab7363410ab89001d3fc 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs @@ -104,7 +104,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Bind<IPrimaryBusDeclarationDataAdapter>().To<DeclarationDataAdapterPrimaryBus.HEV_P4>() .WhenInjectedExactlyInto<DeclarationModePrimaryBusRunDataFactory.HEV_P4>(); - Bind<IPrimaryBusDeclarationDataAdapter>().To<DeclarationDataAdapterPrimaryBus.PEV_E2>() + Bind<IPrimaryBusDeclarationDataAdapter>().To<DeclarationDataAdapterPrimaryBus.HEV_P2>() + .WhenInjectedExactlyInto<DeclarationModePrimaryBusRunDataFactory.HEV_P_IHPC>(); + + Bind<IPrimaryBusDeclarationDataAdapter>().To<DeclarationDataAdapterPrimaryBus.PEV_E2>() .WhenInjectedExactlyInto<DeclarationModePrimaryBusRunDataFactory.PEV_E2>(); Bind<IPrimaryBusDeclarationDataAdapter>().To<DeclarationDataAdapterPrimaryBus.PEV_E3>() diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index 69400b7fa699842ea055ccc9dac49440fddba73d..1752ab2e82888651e7670a2f4c09012225f91920 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -470,7 +470,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa Vehicle.Components.AuxiliaryInputData, Vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass, Vehicle.Length ?? mission.BusParameter.VehicleLength, - Vehicle.Components.AxleWheels.NumSteeredAxles, Vehicle.VehicleType); + Vehicle.Components.AxleWheels.NumSteeredAxles, + VectoSimulationJobType.ParallelHybridVehicle);//Hardcode to override IHPC runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData); runData.DriverData = DriverData; @@ -573,6 +574,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa } + public class HEV_P_IHPC : HEV_P2 + { + public HEV_P_IHPC(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, IMissionFilter missionFilter) : base(dataProvider, report, declarationDataAdapter, cycleFactory, missionFilter) { } diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs index 2209d0af267f5bccd517c03782b0ced22cd53b53..3971702d0fea389b673b8dc6064ffdf5e188915b 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs @@ -158,6 +158,10 @@ namespace TUGraz.VectoCore.InputData.Reader _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P4)); + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P_IHPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.IHPC, + ArchitectureID.P2)); + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.PEV_E2>().Named( _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E2)); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs index 84c9ddc5b72492e9df9d680c99ac70473e7744a7..049b1f481275fbb9622455c5a7fff033070ef50c 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs @@ -263,7 +263,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, true))); - Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( + Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( + VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.IHPC, + ArchitectureID.P2, + false, + false, + true))); + + + Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2, diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs index ca7ac8ae1ca482725c905834cfb2e08408562292..1e52f265c2640d839a8bccca7650f28a85c732f9 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs @@ -67,7 +67,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF false, false))); - Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( + + Bind<IXMLVehicleInformationFile>().To<HEV_Px_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( + VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.IHPC, + ArchitectureID.P2, + false, + false, + false))); + + Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams( VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S2,