Exemple #1
0
    def add_item(self, node, desc, parent=None):
        item = [
            QStandardItem(desc.DisplayName.to_string()),
            QStandardItem(desc.BrowseName.to_string()),
            QStandardItem(desc.NodeId.to_string())
        ]
        if desc.NodeClass == ua.NodeClass.Object:
            if desc.TypeDefinition == ua.TwoByteNodeId(
                    ua.ObjectIds.FolderType):
                item[0].setIcon(QIcon(":/folder.svg"))
            else:
                item[0].setIcon(QIcon(":/object.svg"))
        elif desc.NodeClass == ua.NodeClass.Variable:
            if desc.TypeDefinition == ua.TwoByteNodeId(
                    ua.ObjectIds.PropertyType):
                item[0].setIcon(QIcon(":/property.svg"))
            else:
                item[0].setIcon(QIcon(":/variable.svg"))
        elif desc.NodeClass == ua.NodeClass.Method:
            item[0].setIcon(QIcon(":/method.svg"))

        item[0].setData(node)
        if parent:
            return parent.appendRow(item)
        else:
            return self.appendRow(item)
Exemple #2
0
 def add_item(self, node, desc, parent=None):
     data = [
         QStandardItem(desc.DisplayName.to_string()),
         QStandardItem(desc.BrowseName.to_string()),
         QStandardItem(desc.NodeId.to_string())
     ]
     if desc.NodeClass == ua.NodeClass.Object:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.FolderType):
             data[0].setIcon(QIcon(QPixmap('./Iconos/folder.png')))
         else:
             data[0].setIcon(QIcon("./Iconos/object.png"))
     elif desc.NodeClass == ua.NodeClass.Variable:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.PropertyType):
             data[0].setIcon(QIcon("./Iconos/property.png"))
         else:
             data[0].setIcon(QIcon("./Iconos/variable.jpg"))
     elif desc.NodeClass == ua.NodeClass.Method:
         data[0].setIcon(QIcon("./Iconos/method.png"))
     data[0].setData(node)
     if parent:
         parent.appendRow(data)
     else:
         self.appendRow(data)
Exemple #3
0
 def add_item(self, desc, parent=None, node=None):
     dname = bname = "No Value"
     if desc.DisplayName:
         dname = desc.DisplayName.to_string()
     if desc.BrowseName:
         bname = desc.BrowseName.to_string()
     nodeid = desc.NodeId.to_string()
     item = [
         QStandardItem(dname),
         QStandardItem(bname),
         QStandardItem(nodeid)
     ]
     if desc.NodeClass == ua.NodeClass.Object:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.FolderType):
             item[0].setIcon(QIcon("icons/folder.svg"))
         else:
             try:
                 object_type = self.custom_objects[desc.NodeId]
                 icon = get_icon(object_type)
             except KeyError:
                 icon = "icons/object.svg"
             item[0].setIcon(QIcon(icon))
     elif desc.NodeClass == ua.NodeClass.Variable:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.PropertyType):
             item[0].setIcon(QIcon("icons/property.svg"))
         else:
             item[0].setIcon(QIcon("icons/variable.svg"))
     elif desc.NodeClass == ua.NodeClass.Method:
         item[0].setIcon(QIcon("icons/method.svg"))
     elif desc.NodeClass == ua.NodeClass.ObjectType:
         item[0].setIcon(QIcon("icons/objecttype.svg"))
     elif desc.NodeClass == ua.NodeClass.VariableType:
         item[0].setIcon(QIcon("icons/variabletype.svg"))
     elif desc.NodeClass == ua.NodeClass.DataType:
         item[0].setIcon(QIcon("icons/datatype.svg"))
     elif desc.NodeClass == ua.NodeClass.ReferenceType:
         item[0].setIcon(QIcon("icons/referencetype.svg"))
     if node:
         item[0].setData(node, Qt.UserRole)
     else:
         parent_node = parent.data(Qt.UserRole)
         item[0].setData(Node(parent_node.server, desc.NodeId), Qt.UserRole)
     if parent:
         return parent.appendRow(item)
     else:
         return self.appendRow(item)
Exemple #4
0
    def test_null(self):
        n = ua.NodeId(b'000000', 0, nodeidtype=ua.NodeIdType.Guid)
        self.assertTrue(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.NodeId(b'000000', 1, nodeidtype=ua.NodeIdType.Guid)
        self.assertFalse(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.NodeId()
        self.assertTrue(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.NodeId(0, 0)
        self.assertTrue(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.NodeId("", 0)
        self.assertTrue(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.TwoByteNodeId(0)
        self.assertTrue(n.is_null())
        self.assertTrue(n.has_null_identifier())

        n = ua.NodeId(0, 3)
        self.assertFalse(n.is_null())
        self.assertTrue(n.has_null_identifier())
Exemple #5
0
 def load_custom_objects(self):
     """
     Function that populates custom_objects dictionary,
     with nodeids of custom objects as keys and
     string representations of their types as values
     """
     # Get Objects folder
     objects_folder = self.client.get_objects_node()
     # Get Organize references to objects inside folder
     descriptions = objects_folder.get_references(
         ua.ObjectIds.Organizes, ua.BrowseDirection.Forward,
         ua.NodeClass.Object, False)
     for desc in descriptions:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.FolderType):
             folder_name = desc.BrowseName.Name
             if folder_name == "Actuators" or folder_name == "Sensors":
                 # Get folder node
                 folder_node = self.get_node(desc.NodeId)
                 # Get all objects inside folder
                 objects = folder_node.get_children(ua.ObjectIds.Organizes,
                                                    ua.NodeClass.Object)
                 for obj in objects:
                     # Get HasTypeDefinition references
                     ref = obj.get_references(
                         ua.ObjectIds.HasTypeDefinition,
                         ua.BrowseDirection.Forward,
                         ua.NodeClass.ObjectType, False)[0]
                     custom_type = ref.BrowseName.Name
                     if custom_type in self.known_custom_types:
                         self.custom_objects[obj.nodeid] = custom_type
Exemple #6
0
    def test_nodeid(self):
        nid = ua.NodeId()
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
        nid = ua.NodeId(446, 3, ua.NodeIdType.FourByte)
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.FourByte)
        d = nodeid_to_binary(nid)
        new_nid = nodeid_from_binary(io.BytesIO(d))
        self.assertEqual(new_nid, nid)
        self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.FourByte)
        self.assertEqual(new_nid.Identifier, 446)
        self.assertEqual(new_nid.NamespaceIndex, 3)

        tb = ua.TwoByteNodeId(53)
        fb = ua.FourByteNodeId(53)
        n = ua.NumericNodeId(53)
        n1 = ua.NumericNodeId(53, 0)
        s1 = ua.StringNodeId("53", 0)
        bs = ua.ByteStringNodeId(b"53", 0)
        gid = uuid.uuid4()
        g = ua.ByteStringNodeId(str(gid), 0)
        guid = ua.GuidNodeId(gid)
        self.assertEqual(tb, fb)
        self.assertEqual(tb, n)
        self.assertEqual(tb, n1)
        self.assertEqual(n1, fb)
        self.assertNotEqual(g, guid)
        self.assertEqual(tb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(tb))))
        self.assertEqual(fb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(fb))))
        self.assertEqual(n, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(n))))
        self.assertEqual(s1, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(s1))))
        self.assertEqual(bs, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(bs))))
        self.assertEqual(guid, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(guid))))
