Commit b85d5722 authored by zerox1212's avatar zerox1212 Committed by ORD

Improve method argument creation

Only create an argument if needed
Create argument properties in the same namespace as the parent method
parent 8a1ae358
...@@ -336,18 +336,20 @@ def _create_method(parent, nodeid, qname, callback, inputs, outputs): ...@@ -336,18 +336,20 @@ def _create_method(parent, nodeid, qname, callback, inputs, outputs):
results = parent.server.add_nodes([addnode]) results = parent.server.add_nodes([addnode])
results[0].StatusCode.check() results[0].StatusCode.check()
method = node.Node(parent.server, results[0].AddedNodeId) method = node.Node(parent.server, results[0].AddedNodeId)
create_property(method, if inputs:
ua.NodeId(), create_property(method,
ua.QualifiedName("InputArguments", 0), ua.NodeId(namespaceidx=method.nodeid.NamespaceIndex),
[_vtype_to_argument(vtype) for vtype in inputs], ua.QualifiedName("InputArguments", 0),
varianttype=ua.VariantType.ExtensionObject, [_vtype_to_argument(vtype) for vtype in inputs],
datatype=ua.ObjectIds.Argument) varianttype=ua.VariantType.ExtensionObject,
create_property(method, datatype=ua.ObjectIds.Argument)
ua.NodeId(), if outputs:
ua.QualifiedName("OutputArguments", 0), create_property(method,
[_vtype_to_argument(vtype) for vtype in outputs], ua.NodeId(namespaceidx=method.nodeid.NamespaceIndex),
varianttype=ua.VariantType.ExtensionObject, ua.QualifiedName("OutputArguments", 0),
datatype=ua.ObjectIds.Argument) [_vtype_to_argument(vtype) for vtype in outputs],
varianttype=ua.VariantType.ExtensionObject,
datatype=ua.ObjectIds.Argument)
parent.server.add_method_callback(method.nodeid, callback) parent.server.add_method_callback(method.nodeid, callback)
return results[0].AddedNodeId return results[0].AddedNodeId
......
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