diff --git a/VECTO.sln.DotSettings b/VECTO.sln.DotSettings index 1f889a17ccd10ca88071a8b3f024ffc25316a7a0..cc03e9861fa264a3fd2ba8d605348c53754e323e 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 437a42f6367d9fc742f1ebf4d3d3c52aa59a7bdf..e26ec9f51d0631d21d0161623a7cd36b9484cceb 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 41fb2b04a85e84b5b3ca9f8de367501161935d46..92ad4c3dd48a519aee6c538e58583905198e7ccb 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 3257911a1345187cd237e22f8a121327f4810075..2e0056a13126e9f20472127f99655bbe7a58b4ef 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 9349ce2b2bc20b7e103c68fa7d79c0601e791eab..156f38b33c729c64cb17be0d572270f7086cb26e 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 266faffd7d4addfbf787b89a1bd685d36155743b..cec5b2c3be10b1559347e536c687b56391c06fd4 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 9b3b2ee0d28b061214a428a4c5f2dbc18947d419..2f5d63a5fd39461a168447a0c4a931927ce940d3 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 90015cc54e0fe922eb51d7126a2f73f615da183e..b683dcae4037a6d6a130bf0f12c90b39b23adbb8 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 e0c96494e83613394ac06d25829d1fef7405878f..8037014097af1768cfcf061dec0721905a26d387 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 d6037633d9cf9030cd530291decee27f48a1e328..bf16b86ef3894a25cc5431f70b81fe56e1843224 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 9c125841f2286c830b084f79a3a3392f661f01ee..6912efe88f8daf1747bf300de0ceebc6797044b9 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 468541b166b32c62360c6c0b6d76aa2ab6056fe7..86be90c6db36112db2614d101bb478976d64054e 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 a61ca11776ae041c244fa698329e8d629f845ff6..59d4291684e00cdd35e7c5af213ab1023d69f7ea 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 be900af24c1a861504a2a77ebd9f7d62b95f3180..637a7314e7c781c968178b98296a2a81763b50ba 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 ee749443efaab0046f93150497dd370c2de2b096..1ae7fdaade59b3a10d04447a88de23295595bb2c 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 8888b8c67b54f8e6a8268a0f550148796f0ac884..0000000000000000000000000000000000000000 --- 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 ba0e6bb064260c6420bba08ce3eabb0b36fbf10e..8a3840c46694b7c037494036eb840c47e4e337e5 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 f63c14dfd3a0985f5746eed46da7ad88b996763a..01cdd8c4d371a6e542d9f64cea0d1d834cb0d338 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 c755a9d74f979bcbde1d76c22803533d5872239f..c7ae92bac6782a20f53fdee67767a62c41f0117a 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 2cabe625566336af19a4c7405f1659d85f4f6d3a..b5ac44f1ba386a0724131b428278fdfd45cc5792 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 536469afde04460274a9c3a1b81ab05be6808634..5187bfdc15b8b29555eedef571223d43e3cc6877 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 cd5bd7423d90f7ce8b9b9e32c622eaa8799b06ab..7524355109f71973823a2cc686d3b562d69985d7 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 4940e4b4a25eb3dd5e3a4b85f8120e8033bcf47c..21a38037146dbfb16aa49d783f4b5d02be5605e4 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 51ca1f7cfca9ff88b33d532f0849ed53d157b3b8..107a5f47ca59e80d018680399af3b90e5d5292ef 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 d80f90636cabc0c32e91b4f0731ee9851797dd0d..e5e77ce40b3049c80b6e30ae8b9dfe6263deae16 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 fd86b99ac0af4870dba53e7ba7718b5cc6fb0b89..f306f43cb55dd6e6c306cccc233659f3908abc82 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 3eff4a17004f4b09e23591100fc2a8197d367490..37601906a3a52c646025965f8742c8d28612384c 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 fb6bf6d176307332ed0a6af863baf2e693e7dfed..356b55c47868bb1e76ef8d42219e7051425ae1bc 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 49e444c0475befc86fd0f28830eaa8ad29e26a4a..f1dbcad8293fd4964b154fd2df984e60b5a4a715 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 93ff4a10d4ded863f643685601a93b3d24be5ac0..e79d742c0160d453065448da6bfddc24122b4a95 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 d7bd276f705d07edb569556dd4466561b1851c04..3de51b55a62b3fc695eb26d5fcb2a28c17ed90ce 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 1e3fb9010bb82741bd06513b162ec367eba92bef..65c6ec958d07d3eacff1ceed02fa19b2b6e356cb 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 c84721a1ab67ef7830e01b582929632df321f069..28fdd936fc572c70596c480a68a3f01f8c4e6d23 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 55f8e2a2aa3bdd826ffbc3cf5926575177967f17..5e728d58aa406499b4cccf759953398b7c196e16 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 548fd4f5cdc66aa9d234b560a638f199d9ad9ddb..7a5b6b67823b8cbf565486455d4989ac196e23af 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 01c3532c12a2349763bb2cff31b795cc87197511..cf7f1cb403a1fad85bff881c47a78d8498374887 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 232ba5646c68a12a87e287c6d4bac0907356b9fa..b0002dda06d050c27c490ae15f9623483ed49570 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 f5f61a20ee8323ccae36e8d9077fdff67fa688a0..8112eed9d56cff2a5e50c0d166521858e2c39ddc 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>