/// <summary> /// Exports a DataTypeDefinition /// </summary> private Opc.Ua.Export.DataTypeDefinition Export(Opc.Ua.UADataTypeDefinition source, NamespaceTable namespaceUris) { if (source == null) { return(null); } DataTypeDefinition definition = new DataTypeDefinition(); definition.Name = Export(source.Name, namespaceUris); definition.SymbolicName = source.SymbolicName; definition.BaseType = Export(source.BaseType, namespaceUris); if (source.Fields != null) { List <Opc.Ua.Export.DataTypeField> fields = new List <DataTypeField>(); foreach (DataTypeDefinitionField field in source.Fields) { Opc.Ua.Export.DataTypeField output = new Opc.Ua.Export.DataTypeField(); output.Name = field.Name; output.SymbolicName = field.SymbolicName; output.Description = Export(new Opc.Ua.LocalizedText[] { field.Description }); if (NodeId.IsNull(field.DataType)) { output.DataType = Export(DataTypeIds.BaseDataType, namespaceUris); } else { output.DataType = Export(field.DataType, namespaceUris); } output.ValueRank = field.ValueRank; output.Value = field.Value; output.Definition = Export(field.Definition, namespaceUris); fields.Add(output); } definition.Field = fields.ToArray(); } return(definition); }
/// <summary> /// Imports a DataTypeDefinition /// </summary> private Opc.Ua.UADataTypeDefinition Import(Opc.Ua.Export.DataTypeDefinition source, NamespaceTable namespaceUris) { if (source == null) { return(null); } Opc.Ua.UADataTypeDefinition definition = new Opc.Ua.UADataTypeDefinition(); definition.Name = ImportQualifiedName(source.Name, namespaceUris); definition.SymbolicName = source.SymbolicName; definition.BaseType = ImportQualifiedName(source.BaseType, namespaceUris); if (source.Field != null) { List <Opc.Ua.DataTypeDefinitionField> fields = new List <Opc.Ua.DataTypeDefinitionField>(); foreach (DataTypeField field in source.Field) { Opc.Ua.DataTypeDefinitionField output = new Opc.Ua.DataTypeDefinitionField(); output.Name = field.Name; output.SymbolicName = field.SymbolicName; output.Description = Import(field.Description); output.DataType = ImportNodeId(field.DataType, namespaceUris, true); output.ValueRank = field.ValueRank; output.Value = field.Value; output.Definition = Import(field.Definition, namespaceUris); fields.Add(output); } definition.Fields = fields; } return(definition); }
/// <summary> /// Imports a DataTypeDefinition /// </summary> private Opc.Ua.UADataTypeDefinition Import(Opc.Ua.Export.DataTypeDefinition source, NamespaceTable namespaceUris) { if (source == null) { return null; } Opc.Ua.UADataTypeDefinition definition = new Opc.Ua.UADataTypeDefinition(); definition.Name = ImportQualifiedName(source.Name, namespaceUris); definition.SymbolicName = source.SymbolicName; definition.BaseType = ImportQualifiedName(source.BaseType, namespaceUris); if (source.Field != null) { List<Opc.Ua.DataTypeDefinitionField> fields = new List<Opc.Ua.DataTypeDefinitionField>(); foreach (DataTypeField field in source.Field) { Opc.Ua.DataTypeDefinitionField output = new Opc.Ua.DataTypeDefinitionField(); output.Name = field.Name; output.SymbolicName = field.SymbolicName; output.Description = Import(field.Description); output.DataType = ImportNodeId(field.DataType, namespaceUris, true); output.ValueRank = field.ValueRank; output.Value = field.Value; output.Definition = Import(field.Definition, namespaceUris); fields.Add(output); } definition.Fields = fields; } return definition; }