From 5f0424b47274ab314b7252bf20f31405b171ac3e Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 19 Sep 2025 10:40:37 -0600 Subject: [PATCH] IsAbstract removed from OptionSetFieldDefinitions and EnumFieldDefinitions --- NodeSetToAML.cs | 9 +++++---- SystemTest/TestEnums.cs | 1 + SystemTest/TestOptionSetEmptyValues.cs | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/NodeSetToAML.cs b/NodeSetToAML.cs index 855b156..06b3827 100644 --- a/NodeSetToAML.cs +++ b/NodeSetToAML.cs @@ -3168,7 +3168,7 @@ private void AddAttributeData( AttributeFamilyType attribute, UANode uaNode ) AddEnumerationFieldDefinition( attribute, uaNode ); - AddOptionSetFieldDefintion( attribute, uaNode ); + AddOptionSetFieldDefinition( attribute, uaNode ); AttributeType nodeIdAttribute = AddModifyAttribute( attribute.Attribute,"NodeId", "NodeId", new Variant( uaNode.DecodedNodeId ) ); @@ -3392,7 +3392,7 @@ private void AddEnumerationFieldDefinition(AttributeFamilyType attribute, UANode { AttributeType fieldAttribute = new AttributeType(new System.Xml.Linq.XElement(defaultNS + "Attribute")); - fieldAttribute.RecreateAttributeInstance(enumFieldSource); + RecreateAttributeInstance(enumFieldSource, fieldAttribute); fieldAttribute.Name = fieldDefinition.Name; // Remove the Name @@ -3418,7 +3418,7 @@ private void AddEnumerationFieldDefinition(AttributeFamilyType attribute, UANode } } - private void AddOptionSetFieldDefintion( AttributeFamilyType attribute, UANode uaNode ) + private void AddOptionSetFieldDefinition( AttributeFamilyType attribute, UANode uaNode ) { UADataType optionSetNode = uaNode as UADataType; if (optionSetNode != null && @@ -3434,7 +3434,7 @@ private void AddOptionSetFieldDefintion( AttributeFamilyType attribute, UANode u AttributeType optionSetFields = new AttributeType( new System.Xml.Linq.XElement(defaultNS + "Attribute")); - optionSetFields.RecreateAttributeInstance(optionSetFieldDefinition as AttributeFamilyType); + optionSetFields.RecreateAttributeInstance(optionSetFieldDefinition); optionSetFields.Name = "OptionSetFieldDefinition"; optionSetFields.AdditionalInformation.Append(OpcUaTypeOnly); @@ -3452,6 +3452,7 @@ private void AddOptionSetFieldDefintion( AttributeFamilyType attribute, UANode u "Value", "Int32", new Variant(fieldDefinition.Value)); RemoveUnwantedAttribute(valueAttribute, "NodeId"); + RemoveUnwantedAttribute(fieldAttribute, "IsAbstract"); RemoveUnwantedAttribute(fieldAttribute, "ValidBits"); RemoveUnwantedAttribute(fieldAttribute, "NodeId"); diff --git a/SystemTest/TestEnums.cs b/SystemTest/TestEnums.cs index d82243e..3213cd1 100644 --- a/SystemTest/TestEnums.cs +++ b/SystemTest/TestEnums.cs @@ -178,6 +178,7 @@ public void TestFieldDefinition(uint nodeId, object enumObject) foreach (AttributeType fieldDefinition in enumFieldDefinition.Attribute) { + Assert.IsNull(fieldDefinition.Attribute["IsAbstract"]); AttributeType valueAttribute = fieldDefinition.Attribute["Value"]; Assert.IsNotNull(valueAttribute, "Field Definition Value is null"); Assert.IsNotNull(valueAttribute.Value, "Field Definition Value-Value is null"); diff --git a/SystemTest/TestOptionSetEmptyValues.cs b/SystemTest/TestOptionSetEmptyValues.cs index 03f5b64..462fc00 100644 --- a/SystemTest/TestOptionSetEmptyValues.cs +++ b/SystemTest/TestOptionSetEmptyValues.cs @@ -108,6 +108,7 @@ public void TestFieldDefinitions(string attributeName, string attributeValue) AttributeType attribute = GetAttribute(fieldDefinition, attributeName); Assert.IsNull(attribute.Attribute["NodeId"]); + Assert.IsNull(attribute.Attribute["IsAbstract"]); AttributeType valueAttribute = GetAttribute(attribute, "Value"); Assert.AreEqual( valueAttribute.Value, attributeValue);