Exemple #7
0
def instanciate_node(parent, node_type, idx):
    """
    Instanciate a new node under 'parent' using a type
    """

    results = node_type.get_attributes([
        ua.AttributeIds.NodeClass, ua.AttributeIds.BrowseName,
        ua.AttributeIds.DisplayName
    ])
    nclass, bname, dname = [res.Value.Value for res in results]

    #descs = node_type.get_children_descriptions(refs=ua.ObjectIds.HasTypeDefinition)
    typedef = ua.FourByteNodeId(ua.ObjectIds.BaseObjectType)
    #if len(descs) > 1:
    #print("DESCS", descs)
    #typedef = descs[0].TypeDefinition

    rdesc = ua.ReferenceDescription()
    rdesc.NodeId = node_type.nodeid
    rdesc.BrowseName = bname
    rdesc.DisplayName = dname
    rdesc.NodeClass = nclass
    rdesc.ReferenceTypeId = ua.TwoByteNodeId(ua.ObjectIds.HasComponent)
    rdesc.TypeDefinition = typedef
    print("MYRDESC", rdesc)

    return _instanciate_node(parent.server, parent.nodeid, rdesc, idx)
Exemple #8
0
    def get_references(self,
                       refs=ua.ObjectIds.References,
                       direction=ua.BrowseDirection.Both,
                       nodeclassmask=ua.NodeClass.Unspecified,
                       includesubtypes=True):
        """
        returns references of the node based on specific filter defined with:

        refs = ObjectId of the Reference
        direction = Browse direction for references
        nodeclassmask = filter nodes based on specific class
        includesubtypes = If true subtypes of the reference (ref) are also included
        """
        desc = ua.BrowseDescription()
        desc.BrowseDirection = direction
        desc.ReferenceTypeId = ua.TwoByteNodeId(refs)
        desc.IncludeSubtypes = includesubtypes
        desc.NodeClassMask = nodeclassmask
        desc.ResultMask = ua.BrowseResultMask.All

        desc.NodeId = self.nodeid
        params = ua.BrowseParameters()
        params.View.Timestamp = ua.win_epoch_to_datetime(0)
        params.NodesToBrowse.append(desc)
        results = self.server.browse(params)
        return results[0].References
Exemple #9
0
    def test_nodeid(self):
        nid = ua.NodeId()
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
        nid = ua.NodeId(446, 3, ua.NodeIdType.FourByte)
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.FourByte)
        d = nid.to_binary()
        new_nid = nid.from_binary(io.BytesIO(d))
        self.assertEqual(new_nid, nid)
        self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.FourByte)
        self.assertEqual(new_nid.Identifier, 446)
        self.assertEqual(new_nid.NamespaceIndex, 3)

        tb = ua.TwoByteNodeId(53)
        fb = ua.FourByteNodeId(53)
        n = ua.NumericNodeId(53)
        n1 = ua.NumericNodeId(53, 0)
        s = ua.StringNodeId(53, 0)  # should we raise an exception???
        s1 = ua.StringNodeId("53", 0)
        bs = ua.ByteStringNodeId(b"53", 0)
        gid = ua.Guid()
        g = ua.ByteStringNodeId(gid, 0)
        self.assertEqual(tb, fb)
        self.assertEqual(tb, n)
        self.assertEqual(tb, n1)
        self.assertEqual(n1, fb)
        self.assertNotEqual(n1, s)
        self.assertNotEqual(s, bs)
        self.assertNotEqual(s, g)
Exemple #10
0
 def get_child(self, path):
     """
     get a child specified by its path from this node.
     A path might be:
     * a string representing a qualified name.
     * a qualified name
     * a list of string
     * a list of qualified names
     """
     if type(path) not in (list, tuple):
         path = [path]
     rpath = ua.RelativePath()
     for item in path:
         el = ua.RelativePathElement()
         el.ReferenceTypeId = ua.TwoByteNodeId(
             ua.ObjectIds.HierarchicalReferences)
         el.IsInverse = False
         el.IncludeSubtypes = True
         if isinstance(item, ua.QualifiedName):
             el.TargetName = item
         else:
             el.TargetName = ua.QualifiedName.from_string(item)
         rpath.Elements.append(el)
     bpath = ua.BrowsePath()
     bpath.StartingNode = self.nodeid
     bpath.RelativePath = rpath
     result = self.server.translate_browsepaths_to_nodeids([bpath])
     result = result[0]
     result.StatusCode.check()
     # FIXME: seems this method may return several nodes
     return Node(self.server, result.Targets[0].TargetId)
