All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages
OpcUa_RegisterNodesRequest Struct Reference

Asynchronously registers nodes to create shortcuts in the server. More...

#include <opcua_types.h>

Data Fields

OpcUa_NodeId * NodesToRegister
 A list of NodeIds to register that the client has retrieved through browsing, querying or in some other manner.

Detailed Description

Asynchronously registers nodes to create shortcuts in the server.

This service allows clients to optimize the cyclic access to nodes, for example for writing variable values or for calling methods. There are two levels of optimization.

The first level is to reduce the amount of data on the wire for addressing information. Since NodeIds are used for addressing in nodes and can be very long, a more optimized addressing method is desirable for cyclic use of nodes. Classic OPC provided the concept to create handles for items by adding them to a group. RegisterNodes provides a similar concept to create handles for nodes by returning a numeric NodeId that can be used in all functions accessing information from the server. The transport of numeric NodeIds is very efficient in the OPC UA binary protocol.

The second level of optimization is possible inside the server. Since the client is telling the server that it wants to use the node more frequently by registering the Node, the server is able to prepare everything that is possible to optimize the access to the node.

The handles returned by the server are only valid during the lifetime of the session that was used to register the nodes. Clients must call OpcUa_UnregisterNodesRequest if the node is no longer used, to free the resources used in the server for the optimization. This method should not be used to optimize the cyclic read of data, since OPC UA provides a much more optimized mechanism to subscribe for data changes.

Clients do not have to use the service and servers can simply implement the service only returning the same list of NodeIds that was passed in if there is no need to optimize the access.

The documentation for this struct was generated from the following file: