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)
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
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)
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