From 20ba27e598c78e52b52f589e57275a54b7fa0dab Mon Sep 17 00:00:00 2001 From: Harald Martini <harald.martini@student.tugraz.at> Date: Mon, 5 Sep 2022 10:41:25 +0200 Subject: [PATCH] updated namespaces implemented Conventional Heavy Lorry in new RunDataFactories --- VECTO/Input Files/Engine.vb | 1 + VECTO/Input Files/Gearbox.vb | 1 + VECTO/Input Files/Vehicle.vb | 1 + .../Reader/DataObjectAdapter/DataAdapter | 121 ++++++++++++++++++ .../DeclarationDataAdapterNinjectModule.cs | 28 ++-- .../DeclarationDataAdapterPrimaryBus.cs | 2 +- .../EngineeringDataAdapter.cs | 2 +- .../HeavyLorry/Conventional.cs | 11 +- .../DeclarationDataAdapterHeavyLorry.cs | 14 +- .../DataObjectAdapter/HeavyLorry/HEV_P1.cs | 2 +- .../DataObjectAdapter/HeavyLorry/HEV_P2.cs | 2 +- .../DataObjectAdapter/HeavyLorry/HEV_P2_5.cs | 4 +- .../DataObjectAdapter/HeavyLorry/HEV_P3.cs | 2 +- .../DataObjectAdapter/HeavyLorry/HEV_P4.cs | 4 +- .../DataObjectAdapter/HeavyLorry/HEV_S2.cs | 2 +- .../DataObjectAdapter/HeavyLorry/HEV_S3.cs | 9 +- .../DataObjectAdapter/HeavyLorry/HEV_S4.cs | 9 +- .../HeavyLorry/HEV_S_IEPC.cs | 4 +- .../DataObjectAdapter/HeavyLorry/LorryBase.cs | 2 +- .../DataObjectAdapter/HeavyLorry/PEV_E2.cs | 4 +- .../DataObjectAdapter/HeavyLorry/PEV_E3.cs | 4 +- .../DataObjectAdapter/HeavyLorry/PEV_E4.cs | 4 +- .../HeavyLorry/PEV_E_IEPC.cs | 4 +- .../HeavyLorryRunDataFactory/Conventional.cs | 11 +- ...DeclarationModeHeavyLorryRunDataFactory.cs | 11 +- .../Impl/DeclarationMode/RunDataFactories.cd | 33 +++++ ...rationModeHeavyLorryVectoRunDataFactory.cs | 1 + ...rationVTPModeVectoRunDataFactoryLorries.cs | 1 + .../VectoRunDataFactoryNinjectModule.cs | 3 +- .../GenericModelData/GenericBusEngineData.cs | 1 + .../VehicleTypeAndArchitectureStringHelper.cs | 93 ++++++++++---- .../RunDataFactoryFactoryTest.cs | 50 ++++++-- .../CompletedBusFactorMethodTest.cs | 1 + .../Models/Declaration/DeclarationDataTest.cs | 1 + .../Models/Declaration/ShiftPolygonTest.cs | 1 + .../SimulationComponent/ATGearboxTest.cs | 1 + .../Models/SimulationComponent/GearboxTest.cs | 1 + .../Models/SimulationComponent/VehicleTest.cs | 1 + .../SimulationComponentData/ValidationTest.cs | 1 + .../Utils/MockSimulationDataFactory.cs | 1 + .../XML/XMLDeclarationInputTest.cs | 1 + 41 files changed, 338 insertions(+), 112 deletions(-) create mode 100644 VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DataAdapter create mode 100644 VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/RunDataFactories.cd diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb index 6d00b17602..a1421cc170 100644 --- a/VECTO/Input Files/Engine.vb +++ b/VECTO/Input Files/Engine.vb @@ -24,6 +24,7 @@ Imports TUGraz.VectoCore.Models.Declaration Imports TUGraz.VectoCore.Models.SimulationComponent.Data Imports TUGraz.VectoCore.Models.SimulationComponent.Impl Imports TUGraz.VectoCore.Utils +Imports DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry ''' <summary> diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index a28e7c3000..1f55fd5e56 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -28,6 +28,7 @@ Imports TUGraz.VectoCore.Models.SimulationComponent.Data Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine Imports TUGraz.VectoCore.Models.SimulationComponent.Impl Imports TUGraz.VectoCore.Utils +Imports DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry <CustomValidation(GetType(Gearbox), "ValidateGearbox")> Public Class Gearbox diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 64e65684f2..3b892b018d 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -26,6 +26,7 @@ Imports TUGraz.VectoCore.Models.Declaration Imports TUGraz.VectoCore.Models.SimulationComponent.Data Imports TUGraz.VectoCore.Models.SimulationComponent.Impl Imports TUGraz.VectoCore.Utils +Imports DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry <CustomValidation(GetType(Vehicle), "ValidateVehicle")> Public Class Vehicle diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DataAdapter b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DataAdapter new file mode 100644 index 0000000000..50da0f5233 --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DataAdapter @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="NameAndType"> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry"> + <Position X="1" Y="2.75" Width="6" /> + <Compartments> + <Compartment Name="Nested Types" Collapsed="false" /> + </Compartments> + <NestedTypes> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.Conventional" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\Conventional.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P4"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_P4.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S4" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_S4.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P1"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_P1.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P2_5"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_P2_5.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P2"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_P2.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S2" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_S2.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P3"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_P3.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S3" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_S3.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E2" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\PEV_E2.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E3" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\PEV_E3.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E4" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\PEV_E4.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.LorryBase" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\LorryBase.cs</NewMemberFileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E_IEPC" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\PEV_E_IEPC.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S_IEPC" Collapsed="true"> + <TypeIdentifier> + <NewMemberFileName>InputData\Reader\DataObjectAdapter\HeavyLorry\HEV_S_IEPC.cs</NewMemberFileName> + </TypeIdentifier> + </Class> + </NestedTypes> + <TypeIdentifier> + <HashCode>AAEAAAgAgCAgAAAAAAEAEgIAAAAAACAEAAAAQQABQAA=</HashCode> + <FileName>InputData\Reader\DataObjectAdapter\HeavyLorry\DeclarationDataAdapterHeavyLorry.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.AbstractSimulationDataAdapter"> + <Position X="8.25" Y="0.5" Width="5" /> + <TypeIdentifier> + <HashCode>AAggAEAAEAAABAAAAAAAAhAEABEAAgAMAAgAAAAADAA=</HashCode> + <FileName>InputData\Reader\DataObjectAdapter\AbstractSimulationDataAdapter.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.DeclarationDataAdapterPrimaryBus"> + <Position X="7.25" Y="7.75" Width="2.75" /> + <TypeIdentifier> + <HashCode>AAAQAAAAgDAgAAAAAAAIAgIASABgAqIgEAAAAAABQAQ=</HashCode> + <FileName>InputData\Reader\DataObjectAdapter\DeclarationDataAdapterPrimaryBus.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.ElectricConsumerEntry"> + <Position X="10.5" Y="6" Width="4" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAACAAAAACAAAAAAAAAAAEEAAAAA=</HashCode> + <FileName>InputData\Reader\DataObjectAdapter\DeclarationDataAdapterPrimaryBus.cs</FileName> + </TypeIdentifier> + </Class> + <Interface Name="TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.IDeclarationDataAdapter"> + <Position X="6" Y="0.5" Width="3.25" /> + <TypeIdentifier> + <HashCode>AAEAAAgAgCAgAAAAAAEAAgIAAAAAAAAEAAAAQAABQAA=</HashCode> + <FileName>InputData\Reader\DataObjectAdapter\IDeclarationDataAdapter.cs</FileName> + </TypeIdentifier> + </Interface> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs index 08425cda42..1c3560efba 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterNinjectModule.cs @@ -10,46 +10,46 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter public override void Load() { #region HeavyLorry - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.Conventional>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.Conventional>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.Conventional>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_S2>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S2>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_S2>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_S3>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S3>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_S3>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_S4>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S4>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_S4>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_S_IEPC>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_S_IEPC>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_S_IEPC>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_P1>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P1>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_P1>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_P2>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P2>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_P2>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_P2_5>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P2_5>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_P2_5>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_P3>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P3>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_P3>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.HEV_P4>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.HEV_P4>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.HEV_P4>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.PEV_E2>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E2>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.PEV_E2>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.PEV_E3>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E3>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.PEV_E3>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.PEV_E4>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E4>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.PEV_E4>(); - Bind<IDeclarationDataAdapter>().To<DeclarationDataAdapterHeavyLorry.PEV_E_IEPC>() + Bind<IDeclarationDataAdapter>().To<HeavyLorry.DeclarationDataAdapterHeavyLorry.PEV_E_IEPC>() .WhenInjectedExactlyInto<DeclarationModeHeavyLorryRunDataFactory.PEV_E_IEPC>(); #endregion HeavyLorry } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs index 9067d8cca2..373c7c44c7 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs @@ -19,7 +19,7 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { - public class DeclarationDataAdapterPrimaryBus : DeclarationDataAdapterHeavyLorry.Conventional + public class DeclarationDataAdapterPrimaryBus : HeavyLorry.DeclarationDataAdapterHeavyLorry.Conventional { #region Overrides of DeclarationDataAdapterHeavyLorry diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index e5fb7b2d75..2363f7c692 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -145,7 +145,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter : 4.SI<Meter>()); retVal.CrossWindCorrectionCurve = new CrosswindCorrectionCdxALookup( airDragArea, - DeclarationDataAdapterHeavyLorry.Conventional.GetDeclarationAirResistanceCurve( + HeavyLorry.DeclarationDataAdapterHeavyLorry.Conventional.GetDeclarationAirResistanceCurve( GetAirdragParameterSet( data.VehicleCategory, data.AxleConfiguration, data.Components.AxleWheels.AxlesEngineering.Count, data.GrossVehicleMassRating), airDragArea, height), diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/Conventional.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/Conventional.cs index 0b8b2a0ac5..ae836867a3 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/Conventional.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/Conventional.cs @@ -16,7 +16,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { @@ -76,10 +76,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter WarnDeclarationMode("VehicleData"); } - return data.ExemptedVehicle - ? CreateExemptedVehicleData(data) - : CreateNonExemptedVehicleData(data, segment, mission, loading.Value.Item1, loading.Value.Item2, - allowVocational); + //return data.ExemptedVehicle + // ? CreateExemptedVehicleData(data) + // : CreateNonExemptedVehicleData(data, segment, mission, loading.Value.Item1, loading.Value.Item2, + // allowVocational); + return CreateNonExemptedVehicleData(data, segment, mission, loading.Value.Item1, loading.Value.Item2, allowVocational); } protected virtual VehicleData CreateNonExemptedVehicleData(IVehicleDeclarationInputData data, diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs index 573b15b7d3..377f87edd1 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs @@ -31,26 +31,16 @@ using System; using System.Collections.Generic; -using System.Linq; -using TUGraz.VectoCommon.BusAuxiliaries; -using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.Reader.ComponentData; -using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; -using TUGraz.VectoCore.InputData.Reader.ShiftStrategy; -using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; -using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; -using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; -using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry : AbstractSimulationDataAdapter, IDeclarationDataAdapter @@ -60,7 +50,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { } - private IDeclarationDataAdapter _declarationDataAdapterImplementation = new DeclarationDataAdapterHeavyLorry.Conventional(); + private IDeclarationDataAdapter _declarationDataAdapterImplementation = new Conventional(); public static readonly GearboxType[] SupportedGearboxTypes = Conventional.SupportedGearboxTypes; public static List<CrossWindCorrectionCurveReader.CrossWindCorrectionEntry> GetDeclarationAirResistanceCurve(string parameterSet, SquareMeter si, Meter meter) { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P1.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P1.cs index d9ebb4ca1f..bef6a10f64 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P1.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P1.cs @@ -1,4 +1,4 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2.cs index 89991f09b9..648cea5b2c 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2.cs @@ -1,5 +1,5 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2_5.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2_5.cs index 18b36227b4..da14951413 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2_5.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P2_5.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class HEV_P2_5 : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class HEV_P2_5 : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P3.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P3.cs index 3b12407d16..331c5372f5 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P3.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P3.cs @@ -1,5 +1,5 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P4.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P4.cs index 3fbaf1b7a6..99a743928b 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P4.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_P4.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class HEV_P4 : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class HEV_P4 : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S2.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S2.cs index ea97ab174c..e15d55e1ba 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S2.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S2.cs @@ -8,7 +8,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S3.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S3.cs index d02d80057c..383233462f 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S3.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S3.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TUGraz.VectoCore.InputData.Reader.Impl; - -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S4.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S4.cs index ffa4b4975e..48deec22b0 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S4.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S4.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TUGraz.VectoCore.InputData.Reader.Impl; - -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S_IEPC.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S_IEPC.cs index 0917520f49..44194285ad 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S_IEPC.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/HEV_S_IEPC.cs @@ -1,8 +1,8 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class HEV_S_IEPC : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class HEV_S_IEPC : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/LorryBase.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/LorryBase.cs index 198243eef9..2ab8ab8303 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/LorryBase.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/LorryBase.cs @@ -8,7 +8,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E2.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E2.cs index 366d6ac6b4..eeb02207a9 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E2.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E2.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class PEV_E2 : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class PEV_E2 : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E3.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E3.cs index 91528a4571..ebcf0d47e6 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E3.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E3.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class PEV_E3 : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class PEV_E3 : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E4.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E4.cs index 4dac3f87fc..54254768d6 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E4.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E4.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class PEV_E4 : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class PEV_E4 : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E_IEPC.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E_IEPC.cs index 61f904f998..ba61ea4702 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E_IEPC.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/PEV_E_IEPC.cs @@ -1,9 +1,9 @@ -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry { public partial class DeclarationDataAdapterHeavyLorry { - public class PEV_E_IEPC : DataObjectAdapter.DeclarationDataAdapterHeavyLorry.LorryBase + public class PEV_E_IEPC : LorryBase { } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/Conventional.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/Conventional.cs index e27fd01ee5..10d6a2bb4a 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/Conventional.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/Conventional.cs @@ -15,7 +15,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa { public abstract partial class DeclarationModeHeavyLorryRunDataFactory { - public class Conventional : LorryBase + + public sealed class Conventional : LorryBase { public Conventional(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } @@ -44,7 +45,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa } } - private VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational) { var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; @@ -160,5 +161,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa public PEV_E_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, IDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } } + + public class Exempted : LorryBase + { + public Exempted(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, + IDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } + } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index cbdb049b6a..cf845914d1 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -43,6 +43,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa protected PTOData _ptoTransmissionData; protected PTOData _municipalPtoTransmissionData; protected ShiftStrategyParameters _gearshiftData; + private bool _allowVocational; protected LorryBase(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, @@ -99,6 +100,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa { var vehicle = InputDataProvider.JobInputData.Vehicle; _segment = GetSegment(vehicle, out var allowVocational); + _allowVocational = allowVocational; _driverdata = DataAdapter.CreateDriverData(); _driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile); var tempVehicle = DataAdapter.CreateVehicleData(vehicle, _segment, _segment.Missions.First(), @@ -157,7 +159,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa CycleType.PTO, "PTO", false) }; } - protected abstract VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational); + protected virtual VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational) + { + throw new NotImplementedException(); + } public virtual void InitializeReport() { @@ -166,14 +171,14 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa var vehicle = InputDataProvider.JobInputData.Vehicle; if (vehicle.ExemptedVehicle) { - powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()); + powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(), _allowVocational); fuels = new List<List<FuelData.Entry>>(); } else { powertrainConfig = _segment.Missions.Select( mission => CreateVectoRunData( - vehicle, 0, mission, mission.Loadings.First())) + vehicle, 0, mission, mission.Loadings.First(), _allowVocational)) .FirstOrDefault(x => x != null); fuels = vehicle.Components.EngineInputData.EngineModes.Select(x => x.Fuels.Select(f => DeclarationData.FuelData.Lookup(f.FuelType, vehicle.TankSystem)).ToList()) .ToList(); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/RunDataFactories.cd b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/RunDataFactories.cd new file mode 100644 index 0000000000..1c447d7f80 --- /dev/null +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/RunDataFactories.cd @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="NameAndType"> + <Class Name="TUGraz.VectoCore.InputData.Reader.Impl.DeclarationModeTruckVectoRunDataFactory"> + <Position X="6.5" Y="4.75" Width="5.25" /> + <TypeIdentifier> + <HashCode>gAKAIAAAAAAAAAABAAAABAAAAAQAAAEAAAAAAAAAAAA=</HashCode> + <FileName>InputData\Reader\Impl\DeclarationModeHeavyLorryVectoRunDataFactory.cs</FileName> + </TypeIdentifier> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.Impl.AbstractDeclarationVectoRunDataFactory"> + <Position X="1.25" Y="2.25" Width="3.5" /> + <TypeIdentifier> + <HashCode>gAoAAgAAAkEgAQIBAACgACgAAAAAAAEIAgAAgAQABAA=</HashCode> + <FileName>InputData\Reader\Impl\AbstractDeclarationVectoRunDataFactory.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="TUGraz.VectoCore.InputData.Reader.Impl.DeclarationModePrimaryBusVectoRunDataFactory"> + <Position X="6.5" Y="1.25" Width="6" /> + <TypeIdentifier> + <HashCode>gAIBAgAAAAAAAAABAAAABAAAAAAIAAEAAAAAAAAAAAA=</HashCode> + <FileName>InputData\Reader\Impl\DeclarationModePrimaryBusVectoRunDataFactory.cs</FileName> + </TypeIdentifier> + </Class> + <Interface Name="TUGraz.VectoCore.InputData.IVectoRunDataFactory"> + <Position X="2.75" Y="0.5" Width="3" /> + <TypeIdentifier> + <HashCode>AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>InputData\IVectoRunDataFactory.cs</FileName> + </TypeIdentifier> + </Interface> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs index 4f39aff811..f7c2ed8900 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData; +using DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry; namespace TUGraz.VectoCore.InputData.Reader.Impl diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs index 574d77a849..a40581987b 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs @@ -43,6 +43,7 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData; +using DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry; namespace TUGraz.VectoCore.InputData.Reader.Impl { diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs index fbd6e0359c..a1aabcb7d5 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs @@ -117,7 +117,8 @@ namespace TUGraz.VectoCore.InputData.Reader _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, ArchitectureID.E_IEPC)); - + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.Exempted>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, exempted: true)); #endregion #region PrimaryBus diff --git a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs index b0e5b91229..a6ac03e7af 100644 --- a/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs +++ b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs @@ -14,6 +14,7 @@ using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Utils; +using DeclarationDataAdapterHeavyLorry = TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry.DeclarationDataAdapterHeavyLorry; namespace TUGraz.VectoCore.Models.Declaration { diff --git a/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs b/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs index 99bf7c53dc..9b6e8adb78 100644 --- a/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs +++ b/VectoCore/VectoCore/Utils/Ninject/VehicleTypeAndArchitectureStringHelper.cs @@ -114,38 +114,83 @@ namespace TUGraz.VectoCore.Utils.Ninject return GetName(new VehicleClassification(jobType, archId, vehicleType, exempted, iepc, ihpc)); } + public string GetName(string vehicleType, bool exempted) + { + return GetName(vehicleType, VectoSimulationJobType.ConventionalVehicle, exempted: exempted); + } + #endregion public struct VehicleClassification { + private readonly VectoSimulationJobType _jobType; + + private VectoSimulationJobType JobType + { + get + { + if (Exempted) { + return VectoSimulationJobType.ConventionalVehicle; //ignored for exempted vehicles + } + return _jobType; + } + } + + private readonly ArchitectureID _archId; + + private ArchitectureID ArchId + { + get + { + if (Exempted) { + return ArchitectureID.UNKNOWN; //ignored for exempted vehicles + } + return _archId; + } + } + + private readonly string _vehicleType; + + private string VehicleType => _vehicleType; + + private readonly bool _exempted; + + private bool Exempted + { + get + { + return _exempted; + } + } + + private readonly bool _iepc; + + private bool Iepc => _iepc; + + private readonly bool _ihpc; - private VectoSimulationJobType JobType { get; } - private ArchitectureID ArchId { get; } - private string VehicleType { get; } - private bool Exempted { get; } - private bool Iepc { get; } - private bool Ihpc { get; } + private bool Ihpc => _ihpc; public VehicleClassification(VectoSimulationJobType jobType, ArchitectureID archId, string vehicleType, bool exempted, bool iepc, bool ihpc) { - Iepc = iepc; - Ihpc = ihpc; - Exempted = exempted; - VehicleType = vehicleType; - ArchId = archId; - JobType = jobType; + _iepc = iepc; + _ihpc = ihpc; + _exempted = exempted; + _vehicleType = vehicleType; + _archId = archId; + _jobType = jobType; } public VehicleClassification(IVehicleDeclarationInputData inputData) : this() { //Iepc = (inputData.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; //Ihpc = (inputData.Components?.IEPC != null); - Iepc = false; - Ihpc = false; - Exempted = inputData.ExemptedVehicle; - VehicleType = inputData.VehicleCategory.GetVehicleType(); - ArchId = inputData.ArchitectureID; - JobType = inputData.VehicleType; + _iepc = false; + _ihpc = false; + _exempted = inputData.ExemptedVehicle; + _vehicleType = inputData.VehicleCategory.GetVehicleType(); + _archId = inputData.ArchitectureID; + _jobType = inputData.VehicleType; } @@ -154,12 +199,12 @@ namespace TUGraz.VectoCore.Utils.Ninject { //Iepc = (inputData.MultistageJobInputData..Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; //Ihpc = (inputData.Components?.IEPC != null); - Iepc = false; - Ihpc = false; - Exempted = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle; - VehicleType = inputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory.GetVehicleType(); - ArchId = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID; - JobType = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.VehicleType; + _iepc = false; + _ihpc = false; + _exempted = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle; + _vehicleType = inputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory.GetVehicleType(); + _archId = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID; + _jobType = inputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.VehicleType; //inputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage. } diff --git a/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs index b4444c669f..c41ed30d97 100644 --- a/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs +++ b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs @@ -12,6 +12,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData; using TUGraz.VectoCore.InputData.Reader; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.InputData.Reader.Impl; using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDataFactory; @@ -196,10 +197,20 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory } - -#endregion HeavyLorry -#region PrimaryBus [TestCase()] + public void Exempted_HeavyLorryTest(Type expectedDataAdapter = null) + { + var input = new Mock<IDeclarationInputDataProvider>() + .Exempted() + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.Exempted), expectedDataAdapter); + + } + + + #endregion HeavyLorry + #region PrimaryBus + [TestCase()] public void ConventionalPrimaryBus() { var input = new Mock<IDeclarationInputDataProvider>() @@ -263,27 +274,24 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S2)); } - [TestCase()] - public void HEV_P3_PrimaryBus() + public void HEV_P2_5_PrimaryBus() { var input = new Mock<IDeclarationInputDataProvider>() - .HEV(ArchitectureID.P3) + .HEV(ArchitectureID.P2_5) .PrimaryBus(); - CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P3)); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P2_5)); } - - [TestCase()] - public void HEV_P2_5_PrimaryBus() + [TestCase()] + public void HEV_P3_PrimaryBus() { var input = new Mock<IDeclarationInputDataProvider>() - .HEV(ArchitectureID.P2_5) + .HEV(ArchitectureID.P3) .PrimaryBus(); - CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P2_5)); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P3)); } - [TestCase()] public void HEV_P4_PrimaryBus() { @@ -331,7 +339,7 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory } #endregion PrimaryBus - #region CompletedBus + #region CompletedBus [TestCase()] public void ConventionalCompletedBus() { @@ -521,6 +529,13 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory return mock; } + internal static Mock<IDeclarationInputDataProvider> Exempted(this Mock<IDeclarationInputDataProvider> mock) + { + mock.Setup(p => p.JobInputData.Vehicle.ExemptedVehicle) + .Returns(true); + return mock; + } + internal static Mock<IMultistageVIFInputData> Conventional(this Mock<IMultistageVIFInputData> mock) { mock.Setup(p => p.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.VehicleType) @@ -564,6 +579,13 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory return mock; } + internal static Mock<IMultistageVIFInputData> Exempted(this Mock<IMultistageVIFInputData> mock) + { + mock.Setup(p => p.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle).Returns(true); + return mock; + } + + } diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs index 6334fd4bd7..4ae2f2680f 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs @@ -22,6 +22,7 @@ using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 4fb62f6219..49685ca7fc 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.InputData.Reader.Impl; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data; diff --git a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs index 89c56a1bfa..defefa5236 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs @@ -42,6 +42,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs index e84ed5e750..03b0b59ca1 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.Connector.Ports.Impl; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs index 94f1b6fbde..35435a494a 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs @@ -53,6 +53,7 @@ using System.IO; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; // ReSharper disable RedundantAssignment // ReSharper disable UnusedVariable diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/VehicleTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/VehicleTest.cs index 6381bb3e3a..7b0e6e6df5 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/VehicleTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/VehicleTest.cs @@ -38,6 +38,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs index 2857d8a00c..9ce9851a6f 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs @@ -42,6 +42,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs index 171980a2aa..5f6bcc6e0e 100644 --- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs +++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs @@ -45,6 +45,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Tests.FileIO; using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery; namespace TUGraz.VectoCore.Tests.Utils diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs index 2bbb611ebd..f0f570272d 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs @@ -52,6 +52,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.XML -- GitLab