From d8fa6a11dc058c54fcb3ec5be4a99584c0db4ab6 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Thu, 8 Aug 2019 17:31:56 +0200 Subject: [PATCH] make engineering xml with dual fuel and whr work, some refactoring --- VECTO.sln.DotSettings | 1 + .../Resources/XMLNames.Designer.cs | 27 +++ .../VectoCommon/Resources/XMLNames.resx | 9 + .../AbstractXMLResource.cs | 3 +- .../AbstractXMLType.cs | 2 +- .../AbstractCommonComponentType.cs | 1 + .../XMLAuxiliaryDeclarationDataProvider.cs | 1 + .../XMLDeclarationAuxiliariesDataProvider.cs | 1 + .../XMLDeclarationAxlesDataProvider.cs | 1 + .../XMLDeclarationEngineDataProvider.cs | 1 + .../XMLDeclarationInputDataProvider.cs | 1 + .../XMLDeclarationJobInputDataProvider.cs | 1 + .../XMLDeclarationPTODataProvider.cs | 1 + .../Declaration/DataProvider/XMLGearData.cs | 1 + .../AbstractCommonComponentType.cs | 26 +-- .../DataProvider/AbstractXMLType.cs | 81 ------- .../DataProvider/XMLCyclesDataProvider.cs | 2 + .../DataProvider/XMLDriverAcceleration.cs | 2 + .../XMLEngineeringAirdragDataProvider.cs | 2 +- .../XMLEngineeringAngledriveDataProvider.cs | 2 +- .../XMLEngineeringAuxiliariesDataProvider.cs | 4 +- .../XMLEngineeringAxlesDataProvider.cs | 2 +- .../XMLEngineeringDriverLookAhead.cs | 2 + .../XMLEngineeringEngineDataProvider.cs | 217 +++++++++++++++++- .../XMLEngineeringGearboxDataProvider.cs | 2 + .../XMLEngineeringGearshiftData.cs | 2 + .../XMLEngineeringInputDataProvider.cs | 2 + .../XMLEngineeringJobInputDataProvider.cs | 2 + .../DataProvider/XMLEngineeringOverspeed.cs | 2 + .../XMLEngineeringRetarderDataProvider.cs | 2 +- .../XMLEngineeringReaderInjectModule.cs | 4 +- .../XMLEngineeringReaderV10InjectModule.cs | 13 +- .../VectoCore/Models/Declaration/FuelData.cs | 4 +- .../Resources/Declaration/FuelTypes.csv | 4 +- VectoCore/VectoCore/Utils/XMLDefinitions.cs | 2 + VectoCore/VectoCore/Utils/XMLValidator.cs | 2 +- VectoCore/VectoCore/VectoCore.csproj | 5 +- VectoCore/VectoCoreTest/VectoCoreTest.csproj | 15 ++ 38 files changed, 320 insertions(+), 132 deletions(-) rename VectoCore/VectoCore/InputData/FileIO/XML/{Declaration/DataProvider => Common}/AbstractXMLResource.cs (84%) rename VectoCore/VectoCore/InputData/FileIO/XML/{Declaration/DataProvider => Common}/AbstractXMLType.cs (97%) delete mode 100644 VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractXMLType.cs diff --git a/VECTO.sln.DotSettings b/VECTO.sln.DotSettings index 1f889a17cc..cc03e9861f 100644 --- a/VECTO.sln.DotSettings +++ b/VECTO.sln.DotSettings @@ -46,6 +46,7 @@ <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RP/@EntryIndexedValue">RP</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SI/@EntryIndexedValue">SI</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VTP/@EntryIndexedValue">VTP</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WHR/@EntryIndexedValue">WHR</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WHTC/@EntryIndexedValue">WHTC</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=XML/@EntryIndexedValue">XML</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=XSD/@EntryIndexedValue">XSD</s:String> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index 437a42f636..e26ec9f51d 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -1158,6 +1158,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to WHRCorrection. + /// </summary> + public static string Engine_WHRCorrectionFactor { + get { + return ResourceManager.GetString("Engine_WHRCorrectionFactor", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to WHRCorrectionFactors. /// </summary> @@ -1212,6 +1221,24 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to WHRMap. + /// </summary> + public static string Engine_WHRMap { + get { + return ResourceManager.GetString("Engine_WHRMap", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Entry. + /// </summary> + public static string Engine_WHRMap_Entry { + get { + return ResourceManager.GetString("Engine_WHRMap_Entry", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to WHRType. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index 41fb2b04a8..92ad4c3dd4 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1107,4 +1107,13 @@ <data name="Vehicle_ADAS_EcoRoll" xml:space="preserve"> <value>EcoRoll</value> </data> + <data name="Engine_WHRCorrectionFactor" xml:space="preserve"> + <value>WHRCorrection</value> + </data> + <data name="Engine_WHRMap_Entry" xml:space="preserve"> + <value>Entry</value> + </data> + <data name="Engine_WHRMap" xml:space="preserve"> + <value>WHRMap</value> + </data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLResource.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs similarity index 84% rename from VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLResource.cs rename to VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs index 3257911a13..2e0056a131 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLResource.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs @@ -1,9 +1,10 @@ using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { +namespace TUGraz.VectoCore.InputData.FileIO.XML.Common { public abstract class AbstractXMLResource : AbstractXMLType, IXMLResource { protected string SourceFile; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs similarity index 97% rename from VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs rename to VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs index 9349ce2b2b..156f38b33c 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs @@ -6,7 +6,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { +namespace TUGraz.VectoCore.InputData.FileIO.XML.Common { public abstract class AbstractXMLType : LoggingObject { protected readonly XmlNode BaseNode; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs index 266faffd7d..cec5b2c3be 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs @@ -4,6 +4,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs index 9b3b2ee0d2..2f5d63a5fd 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs @@ -4,6 +4,7 @@ using System.Xml.Linq; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs index 90015cc54e..b683dcae40 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs @@ -4,6 +4,7 @@ using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs index e0c96494e8..8037014097 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs @@ -5,6 +5,7 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs index d6037633d9..bf16b86ef3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs @@ -9,6 +9,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs index 9c125841f2..6912efe88f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs @@ -37,6 +37,7 @@ using System.Xml.Schema; using System.Xml.XPath; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs index 468541b166..86be90c6db 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs @@ -1,6 +1,7 @@ using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs index a61ca11776..59d4291684 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs @@ -5,6 +5,7 @@ using System.Xml.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs index be900af24c..637a7314e7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs @@ -4,6 +4,7 @@ using TUGraz.IVT.VectoXML; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractCommonComponentType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractCommonComponentType.cs index ee749443ef..1ae7fdaade 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractCommonComponentType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractCommonComponentType.cs @@ -3,35 +3,15 @@ using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { - public abstract class AbstractXMLResource : AbstractXMLType, IXMLResource - { - protected string SourceFile; - - public AbstractXMLResource(XmlNode node, string source) : base(node) - { - SourceFile = source; - } - - public virtual DataSource DataSource - { - get { return new DataSource() { SourceFile = SourceFile, SourceVersion = SourceVersion, SourceType = SourceType }; } - } - - - protected string SourceVersion { get { return XMLHelper.GetVersionFromNamespaceUri(SchemaNamespace); } } - - protected abstract XNamespace SchemaNamespace { get;} - - protected abstract DataSourceType SourceType { get; } - } - - + public abstract class AbstractCommonComponentType : AbstractXMLResource { public AbstractCommonComponentType(XmlNode node, string source) : base(node, source) { } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractXMLType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractXMLType.cs deleted file mode 100644 index 8888b8c67b..0000000000 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/AbstractXMLType.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Xml; -using TUGraz.VectoCommon.Exceptions; -using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Utils; - -namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider -{ - public abstract class AbstractXMLType - { - protected readonly XmlNode BaseNode; - - protected AbstractXMLType(XmlNode node) - { - BaseNode = node; - } - - protected bool ElementExists(string nodeName) - { - return GetNode(nodeName, BaseNode, required: false) != null; - } - - protected string GetString(string nodeName, XmlNode basenode = null, bool required = true) - { - return GetNode(nodeName, basenode, required)?.InnerText; - } - - protected double GetDouble(string nodeName, double? fallbackValue = null) - { - var node = GetNode(nodeName, required: fallbackValue != null); - - return node?.InnerText.ToDouble() ?? fallbackValue.Value; - } - - protected double GetDouble(string[] nodePath, double? fallbackValue = null) - { - var node = GetNode(nodePath, required: fallbackValue == null); - - return node?.InnerText.ToDouble() ?? fallbackValue.Value; - } - - protected bool GetBool(string nodeName) - { - return XmlConvert.ToBoolean(GetNode(nodeName).InnerText); - } - - protected XmlNode GetNode(string[] nodeName, XmlNode baseNode = null, bool required = true) - { - return DoGetNode(XMLHelper.QueryLocalName(nodeName), baseNode, required); - } - - protected XmlNode GetNode(string nodeName, XmlNode baseNode = null, bool required = true) - { - return DoGetNode(XMLHelper.QueryLocalName(nodeName), baseNode, required); - } - - private XmlNode DoGetNode(string xpathQuery, XmlNode baseNode, bool required) - { - var node = (baseNode ?? BaseNode)?.SelectSingleNode(xpathQuery); - if (required && node == null) { - throw new VectoException("Node {0} not found", xpathQuery); - } - - return node; - } - - protected XmlNodeList GetNodes(string nodeName, XmlNode baseNode = null) - { - return (baseNode ?? BaseNode).SelectNodes(XMLHelper.QueryLocalName(nodeName)); - } - - protected XmlNodeList GetNodes(string[] nodeName, XmlNode baseNode = null) - { - return (baseNode ?? BaseNode).SelectNodes(XMLHelper.QueryLocalName(nodeName)); - } - - protected string GetAttribute(XmlNode node, string attribute) - { - return node?.Attributes?.GetNamedItem(attribute)?.InnerText; - } - } -} diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLCyclesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLCyclesDataProvider.cs index ba0e6bb064..8a3840c466 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLCyclesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLCyclesDataProvider.cs @@ -5,6 +5,8 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Models.Declaration; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLDriverAcceleration.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLDriverAcceleration.cs index f63c14dfd3..01cdd8c4d3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLDriverAcceleration.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLDriverAcceleration.cs @@ -2,6 +2,8 @@ using System.Xml; using TUGraz.IVT.VectoXML; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs index c755a9d74f..c7ae92bac6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAirdragDataProvider.cs @@ -101,7 +101,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V10; - public new const string XSD_TYPE = "AirDragComponentEngineeringType"; + public new const string XSD_TYPE = "AirDragDataEngineeringType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAngledriveDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAngledriveDataProvider.cs index 2cabe62556..b5ac44f1ba 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAngledriveDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAngledriveDataProvider.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V10; - public new const string XSD_TYPE = "AngledriveComponentEngineeringType"; + public new const string XSD_TYPE = "AngledriveDataEngineeringType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAuxiliariesDataProvider.cs index 536469afde..5187bfdc15 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAuxiliariesDataProvider.cs @@ -8,6 +8,8 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Utils; @@ -69,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { public new const string NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V10; - public new const string XSD_TYPE = "AuxiliariesComponentEngineeringType"; + public new const string XSD_TYPE = "AuxiliariesDataEngineeringType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAxlesDataProvider.cs index cd5bd7423d..7524355109 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAxlesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringAxlesDataProvider.cs @@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V10; - public new const string XSD_TYPE = "AxleWheelsComponentEngineeringType"; + public new const string XSD_TYPE = "AxleWheelsDataEngineeringType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringDriverLookAhead.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringDriverLookAhead.cs index 4940e4b4a2..21a3803714 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringDriverLookAhead.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringDriverLookAhead.cs @@ -4,6 +4,8 @@ using TUGraz.IVT.VectoXML; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs index 51ca1f7cfc..107a5f47ca 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringEngineDataProvider.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System; using System.Collections.Generic; using System.Linq; using System.Xml; @@ -39,6 +40,8 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; @@ -53,7 +56,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider public const string XSD_TYPE = "EngineDataEngineeringType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - + + protected IList<IEngineModeEngineeringInputData> _modes; + public XMLEngineeringEngineDataProviderV07( IXMLEngineeringVehicleData vehicle, XmlNode vehicleNode, string fsBasePath) @@ -64,7 +69,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider : DataSourceType.XMLFile; } - + public XMLEngineeringEngineDataProviderV07(XmlNode node, string sourceFile) : base(null, node, sourceFile) { } public virtual CubicMeter Displacement @@ -84,7 +89,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider IList<IEngineModeEngineeringInputData> IEngineEngineeringInputData.EngineModes { - get { return new[] { this }.Cast<IEngineModeEngineeringInputData>().ToList(); } + get { return _modes ?? (_modes = ReadEngineModes()); } } public virtual Second EngineStartTime @@ -156,11 +161,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return new[] { this }.Cast<IEngineFuelEngineeringInputData>().ToList(); } } - public virtual IList<IEngineFuelDelcarationInputData> Fuels { + public virtual IList<IEngineFuelDelcarationInputData> Fuels + { get { return new[] { this }.Cast<IEngineFuelDelcarationInputData>().ToList(); } } - public virtual IWHRData WasteHeatRecoveryData { get { return null; } } + public virtual IWHRData WasteHeatRecoveryData + { + get { return null; } + } public virtual Watt RatedPowerDeclared { @@ -183,8 +192,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider } } - public virtual IList<IEngineModeDeclarationInputData> EngineModes { get { return new[] { this }.Cast<IEngineModeDeclarationInputData>().ToList(); } } - public virtual WHRType WHRType { get { return WHRType.None; } } + public virtual IList<IEngineModeDeclarationInputData> EngineModes + { + get { return (_modes ?? (_modes = ReadEngineModes())).Cast<IEngineModeDeclarationInputData>().ToList(); } + } + + protected virtual IList<IEngineModeEngineeringInputData> ReadEngineModes() + { + return new IEngineModeEngineeringInputData[] { this }; + } + + public virtual WHRType WHRType + { + get { return WHRType.None; } + } public virtual KilogramSquareMeter Inertia { @@ -225,16 +246,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider #region Overrides of XMLEngineeringEngineDataProviderV07 - #region Overrides of XMLEngineeringEngineDataProviderV07 - protected override XNamespace SchemaNamespace { get { return NAMESPACE_URI; } } #endregion - - #endregion } // this class is just for testing reading derived XML datatypes @@ -267,4 +284,182 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider #endregion } + + internal class XMLEngineeringEngineDataProviderV11 : XMLEngineeringEngineDataProviderV10 + { + public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V11; + + public new const string XSD_TYPE = "EngineDataEngineeringType"; + + public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); + + + public XMLEngineeringEngineDataProviderV11( + XMLEngineeringVehicleDataProviderV07 vehicle, XmlNode vehicleNode, string fsBasePath) : base( + vehicle, vehicleNode, fsBasePath) { } + + public XMLEngineeringEngineDataProviderV11(XmlNode node, string sourceFile) : base(node, sourceFile) { } + + #region Overrides of XMLEngineeringEngineDataProviderV07 + + protected override IList<IEngineModeEngineeringInputData> ReadEngineModes() + { + return GetNodes(XMLNames.Engine_FuelModes) + .Cast<XmlNode>().Select(x => new XMLDualFuelEngineMode(x, DataSource)).Cast<IEngineModeEngineeringInputData>().ToList(); + + } + + #endregion + + + internal class XMLDualFuelEngineMode : AbstractXMLType, IEngineModeEngineeringInputData + { + protected IList<IEngineFuelEngineeringInputData> _fuels; + protected DataSource Source; + protected IWHRData WHRData; + + public XMLDualFuelEngineMode(XmlNode xmlNode, DataSource source) : base(xmlNode) + { + Source = source; + } + + #region Implementation of IEngineModeDeclarationInputData + + public PerSecond IdleSpeed { + get { return GetDouble(XMLNames.Engine_IdlingSpeed).RPMtoRad(); } + } + public TableData FullLoadCurve { + get { + return XMLHelper.ReadEntriesOrResource( + BaseNode, Source.SourcePath, XMLNames.Engine_FullLoadAndDragCurve, XMLNames.Engine_FullLoadCurve_Entry, + AttributeMappings.EngineFullLoadCurveMapping); + } + } + + IList<IEngineFuelEngineeringInputData> IEngineModeEngineeringInputData.Fuels + { + get { return _fuels ?? (_fuels = ReadFuels()); } + } + + + + IList<IEngineFuelDelcarationInputData> IEngineModeDeclarationInputData.Fuels + { + get { return (_fuels ?? (_fuels = ReadFuels())).Cast<IEngineFuelDelcarationInputData>().ToList(); } + } + + public virtual IWHRData WasteHeatRecoveryData + { + get { return WHRData ?? (WHRData = ReadWHRData()); } + } + + #endregion + + protected virtual IList<IEngineFuelEngineeringInputData> ReadFuels() + { + return GetNodes(XMLNames.Engine_FuelModes_Fuel).Cast<XmlNode>().Select(x => new XMLEngineFuel(x, Source)).Cast<IEngineFuelEngineeringInputData>().ToList(); + } + + protected virtual IWHRData ReadWHRData() + { + var fuelNode = GetNodes(XMLNames.Engine_FuelModes_Fuel).Cast<XmlNode>().First(); + var whrNode = GetNode("WasteHeatRecovery", fuelNode); + return new XMLWHRData(whrNode, Source); + } + } + + internal class XMLEngineFuel : AbstractXMLType, IEngineFuelEngineeringInputData + { + protected DataSource Source; + + public XMLEngineFuel(XmlNode xmlNode, DataSource source) : base(xmlNode) + { + Source = source; + } + + #region Implementation of IEngineFuelDelcarationInputData + + public virtual FuelType FuelType + { + get { + var value = GetString(XMLNames.Engine_FuelType); + if ("LPG".Equals(value, StringComparison.InvariantCultureIgnoreCase)) { + return FuelType.LPGPI; + } + if ("NG".Equals(value, StringComparison.InvariantCultureIgnoreCase)) { + return FuelType.NGPI; + } + + return value.ParseEnum<FuelType>(); + } + } + + public virtual double WHTCMotorway { get { return 1; } } + + public virtual double WHTCRural { get { return 1; } } + + public virtual double WHTCUrban { get { return 1; } } + + public virtual double ColdHotBalancingFactor { get { return 1; } } + + public virtual double CorrectionFactorRegPer { get { return 1; } } + + public virtual TableData FuelConsumptionMap { + get { + return XMLHelper.ReadEntriesOrResource( + BaseNode, Source.SourcePath, XMLNames.Engine_FuelConsumptionMap, XMLNames.Engine_FuelConsumptionMap_Entry, + AttributeMappings.FuelConsumptionMapMapping); + } + } + + #endregion + + #region Implementation of IEngineFuelEngineeringInputData + + public double WHTCEngineering { get { return GetDouble(XMLNames.Engine_FCCorrection); } } + + #endregion + } + + internal class XMLWHRData : AbstractXMLType, IWHRData + { + protected DataSource Source; + + public XMLWHRData(XmlNode baseNode, DataSource source) : base (baseNode) + { + Source = source; + } + + + #region Implementation of IWHRData + + public virtual double UrbanCorrectionFactor { get { return 1; } } + public virtual double RuralCorrectionFactor { get { return 1; } } + public virtual double MotorwayCorrectionFactor { get { return 1; } } + public virtual double BFColdHot { get { return 1; } } + public virtual double CFRegPer { get { return 1; } } + public virtual double EngineeringCorrectionFactor { get { return GetDouble(XMLNames.Engine_WHRCorrectionFactor); } } + + public virtual TableData GeneratedElectricPower + { + get { + return XMLHelper.ReadEntriesOrResource( + BaseNode, Source.SourcePath, XMLNames.Engine_WHRMap, XMLNames.Engine_WHRMap_Entry, + AttributeMappings.WHRPowerMapMapping); + } + } + + #endregion + } + + + #region Overrides of XMLEngineeringEngineDataProviderV07 + + protected override XNamespace SchemaNamespace + { + get { return NAMESPACE_URI; } + } + + #endregion + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearboxDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearboxDataProvider.cs index d80f90636c..e5e77ce40b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearboxDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearboxDataProvider.cs @@ -38,6 +38,8 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearshiftData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearshiftData.cs index fd86b99ac0..f306f43cb5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearshiftData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringGearshiftData.cs @@ -2,6 +2,8 @@ using System.Xml.Linq; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringInputDataProvider.cs index 3eff4a1700..37601906a3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringInputDataProvider.cs @@ -4,6 +4,8 @@ using System.Xml.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringJobInputDataProvider.cs index fb6bf6d176..356b55c478 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringJobInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringJobInputDataProvider.cs @@ -4,6 +4,8 @@ using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs index 49e444c047..f1dbcad829 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs @@ -3,6 +3,8 @@ using System.Xml.Linq; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML.Common; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringRetarderDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringRetarderDataProvider.cs index 93ff4a10d4..e79d742c01 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringRetarderDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringRetarderDataProvider.cs @@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider { public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.ENGINEERING_DEFINITONS_NAMESPACE_V10; - public new const string XSD_TYPE = "RetarderComponentEngineeringType"; + public new const string XSD_TYPE = "RetarderDataEngineeringType"; public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, XSD_TYPE); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderInjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderInjectModule.cs index d7bd276f70..3de51b55a6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderInjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderInjectModule.cs @@ -21,7 +21,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering Kernel?.Load(new INinjectModule[] { new XMLEngineeringReaderV07InjectModule(), - new XMLEngineeringReaderV10InjectModule()} + new XMLEngineeringReaderV10InjectModule(), + new XMLEngineeringReaderV11InjectModule() + } ); } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderV10InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderV10InjectModule.cs index 1e3fb9010b..65c6ec958d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderV10InjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/NinjectModules/XMLEngineeringReaderV10InjectModule.cs @@ -1,4 +1,5 @@ -using Ninject.Modules; +using System; +using Ninject.Modules; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Impl; using TUGraz.VectoCore.InputData.FileIO.XML.Engineering.Interfaces; @@ -92,4 +93,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.NinjectModules #endregion } + + public class XMLEngineeringReaderV11InjectModule : NinjectModule + { + public override void Load() + { + Bind<IXMLEngineData>().To<XMLEngineeringEngineDataProviderV11>() + .Named(XMLEngineeringEngineDataProviderV11.QUALIFIED_XSD_TYPE); + + } + } } diff --git a/VectoCore/VectoCore/Models/Declaration/FuelData.cs b/VectoCore/VectoCore/Models/Declaration/FuelData.cs index c84721a1ab..28fdd936fc 100644 --- a/VectoCore/VectoCore/Models/Declaration/FuelData.cs +++ b/VectoCore/VectoCore/Models/Declaration/FuelData.cs @@ -69,14 +69,14 @@ namespace TUGraz.VectoCore.Models.Declaration { var entries = _data.FindAll(x => x.FuelType == fuelType); if (entries.Count == 0) { - throw new VectoException(ErrorMessage, fuelType.ToString(), tankSystem?.ToString() ?? ""); + throw new VectoException(ErrorMessage, fuelType.ToString(), tankSystem?.ToString() ?? "<no tank system specified>"); } if (entries.Count > 1) { entries = entries.FindAll(x => x.TankSystem == tankSystem); } if (entries.Count == 0) { - throw new VectoException(ErrorMessage, fuelType.ToString(), tankSystem?.ToString() ?? ""); + throw new VectoException(ErrorMessage, fuelType.ToString(), tankSystem?.ToString() ?? "<no tank system specified>"); } return entries.First(); diff --git a/VectoCore/VectoCore/Resources/Declaration/FuelTypes.csv b/VectoCore/VectoCore/Resources/Declaration/FuelTypes.csv index 55f8e2a2aa..5e728d58aa 100644 --- a/VectoCore/VectoCore/Resources/Declaration/FuelTypes.csv +++ b/VectoCore/VectoCore/Resources/Declaration/FuelTypes.csv @@ -6,5 +6,5 @@ Ethanol PI , , 786 , 2.10 LPG PI , , , 3.02 , 46000 , 46000 NG PI , compressed , , 2.69 , 45100 , 48000 NG PI , liquefied , , 2.77 , 45100 , 49100 -##NG CI , compressed , , 1000 , 100000 , 100000 -##NG CI , liquefied , , 1000 , 100000 , 100000 \ No newline at end of file +NG CI , compressed , , 2.69 , 45100 , 48000 +NG CI , liquefied , , 2.77 , 45100 , 49100 \ No newline at end of file diff --git a/VectoCore/VectoCore/Utils/XMLDefinitions.cs b/VectoCore/VectoCore/Utils/XMLDefinitions.cs index 548fd4f5cd..7a5b6b6782 100644 --- a/VectoCore/VectoCore/Utils/XMLDefinitions.cs +++ b/VectoCore/VectoCore/Utils/XMLDefinitions.cs @@ -34,6 +34,8 @@ namespace TUGraz.VectoCore.Utils public const string ENGINEERING_DEFINITONS_NAMESPACE_V10 = ENGINEERING_NAMESPACE + ":v1.0"; + public const string ENGINEERING_DEFINITONS_NAMESPACE_V11 = ENGINEERING_NAMESPACE + ":v1.1"; + public const string ENGINEERING_DEFINITONS_NAMESPACE_V10_TEST = ENGINEERING_NAMESPACE + ":v1.0TEST"; diff --git a/VectoCore/VectoCore/Utils/XMLValidator.cs b/VectoCore/VectoCore/Utils/XMLValidator.cs index 01c3532c12..cf7f1cb403 100644 --- a/VectoCore/VectoCore/Utils/XMLValidator.cs +++ b/VectoCore/VectoCore/Utils/XMLValidator.cs @@ -104,7 +104,7 @@ namespace TUGraz.VectoCore.Utils public static void CallBackExceptionOnError(XmlSeverityType severity, ValidationEvent evt) { if (severity == XmlSeverityType.Error) { - throw new VectoException("Validation error: {0}", evt.ValidationEventArgs.Message); + throw new VectoException("Validation error: {0}", evt?.ValidationEventArgs?.Message ?? "XML schema not known"); } } diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index 232ba5646c..b0002dda06 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -136,8 +136,8 @@ <Compile Include="InputData\FileIO\JSON\JSONComponentInputData.cs" /> <Compile Include="InputData\FileIO\JSON\JsonExtensionMethods.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\AbstractCommonComponentType.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\AbstractXMLResource.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\AbstractXMLType.cs" /> + <Compile Include="InputData\FileIO\XML\Common\AbstractXMLResource.cs" /> + <Compile Include="InputData\FileIO\XML\Common\AbstractXMLType.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLAuxiliaryDeclarationDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationADASDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationAirdragDataProvider.cs" /> @@ -191,7 +191,6 @@ <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\AbstractCommonComponentType.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\AbstractEngineeringXMLComponentDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\AbstractVehicleEngineeringType.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\AbstractXMLType.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\XMLCyclesDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\XMLDriverAcceleration.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\DataProvider\XMLEngineeringAirdragDataProvider.cs" /> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index f5f61a20ee..8112eed9d5 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -2542,12 +2542,18 @@ <None Include="TestData\XML\XMLReaderEngineering\dummy.vaux"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\XML\XMLReaderEngineering\engine_WHR.vmap"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\XML\XMLReaderEngineering\engine.vfld"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Include="TestData\XML\XMLReaderEngineering\engine.vmap"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\XML\XMLReaderEngineering\engine_DF.vmap"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\XML\XMLReaderEngineering\GBX_DirectGear.vtlm"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> @@ -2980,6 +2986,9 @@ <Content Include="TestData\XML\XMLReaderEngineering\engineering_axlegear-sample_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderEngineering\engineering_engine-sample_ref_DF_WHR.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderEngineering\engineering_engine-sample_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -2995,6 +3004,9 @@ <Content Include="TestData\XML\XMLReaderEngineering\engineering_job-sample_FULL.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderEngineering\engineering_job-sample_ref_DF_WHR.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderEngineering\engineering_job-sample_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -3004,6 +3016,9 @@ <Content Include="TestData\XML\XMLReaderEngineering\engineering_torqueconverter-sample_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderEngineering\engineering_vehicle_ref_DF_WHR.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderEngineering\engineering_vehicle_ref.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> -- GitLab