Commit bb5a2ffd authored by maljac's avatar maljac Committed by ORD

Add instantiate support for data types and methods (#259)

parent f17f79ee
...@@ -44,8 +44,8 @@ def _instantiate_node(server, parentid, rdesc, nodeid, bname, recursive=True): ...@@ -44,8 +44,8 @@ def _instantiate_node(server, parentid, rdesc, nodeid, bname, recursive=True):
""" """
addnode = ua.AddNodesItem() addnode = ua.AddNodesItem()
addnode.RequestedNewNodeId = nodeid addnode.RequestedNewNodeId = nodeid
addnode.BrowseName = bname addnode.BrowseName = bname
addnode.ParentNodeId = parentid addnode.ParentNodeId = parentid
addnode.ReferenceTypeId = rdesc.ReferenceTypeId addnode.ReferenceTypeId = rdesc.ReferenceTypeId
addnode.TypeDefinition = rdesc.TypeDefinition addnode.TypeDefinition = rdesc.TypeDefinition
...@@ -59,7 +59,12 @@ def _instantiate_node(server, parentid, rdesc, nodeid, bname, recursive=True): ...@@ -59,7 +59,12 @@ def _instantiate_node(server, parentid, rdesc, nodeid, bname, recursive=True):
elif rdesc.NodeClass in (ua.NodeClass.Variable, ua.NodeClass.VariableType): elif rdesc.NodeClass in (ua.NodeClass.Variable, ua.NodeClass.VariableType):
addnode.NodeClass = ua.NodeClass.Variable addnode.NodeClass = ua.NodeClass.Variable
_read_and_copy_attrs(node_type, ua.VariableAttributes(), addnode) _read_and_copy_attrs(node_type, ua.VariableAttributes(), addnode)
elif rdesc.NodeClass in (ua.NodeClass.DataType,):
addnode.NodeClass = ua.NodeClass.DataType
_read_and_copy_attrs(node_type, ua.DataTypeAttributes(), addnode)
elif rdesc.NodeClass in (ua.NodeClass.Method,):
addnode.NodeClass = ua.NodeClass.Method
_read_and_copy_attrs(node_type, ua.MethodAttributes(), addnode)
else: else:
print("Instantiate: Node class not supported: ", rdesc.NodeClass) print("Instantiate: Node class not supported: ", rdesc.NodeClass)
...@@ -86,4 +91,3 @@ def _read_and_copy_attrs(node_type, struct, addnode): ...@@ -86,4 +91,3 @@ def _read_and_copy_attrs(node_type, struct, addnode):
else: else:
print("Instantiate: while copying attributes from node type %s, attribute %s, statuscode is %s" % (node_type, name, results[idx].StatusCode)) print("Instantiate: while copying attributes from node type %s, attribute %s, statuscode is %s" % (node_type, name, results[idx].StatusCode))
addnode.NodeAttributes = struct addnode.NodeAttributes = struct
...@@ -80,7 +80,7 @@ class XMLParser(object): ...@@ -80,7 +80,7 @@ class XMLParser(object):
name = self._retag.match(child.tag).groups()[1] name = self._retag.match(child.tag).groups()[1]
if name == "Aliases": if name == "Aliases":
for el in child: for el in child:
self.aliases[el.attrib["Alias"]] = el.text self.aliases[el.attrib["Alias"]] = self._get_node_id(el.text)
elif name == 'NamespaceUris': elif name == 'NamespaceUris':
for ns_index, ns_element in enumerate(child): for ns_index, ns_element in enumerate(child):
ns_uri = ns_element.text ns_uri = ns_element.text
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment