diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index adf6191b0204de38d7cde47e96273524cacfc065..6dad5ee10526325fd199ad26c1d394699cff30e4 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -246,7 +246,7 @@ Public Class Gearbox New VehicleData() _ With {.DynamicTyreRadius = rdyn, .VehicleCategory = vehiclecategory}}, - Nothing, DeclarationDataAdapterHeavyLorry.Conventional.SupportedGearboxTypes) + Nothing, DeclarationDataAdapterHeavyLorry.Conventional.SupportsGearboxTypes) Else Dim doa As EngineeringDataAdapter = New EngineeringDataAdapter() diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs index 7b9fd6084e70971726b937ae19d2d5813bdb6240..fe7fa47d0f07c4c0c3626dac8ea6542d99255371 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs @@ -72,6 +72,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry return _driverDataAdapter.CreateDriverData(); } + protected abstract GearboxType[] SupportedGearboxTypes { get; } + public virtual VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational) @@ -168,7 +170,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry public class Conventional : LorryBase { - public static readonly GearboxType[] SupportedGearboxTypes = + public static GearboxType[] SupportsGearboxTypes = { GearboxType.MT, GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType + .ATSerial}; + + protected override GearboxType[] SupportedGearboxTypes => new [] { GearboxType.MT, GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial }; private IEngineDataAdapter _engineDataAdapter = new CombustionEngineComponentDataAdapter(); @@ -250,7 +255,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { #region Overrides of LorryBase - + protected override GearboxType[] SupportedGearboxTypes { get; } public override IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesDeclarationInputData auxData, IBusAuxiliariesDeclarationData busAuxData, MissionType missionType, VehicleClass vehicleClass, Meter vehicleLength, int? numSteeredAxles) @@ -266,6 +271,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry private ParallelHybridStrategyParameterDataAdapter _hybridStrategyDataAdapter = new ParallelHybridStrategyParameterDataAdapter(); + protected override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial }; private GearboxDataAdapter _gearboxDataAdapter = new GearboxDataAdapter(null); #region Overrides of LorryBase @@ -293,11 +300,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { #region Overrides of LorryBase + protected override GearboxType[] SupportedGearboxTypes { get; } + private readonly GearboxDataAdapter _gearboxDataAdapter = new GearboxDataAdapter(null); private readonly ElectricStorageAdapter _electricStorageAdapter = new ElectricStorageAdapter(); private readonly ElectricMachinesDataAdapter _electricMachineAdapter = new ElectricMachinesDataAdapter(); - public static readonly GearboxType[] SupportedGearboxTypes = - { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial, GearboxType.APTN }; public override GearboxData CreateGearboxData(IVehicleDeclarationInputData inputData, VectoRunData runData, IShiftPolygonCalculator shiftPolygonCalc) { @@ -338,7 +345,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry public class HEV_S2 : SerialHybrid { #region Overrides of LorryBase - public static readonly GearboxType[] SupportedGearboxTypes = + protected override GearboxType[] SupportedGearboxTypes => new[] { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial, GearboxType.APTN }; private GearboxDataAdapter _gearBoxDataAdaper = new GearboxDataAdapter(new TorqueConverterDataAdapter()); public override GearboxData CreateGearboxData(IVehicleDeclarationInputData inputData, VectoRunData runData, @@ -357,12 +364,34 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry public class HEV_S3 : SerialHybrid { } public class HEV_S4 : SerialHybrid { } public class HEV_S_IEPC : SerialHybrid { } - public class HEV_P1 : ParallelHybrid { } - public class HEV_P2 : ParallelHybrid { } - public class HEV_P2_5 : ParallelHybrid { } + + public class HEV_P1 : ParallelHybrid + { + + } + + public class HEV_P2 : ParallelHybrid + { + protected override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.IHPC, }; + } + + public class HEV_P2_5 : ParallelHybrid + { + + } public class HEV_P3 : ParallelHybrid { } public class HEV_P4 : ParallelHybrid { } - public class PEV_E2 : BatteryElectric { } + + public class PEV_E2 : BatteryElectric + { + #region Overrides of BatteryElectric + + protected override GearboxType[] SupportedGearboxTypes => new[] + { GearboxType.AMT, GearboxType.ATPowerSplit, GearboxType.ATSerial, GearboxType.APTN }; + + #endregion + } public class PEV_E3 : BatteryElectric { } public class PEV_E4 : BatteryElectric { } @@ -374,6 +403,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { #region Overrides of LorryBase + protected override GearboxType[] SupportedGearboxTypes { get; } + public override VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational) { diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs index e04dbb82032111018539a3cd16ce12b72bd9c449..05c2844d0c29c7fb29a1ef8f7317d56e5626636c 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs @@ -835,7 +835,7 @@ namespace TUGraz.VectoCore.Tests.XML var gbxType = inputDataProvider.JobInputData.Vehicle.Components.GearboxInputData.Type; Assert.AreEqual(gearboxType, gbxType.ToXMLFormat()); - Assert.IsTrue(DeclarationDataAdapterHeavyLorry.Conventional.SupportedGearboxTypes.Contains(gbxType)); + Assert.IsTrue(DeclarationDataAdapterHeavyLorry.Conventional.SupportsGearboxTypes.Contains(gbxType)); } }