diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs index 2f5d63a5fd39461a168447a0c4a931927ce940d3..468a93f95256461e2d572c5d2bd7292c2e04b5ba 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs @@ -50,6 +50,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + // ============================= + public class XMLAuxiliaryDeclarationDataProviderV20 : XMLAuxiliaryDeclarationDataProviderV10 { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; @@ -61,4 +63,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public XMLAuxiliaryDeclarationDataProviderV20(XmlNode auxNode, IXMLDeclarationVehicleData vehicle) : base( auxNode, vehicle) { } } + + // ============================= + + public class XMLAuxiliaryDeclarationDataProviderV23 : XMLAuxiliaryDeclarationDataProviderV10 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23; + + public new const string XSD_TYPE = "AuxiliariesComponentDeclarationType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLAuxiliaryDeclarationDataProviderV23(XmlNode auxNode, IXMLDeclarationVehicleData vehicle) : base( + auxNode, vehicle) + { } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs index 373aa45ef5a14ce449a5b483d3d2dae49a59405c..9df2b202c7c4d8899a20eb656976c8193f9afc70 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs @@ -79,4 +79,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } // --------------------------------------------------------------------------------------- + + public class XMLDeclarationAuxiliariesDataProviderV23 : XMLDeclarationAuxiliariesDataProviderV10 + { + public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23; + + public new const string XSD_TYPE = "AuxiliariesDataDeclarationType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); + + public XMLDeclarationAuxiliariesDataProviderV23( + IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base( + vehicle, componentNode, sourceFile) + { } + } + + // --------------------------------------------------------------------------------------- } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs index 470446a2c9112dbb101b334d77d195362b548bdc..3ca4743a9a252dd5f112342b6b061f037c69f627 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs @@ -20,6 +20,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules Bind<IXMLADASReader>() .To<XMLADASReaderV23>().Named(XMLADASReaderV23.QUALIFIED_XSD_TYPE); + + + Bind<IXMLAuxiliariesDeclarationInputData>().To<XMLDeclarationAuxiliariesDataProviderV23>() + .Named(XMLDeclarationAuxiliariesDataProviderV23.QUALIFIED_XSD_TYPE); + + Bind<IXMLAuxiliaryDeclarationInputData>().To<XMLAuxiliaryDeclarationDataProviderV23>() + .Named(XMLAuxiliaryDeclarationDataProviderV23.QUALIFIED_XSD_TYPE); + + Bind<IXMLAuxiliaryReader>().To<XMLAuxiliaryReaderV23>().Named(XMLAuxiliaryReaderV23.QUALIFIED_XSD_TYPE); } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs index 79ddb4b19e01a4d644483420777ee5e7ce394edb..39c139e4364c3aa3ca380c6ee3156c6206b1b6c4 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs @@ -316,6 +316,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl { } } + // --------------------------------------------------------------------------------------- + + public class XMLAuxiliaryReaderV23 : XMLComponentReaderV20 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23; + + public new const string AUX_READER_TYPE = "AuxiliariesDataDeclarationType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, AUX_READER_TYPE); + + + public XMLAuxiliaryReaderV23(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base( + vehicle, componentsNode) + { } + } + + // --------------------------------------------------------------------------------------- public class XMLComponentReaderV26 : XMLComponentReaderV20 diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.3/vecto_vehicle-fullElectricSP.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.3/vecto_vehicle-fullElectricSP.xml index 796d580539d7ef02088fa103f66004ce1ae5e4f6..61ffe14f8c1d362315d33ed0bbad8ab468ee0dcc 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.3/vecto_vehicle-fullElectricSP.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.3/vecto_vehicle-fullElectricSP.xml @@ -3278,6 +3278,7 @@ </Fan> <SteeringPump> <Technology>Full electric steering gear</Technology> + <Technology>Electric driven pump</Technology> </SteeringPump> <ElectricSystem> <Technology>Standard technology - LED headlights, all</Technology> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 250f0a6198fabbb2cd81b4441be37be9575643bd..569f2a4c96682b454661735ac853679f865f5447 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -3724,6 +3724,9 @@ <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.3\engineSample_WHR.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.3\vecto_vehicle-fullElectricSP.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.3\vehicle_sampleDualModeDualFuel_WHR.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs index f9115920c3e001f5d27717186dab3cac27b0c255..9a094dc5250afffc70fd4947312a05e7643bbbf5 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs @@ -1089,5 +1089,24 @@ namespace TUGraz.VectoCore.Tests.XML techInput, aux); } } + + [TestCase(@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.3\vecto_vehicle-fullElectricSP.xml")] + public void TestReadingNewSteeringPumpTechnologies(string file) + { + var reader = XmlReader.Create(file); + + var inputDataProvider = xmlInputReader.CreateDeclaration(reader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + var steeringPump = vehicle.Components.AuxiliaryInputData.Auxiliaries.Where(x => x.Type == AuxiliaryType.SteeringPump) + .FirstOrDefault(); + Assert.NotNull(steeringPump); + + Assert.AreEqual("Full electric steering gear", steeringPump.Technology[0]); + Assert.AreEqual("Electric driven pump", steeringPump.Technology[1]); + + Assert.AreEqual( + 616.2, DeclarationData.SteeringPump.Lookup(MissionType.LongHaul, VehicleClass.Class5, steeringPump.Technology).Value()); + } } } \ No newline at end of file