Exemple #11
0
 def _get_node_desc(self, node):
     attrs = node.get_attributes([ua.AttributeIds.DisplayName, ua.AttributeIds.BrowseName, ua.AttributeIds.NodeId, ua.AttributeIds.NodeClass])
     desc = ua.ReferenceDescription()
     desc.DisplayName = attrs[0].Value.Value
     desc.BrowseName = attrs[1].Value.Value
     desc.NodeId = attrs[2].Value.Value
     desc.NodeClass = attrs[3].Value.Value
     desc.TypeDefinition = ua.TwoByteNodeId(ua.ObjectIds.FolderType)
     return desc
Exemple #12
0
 def add_item(self, desc, parent=None, node=None):
     dname = bname = nodeid = "No Value"
     if desc.DisplayName:
         dname = desc.DisplayName.to_string()
     if desc.BrowseName:
         bname = desc.BrowseName.to_string()
     nodeid = desc.NodeId.to_string()
     item = [
         QStandardItem(dname),
         QStandardItem(bname),
         QStandardItem(nodeid)
     ]
     if desc.NodeClass == ua.NodeClass.Object:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.FolderType):
             item[0].setIcon(self.icons.get("folder"))
         else:
             item[0].setIcon(self.icons.get("object"))
     elif desc.NodeClass == ua.NodeClass.Variable:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.PropertyType):
             item[0].setIcon(self.icons.get("property"))
         else:
             item[0].setIcon(self.icons.get("variable"))
     elif desc.NodeClass == ua.NodeClass.Method:
         item[0].setIcon(self.icons.get("method"))
     elif desc.NodeClass == ua.NodeClass.ObjectType:
         item[0].setIcon(self.icons.get("object_type"))
     elif desc.NodeClass == ua.NodeClass.VariableType:
         item[0].setIcon(self.icons.get("variable_type"))
     elif desc.NodeClass == ua.NodeClass.DataType:
         item[0].setIcon(self.icons.get("data_type"))
     elif desc.NodeClass == ua.NodeClass.ReferenceType:
         item[0].setIcon(self.icons.get("reference_type"))
     if node:
         item[0].setData(node, Qt.UserRole)
     else:
         parent_node = parent.data(Qt.UserRole)
         item[0].setData(Node(parent_node.server, desc.NodeId), Qt.UserRole)
     if parent:
         return parent.appendRow(item)
     else:
         return self.appendRow(item)
Exemple #13
0
 def get_root_node_and_desc(self):
     node = self.client.get_root_node()
     attrs = node.get_attributes([ua.AttributeIds.DisplayName, ua.AttributeIds.BrowseName, ua.AttributeIds.NodeId, ua.AttributeIds.NodeClass])
     desc = ua.ReferenceDescription()
     desc.DisplayName = attrs[0].Value.Value
     desc.BrowseName = attrs[1].Value.Value
     desc.NodeId = attrs[2].Value.Value
     desc.NodeClass = attrs[3].Value.Value
     desc.TypeDefinition = ua.TwoByteNodeId(ua.ObjectIds.FolderType)
     return node, desc
Exemple #14
0
 def test_bool_variable(self):
     o = self.opc.get_objects_node()
     v = o.add_variable(3, 'BoolVariable', True)
     dt = v.get_data_type()
     self.assertEqual(dt, ua.TwoByteNodeId(ua.ObjectIds.Boolean))
     val = v.get_value()
     self.assertEqual(True, val)
     v.set_value(False)
     val = v.get_value()
     self.assertEqual(False, val)
Exemple #15
0
def _to_nodeid(nodeid):
    if isinstance(nodeid, int):
        return ua.TwoByteNodeId(nodeid)
    elif isinstance(nodeid, Node):
        return nodeid.nodeid
    elif isinstance(nodeid, ua.NodeId):
        return nodeid
    elif type(nodeid) in (str, bytes):
        return ua.NodeId.from_string(nodeid)
    else:
        raise ua.UaError("Could not resolve '{0}' to a type id".format(nodeid))
