示例#1
0
 def _add_ref_from_parent(self, nodedata, item, parentdata):
     desc = ua.ReferenceDescription()
     desc.ReferenceTypeId = item.ReferenceTypeId
     desc.NodeId = nodedata.nodeid
     desc.NodeClass = item.NodeClass
     desc.BrowseName = item.BrowseName
     desc.DisplayName = item.NodeAttributes.DisplayName
     desc.TypeDefinition = item.TypeDefinition
     desc.IsForward = True
     self._add_unique_reference(parentdata, desc)
示例#2
0
 def _add_ref_from_parent(self, nodedata, item, parentdata):
     desc = ua.ReferenceDescription()
     desc.ReferenceTypeId = item.ReferenceTypeId
     desc.NodeId = nodedata.nodeid
     desc.NodeClass = item.NodeClass
     desc.BrowseName = item.BrowseName
     desc.DisplayName = item.NodeAttributes.DisplayName
     desc.TypeDefinition = item.TypeDefinition
     desc.IsForward = True  # FIXME in uaprotocol_auto.py
     self._add_unique_reference(
         parentdata, desc)  # FIXME return StatusCode is not evaluated
示例#3
0
 def _add_reference_no_check(self, sourcedata, addref):
     rdesc = ua.ReferenceDescription()
     rdesc.ReferenceTypeId = addref.ReferenceTypeId
     rdesc.IsForward = addref.IsForward
     rdesc.NodeId = addref.TargetNodeId
     if addref.TargetNodeClass == ua.NodeClass.Unspecified:
         rdesc.NodeClass = self._aspace.read_attribute_value(
             addref.TargetNodeId, ua.AttributeIds.NodeClass).Value.Value
     else:
         rdesc.NodeClass = addref.TargetNodeClass
     bname = self._aspace.read_attribute_value(addref.TargetNodeId, ua.AttributeIds.BrowseName).Value.Value
     if bname:
         rdesc.BrowseName = bname
     dname = self._aspace.read_attribute_value(addref.TargetNodeId, ua.AttributeIds.DisplayName).Value.Value
     if dname:
         rdesc.DisplayName = dname
     return self._add_unique_reference(sourcedata, rdesc)
示例#4
0
async def _rdesc_from_node(parent, node):
    results = await node.get_attributes([
        ua.AttributeIds.NodeClass, ua.AttributeIds.BrowseName, ua.AttributeIds.DisplayName,
    ])
    nclass, qname, dname = [res.Value.Value for res in results]
    rdesc = ua.ReferenceDescription()
    rdesc.NodeId = node.nodeid
    rdesc.BrowseName = qname
    rdesc.DisplayName = dname
    rdesc.NodeClass = nclass
    if await parent.get_type_definition() == ua.NodeId(ua.ObjectIds.FolderType):
        rdesc.ReferenceTypeId = ua.NodeId(ua.ObjectIds.Organizes)
    else:
        rdesc.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasComponent)
    typedef = await node.get_type_definition()
    if typedef:
        rdesc.TypeDefinition = typedef
    return rdesc