From 0fdcfe09886c0cb6837cf207c5603f1c082648b7 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 7 Nov 2018 17:22:55 +0100 Subject: [PATCH] implementing interface --- VECTO/Input Files/Vehicle.vb | 56 ++++++++++++++- .../Resources/XMLNames.Designer.cs | 72 +++++++++++++++++++ .../VectoCommon/Resources/XMLNames.resx | 24 +++++++ .../FileIO/JSON/JSONComponentInputData.cs | 12 ++++ .../InputData/FileIO/JSON/JSONVehicleData.cs | 19 +++++ .../XMLDeclarationVehicleDataProvider.cs | 46 ++++++++++++ .../XMLEngineeringVehicleDataProvider.cs | 10 +++ .../Models/Declaration/DeclarationData.cs | 9 +++ VectoCore/VectoCoreTest/VectoCoreTest.csproj | 6 ++ 9 files changed, 253 insertions(+), 1 deletion(-) diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 49bc8665e1..498f2aa990 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -320,7 +320,13 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property VIN As String Implements IVehicleDeclarationInputData.VIN + Public ReadOnly Property ExemptedVehicle As Boolean Implements IVehicleDeclarationInputData.ExemptedVehicle + get + Return false + End Get + End Property + + Public ReadOnly Property VIN As String Implements IVehicleDeclarationInputData.VIN Get Return "N.A." End Get @@ -645,4 +651,52 @@ Public Class Vehicle Return Me End Get End Property + + Public ReadOnly Property VocationalVehicle As Boolean Implements IVehicleDeclarationInputData.VocationalVehicle + get + Return DeclarationData.Vehicle.VocationalVehicleDefault + End Get + End Property + + Public ReadOnly Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab + get + Return DeclarationData.Vehicle.SleeperCabDefault + End Get + End Property + + Public ReadOnly Property TankSystem As NgTankSystem Implements IVehicleDeclarationInputData.TankSystem + get + Return DeclarationData.Vehicle.NgTankSystemDefault + End Get + End Property + + Public ReadOnly Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle + get + Return DeclarationData.Vehicle.ZeroEmissionVehicleDefault + End Get + End Property + + Public ReadOnly Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV + get + return DeclarationData.Vehicle.HybridElectricHDVDefault + End Get + End Property + + Public ReadOnly Property DualFuelVehicle As Boolean Implements IVehicleDeclarationInputData.DualFuelVehicle + get + return DeclarationData.Vehicle.DualFuelVehicleDefault + End Get + End Property + + Public ReadOnly Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1 + get + Return Nothing + End Get + End Property + + Public ReadOnly Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2 + get + Return Nothing + End Get + End Property End Class diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index d2b02af8b2..d8d00d3d99 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -2310,6 +2310,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to DualFuelVehicle. + /// </summary> + public static string Vehicle_DualFuelVehicle { + get { + return ResourceManager.GetString("Vehicle_DualFuelVehicle", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to GrossVehicleMass. /// </summary> @@ -2319,6 +2328,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to HybridElectricHDV. + /// </summary> + public static string Vehicle_HybridElectricHDV { + get { + return ResourceManager.GetString("Vehicle_HybridElectricHDV", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to IdlingSpeed. /// </summary> @@ -2346,6 +2364,33 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to MaxNetPower1. + /// </summary> + public static string Vehicle_MaxNetPower1 { + get { + return ResourceManager.GetString("Vehicle_MaxNetPower1", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to MaxNetPower2. + /// </summary> + public static string Vehicle_MaxNetPower2 { + get { + return ResourceManager.GetString("Vehicle_MaxNetPower2", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to NgTankSystem. + /// </summary> + public static string Vehicle_NgTankSystem { + get { + return ResourceManager.GetString("Vehicle_NgTankSystem", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to PTO. /// </summary> @@ -2481,6 +2526,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to SleeperCab. + /// </summary> + public static string Vehicle_SleeperCab { + get { + return ResourceManager.GetString("Vehicle_SleeperCab", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to SteeredAxles. /// </summary> @@ -2544,6 +2598,24 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to VocationalVehicle. + /// </summary> + public static string Vehicle_VocationalVehicle { + get { + return ResourceManager.GetString("Vehicle_VocationalVehicle", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to ZeroEmissionVehicle. + /// </summary> + public static string Vehicle_ZeroEmissionVehicle { + get { + return ResourceManager.GetString("Vehicle_ZeroEmissionVehicle", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to torqueLimit. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index e16a5eb623..254061c611 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -951,4 +951,28 @@ <data name="XMLManufacturerReport_torqueLimitPercent" xml:space="preserve"> <value>torqueLimitPercent</value> </data> + <data name="Vehicle_HybridElectricHDV" xml:space="preserve"> + <value>HybridElectricHDV</value> + </data> + <data name="Vehicle_DualFuelVehicle" xml:space="preserve"> + <value>DualFuelVehicle</value> + </data> + <data name="Vehicle_VocationalVehicle" xml:space="preserve"> + <value>VocationalVehicle</value> + </data> + <data name="Vehicle_SleeperCab" xml:space="preserve"> + <value>SleeperCab</value> + </data> + <data name="Vehicle_NgTankSystem" xml:space="preserve"> + <value>NgTankSystem</value> + </data> + <data name="Vehicle_ZeroEmissionVehicle" xml:space="preserve"> + <value>ZeroEmissionVehicle</value> + </data> + <data name="Vehicle_MaxNetPower1" xml:space="preserve"> + <value>MaxNetPower1</value> + </data> + <data name="Vehicle_MaxNetPower2" xml:space="preserve"> + <value>MaxNetPower2</value> + </data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs index 3ad0ed8663..e08492963a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.JSON @@ -148,6 +149,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return ""; } } + public bool ExemptedVehicle { get { return false; } } + public string VIN { get { return VehicleData.VIN; } @@ -299,6 +302,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return PTOTransmission; } } + public bool VocationalVehicle { get { return DeclarationData.Vehicle.VocationalVehicleDefault; } } + public bool SleeperCab { get { return DeclarationData.Vehicle.SleeperCabDefault; } } + public NgTankSystem TankSystem { get { return DeclarationData.Vehicle.NgTankSystemDefault; } } + public bool ZeroEmissionVehicle { get { return DeclarationData.Vehicle.ZeroEmissionVehicleDefault; } } + public bool HybridElectricHDV { get { return DeclarationData.Vehicle.HybridElectricHDVDefault; } } + public bool DualFuelVehicle { get { return DeclarationData.Vehicle.DualFuelVehicleDefault; } } + public Watt MaxNetPower1 { get { return null; } } + public Watt MaxNetPower2 { get { return null; } } + IAuxiliariesEngineeringInputData IVehicleEngineeringInputData.AuxiliaryInputData() { throw new NotImplementedException(); diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 0382ce6c7e..0602186de0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.Impl; +using TUGraz.VectoCore.Models.Declaration; namespace TUGraz.VectoCore.InputData.FileIO.JSON { @@ -55,6 +56,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #region IVehicleInputData + public bool ExemptedVehicle { get { return false; } } + public string VIN { get { return "N.A."; } @@ -253,6 +256,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return this; } } + public bool VocationalVehicle { get { return DeclarationData.Vehicle.VocationalVehicleDefault; } } + + public bool SleeperCab { get { return DeclarationData.Vehicle.SleeperCabDefault; } } + + public NgTankSystem TankSystem { get { return DeclarationData.Vehicle.NgTankSystemDefault; } } + + public bool ZeroEmissionVehicle { get { return DeclarationData.Vehicle.ZeroEmissionVehicleDefault; } } + + public bool HybridElectricHDV { get { return DeclarationData.Vehicle.HybridElectricHDVDefault; } } + + public bool DualFuelVehicle { get { return DeclarationData.Vehicle.DualFuelVehicleDefault; } } + + public Watt MaxNetPower1 { get { return null; } } + + public Watt MaxNetPower2 { get { return null; } } + IAuxiliariesEngineeringInputData IVehicleEngineeringInputData.AuxiliaryInputData() { return Job.EngineeringAuxiliaries; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs index 842f2050a7..f61aa9b84d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs @@ -62,6 +62,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration XMLAuxiliaryData = new XMLDeclarationAuxiliaryDataProvider(xmlInputDataProvider); } + public bool ExemptedVehicle + { + get { return ElementExists(XMLNames.Vehicle_HybridElectricHDV) && ElementExists(XMLNames.Vehicle_DualFuelVehicle); } + } + public string VIN { get { return GetElementValue(XMLNames.Vehicle_VIN); } @@ -249,5 +254,46 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration { get { return this; } } + + public bool VocationalVehicle { get { + return ElementExists(XMLNames.Vehicle_VocationalVehicle) + ? XmlConvert.ToBoolean(GetElementValue(XMLNames.Vehicle_VocationalVehicle)) + : DeclarationData.Vehicle.VocationalVehicleDefault; + } } + public bool SleeperCab { get { + return ElementExists(XMLNames.Vehicle_SleeperCab) + ? XmlConvert.ToBoolean(GetElementValue(XMLNames.Vehicle_SleeperCab)) + : DeclarationData.Vehicle.SleeperCabDefault; + } } + public NgTankSystem TankSystem { get { + return ElementExists(XMLNames.Vehicle_NgTankSystem) + ? EnumHelper.ParseEnum<NgTankSystem>(GetElementValue(XMLNames.Vehicle_NgTankSystem)) + : DeclarationData.Vehicle.NgTankSystemDefault; + } } + public bool ZeroEmissionVehicle { get { + return ElementExists(XMLNames.Vehicle_ZeroEmissionVehicle) + ? XmlConvert.ToBoolean(GetElementValue(XMLNames.Vehicle_ZeroEmissionVehicle)) + : DeclarationData.Vehicle.ZeroEmissionVehicleDefault; + } } + public bool HybridElectricHDV { get { + return ElementExists(XMLNames.Vehicle_HybridElectricHDV) + ? XmlConvert.ToBoolean(GetElementValue(XMLNames.Vehicle_HybridElectricHDV)) + : DeclarationData.Vehicle.HybridElectricHDVDefault; + } } + public bool DualFuelVehicle { get { + return ElementExists(XMLNames.Vehicle_DualFuelVehicle) + ? XmlConvert.ToBoolean(GetElementValue(XMLNames.Vehicle_DualFuelVehicle)) + : DeclarationData.Vehicle.DualFuelVehicleDefault; + } } + public Watt MaxNetPower1 { get { + return ElementExists(XMLNames.Vehicle_MaxNetPower1) + ? GetDoubleElementValue(XMLNames.Vehicle_MaxNetPower1).SI<Watt>() + : null; + } } + public Watt MaxNetPower2 { get { + return ElementExists(XMLNames.Vehicle_MaxNetPower2) + ? GetDoubleElementValue(XMLNames.Vehicle_MaxNetPower2).SI<Watt>() + : null; + } } } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs index 287678bfd0..da1651a477 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs @@ -75,6 +75,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering get { return GetAttributeValue("", XMLNames.Component_ID_Attr); } } + public bool ExemptedVehicle { get { return false; } } + public string VIN { get { return GetElementValue(XMLNames.Vehicle_VIN); } @@ -289,6 +291,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering public IRetarderInputData RetarderInputData { get; private set; } public IPTOTransmissionInputData PTOTransmissionInputData { get; private set; } + public bool VocationalVehicle { get { return false; } } + public bool SleeperCab { get { return true; } } + public NgTankSystem TankSystem { get; } + public bool ZeroEmissionVehicle { get { return false; } } + public bool HybridElectricHDV { get { return false; } } + public bool DualFuelVehicle { get { return false; } } + public Watt MaxNetPower1 { get { return null; } } + public Watt MaxNetPower2 { get { return null; } } #region "FactoryMethods" diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 2dceb56207..82bfe4f136 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -528,5 +528,14 @@ namespace TUGraz.VectoCore.Models.Declaration public static readonly SpecificFuelConsumption UpperFCThreshold = 600.SI(Unit.SI.Gramm.Per.Kilo.Watt.Hour).Cast<SpecificFuelConsumption>(); public static readonly Second FCAccumulationWindow = 10.SI(Unit.SI.Minute).Cast<Second>(); } + + public static class Vehicle { + public const bool DualFuelVehicleDefault = false; + public const bool HybridElectricHDVDefault = false; + public const bool ZeroEmissionVehicleDefault = false; + public const NgTankSystem NgTankSystemDefault = NgTankSystem.Compressed; + public const bool SleeperCabDefault = true; + public const bool VocationalVehicleDefault = false; + } } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index f235d8f798..2676594936 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -2733,6 +2733,12 @@ </Content> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_engine-sample.xml" /> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_gearbox-sample.xml" /> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_exempted.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_FULL_updated.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_torqueLimits.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> -- GitLab