Exemple #16
0
 def _make_relative_path(self, path):
     rpath = ua.RelativePath()
     for item in path:
         el = ua.RelativePathElement()
         el.ReferenceTypeId = ua.TwoByteNodeId(ua.ObjectIds.HierarchicalReferences)
         el.IsInverse = False
         el.IncludeSubtypes = True
         if isinstance(item, ua.QualifiedName):
             el.TargetName = item
         else:
             el.TargetName = ua.QualifiedName.from_string(item)
         rpath.Elements.append(el)
     return rpath
Exemple #17
0
def _instanciate_node(server, parentid, rdesc, idx):
    """
    Instanciate a new node under 'parent' using a type
    """

    print("Instanciating: node %s in %s" % (rdesc, parentid))
    addnode = ua.AddNodesItem()
    addnode.RequestedNewNodeId = ua.generate_nodeid(idx)
    addnode.BrowseName = rdesc.BrowseName
    addnode.NodeClass = rdesc.NodeClass
    addnode.ParentNodeId = parentid
    addnode.ReferenceTypeId = ua.TwoByteNodeId(ua.ObjectIds.HasComponent)
    addnode.TypeDefinition = rdesc.TypeDefinition
    print("ADDNODE", addnode)

    node_type = Node(server, rdesc.NodeId)

    if rdesc.NodeClass in (ua.NodeClass.Object, ua.NodeClass.ObjectType):
        print(node_type, " is object")
        _read_and_copy_attrs(node_type, ua.ObjectAttributes(), addnode)
        #_add_object_attrs(addnode, rdesc, node_type)

    elif rdesc.NodeClass in (ua.NodeClass.Variable, ua.NodeClass.VariableType):
        print(node_type, " is variable")
        _read_and_copy_attrs(node_type, ua.VariableAttributes(), addnode)
        #_add_variable_attrs(addnode, rdesc, node_type)

    else:
        print("Node class not supported: ", rdesc.NodeClass)

    print("ADDNODE FINAL ", addnode)
    server.add_nodes([addnode])

    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = addnode.ReferenceTypeId
    ref.SourceNodeId = parentid
    ref.TargetNodeClass = addnode.NodeClass
    ref.TargetNodeId = addnode.RequestedNewNodeId

    refs.append(ref)
    server.add_references(refs)

    descs = node_type.get_children_descriptions(
        includesubtypes=False)  #FIXME: should be false
    print("node is", rdesc.NodeId, node_type, node_type.get_children())
    print("Children are: ", descs)
    for rdesc in descs:
        _instanciate_node(server, addnode.RequestedNewNodeId, rdesc, idx)
    return Node(server, addnode.RequestedNewNodeId)
 def add_item(self, desc, parent=None, node=None):
     item = [
         QStandardItem(desc.DisplayName.to_string()),
         QStandardItem(desc.BrowseName.to_string()),
         QStandardItem(desc.NodeId.to_string())
     ]
     if desc.NodeClass == ua.NodeClass.Object:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.FolderType):
             item[0].setIcon(QIcon(":/folder.svg"))
         else:
             item[0].setIcon(QIcon(":/object.svg"))
     elif desc.NodeClass == ua.NodeClass.Variable:
         if desc.TypeDefinition == ua.TwoByteNodeId(
                 ua.ObjectIds.PropertyType):
             item[0].setIcon(QIcon(":/property.svg"))
         else:
             item[0].setIcon(QIcon(":/variable.svg"))
     elif desc.NodeClass == ua.NodeClass.Method:
         item[0].setIcon(QIcon(":/method.svg"))
     elif desc.NodeClass == ua.NodeClass.ObjectType:
         item[0].setIcon(QIcon(":/object_type.svg"))
     elif desc.NodeClass == ua.NodeClass.VariableType:
         item[0].setIcon(QIcon(":/variable_type.svg"))
     elif desc.NodeClass == ua.NodeClass.DataType:
         item[0].setIcon(QIcon(":/data_type.svg"))
     elif desc.NodeClass == ua.NodeClass.ReferenceType:
         item[0].setIcon(QIcon(":/reference_type.svg"))
     if node:
         item[0].setData(node, Qt.UserRole)
     else:
         parent_node = parent.data(Qt.UserRole)
         item[0].setData(Node(parent_node.server, desc.NodeId), Qt.UserRole)
     if parent:
         return parent.appendRow(item)
     else:
         return self.appendRow(item)
Exemple #19
0
 async def browse(self):
     object_root = Node(
         name='',
         parent=self,
         server=self.uaclient,
         server_id=self.id,
         nodeid=self.get_node(
             ua.TwoByteNodeId(ua.ObjectIds.ObjectsFolder)
         )
     )
     object_root.name = (await object_root.get_display_name()).Text
     await self.browse_nodes(
         parent=self,
         node=object_root
     )
Exemple #20
0
    def test_nodeid_ordering(self):
        a = ua.NodeId(2000, 1)
        b = ua.NodeId(3000, 1)
        c = ua.NodeId(20, 0)
        d = ua.NodeId("tititu", 1)
        e = ua.NodeId("aaaaa", 1)
        f = ua.NodeId("aaaaa", 2)
        g = ua.NodeId(uuid.uuid4(), 1)
        h = ua.TwoByteNodeId(2001)
        i = ua.NodeId(b"lkjkl", 1, ua.NodeIdType.ByteString)
        j = ua.NodeId(b"aaa", 5, ua.NodeIdType.ByteString)

        mylist = [a, b, c, d, e, f, g, h, i, j]
        mylist.sort()
        expected = [h, c, a, b, e, d, f, g, i, j]
        self.assertEqual(mylist, expected)
Exemple #21
0
 async def browse(self):
     """The function that starts a browse activity.  Establishes the root
     node, gets the objects node, and starts the browse_nodes function"""
     logging.info("Browsing Servers")
     for server_id, server in self.servers.items():
         server.uaclient.parent = server
         object_root = Node(name='',
                            parent=server,
                            server=server.uaclient,
                            integration_client_id=self.permanent_id,
                            server_id=server_id,
                            nodeid=server.get_node(
                                ua.TwoByteNodeId(
                                    ua.ObjectIds.ObjectsFolder)))
         object_root.name = (await object_root.get_display_name()).Text
         await server.browse_nodes(parent=server, node=object_root)
Exemple #22
0
    def get_children_descriptions(self,
                                  refs=ua.ObjectIds.HierarchicalReferences,
                                  nodeclassmask=ua.NodeClass.Unspecified,
                                  includesubtypes=True):
        """
        return all attributes of child nodes as UA BrowseResult structs
        """
        desc = ua.BrowseDescription()
        desc.BrowseDirection = ua.BrowseDirection.Forward
        desc.ReferenceTypeId = ua.TwoByteNodeId(refs)
        desc.IncludeSubtypes = includesubtypes
        desc.NodeClassMask = nodeclassmask
        desc.ResultMask = ua.BrowseResultMask.All

        desc.NodeId = self.nodeid
        params = ua.BrowseParameters()
        params.View.Timestamp = ua.win_epoch_to_datetime(0)
        params.NodesToBrowse.append(desc)
        results = self.server.browse(params)
        return results[0].References
Exemple #23
0
 def get_server_node(self):
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.Server))
Exemple #24
0
 def get_objects_node(self):
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.ObjectsFolder))
Exemple #25
0
 def get_root_node(self):
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.RootFolder))
Exemple #26
0
 def get_server_node(self):
     """
     Get Server node of server. Returns a Node object.
     """
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.Server))
Exemple #27
0
 def get_objects_node(self):
     """
     Get Objects node of server. Returns a Node object.
     """
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.ObjectsFolder))
Exemple #28
0
 def get_root_node(self):
     """
     Get Root node of server. Returns a Node object.
     """
     return self.get_node(ua.TwoByteNodeId(ua.ObjectIds.RootFolder))