Browser
Browser is returned by ua.Model:browse() method. It is used to browse the address space.
- browser.children()
Get the children of the parent node.
- Returns:
Array of browser objects.
- browser.path(pathElements)
Resolve a path in the address space starting from the root node.
- PathElements:
path elements can be a string, table with parameters. You can mix strings and tables in the path.
for strings and QualifiedName it will browse hierarchical references
for tables it will browse references by the ReferenceTypeId
Parameters for table path element:
TargetName - (required, string or QualifiedName) browse name of a node
ReferenceTypeId (optional, NodeID, Hierarchical References by default) - type of references to follow.
IsInverse (optional, boolean, false by default) - Direction to follow: forward or inverse
IncludeSubtypes (optional, boolean, true by default) - Include subtypes of the ReferenceTypeId or not
- Returns:
Browser object.
- Raises:
if the path is not found, or other error occurs.
Examples:
Get one child node by browse name:
1-- Resolve path to the objects folder node with id i=85 2local objectsFolderPath = model:browse():path("Objects")
Follow hierarchical references:
1-- Resolve path to the server object node 2local serverObject = model:browse():path({"Objects", "Server"})
Mix browse names and table parameters:
1-- Resolve path to server object type definition node 2-- it is possible to mix string and table in the path: 3-- * for strings it will browsed hierarhical references 4-- * for tables it will browsed references by the ReferenceTypeId 5local serverObjectTypeDefinition = model:browse():path({ 6 "Objects", -- #1 7 "Server", -- #2 8 { -- #3 9 TargetName = "ServerType", -- This is either a strinf or a QualifiedName 10 ReferenceTypeId = ua.ReferenceType.HasTypeDefinition, 11 IncludeSubtypes = false, 12 IsInverse = false, 13 } 14}) 15 16print(serverObjectTypeDefinition.Attrs.BrowseName.Name) -- "ServerType" 17print(serverObjectTypeDefinition.Attrs.NodeId) -- "i=2253"
- browser.getNode(nodeId)
Get the browser object by identifier. Result object will have methods according to the node class.
- NodeId:
Node identifier.
- Returns:
Browser object.
- browser.objectsFolder()
Returns a node under which all the objects are placed.
- Returns:
Browser object.
Example:
1-- Get the objects folder node with id i=85 2local objectsFolder = model:browse():objectsFolder() 3print(objectsFolder.Attrs.BrowseName.Name) -- "Objects" 4print(objectsFolder.Attrs.NodeId) -- "i=85"
- browser.typesFolder()
Returns a node under which all the types are placed.
- Returns:
Browser object.
Example:
1-- Resolve path to the server type node which is a type of server object instance 2local serverType = model:browse():typesFolder():path({ 3 "ObjectTypes", 4 "BaseObjectType", 5 "ServerType" 6}) 7print(serverType.Attrs.BrowseName.Name) -- "ServerType" 8print(serverType.Attrs.NodeId) -- "i=2253"