High Performance OPC UA Server SDK
1.1.0.158
|
Modules | |
addressspace | |
Functions and definitions for addressspace operations and attribute handling. | |
authentication | |
Interface for implementing an authentication backend. | |
authorization | |
Interface for implementing an authorization backend. | |
valuestore | |
Functions and definitions for using the valuestore infrastructure of the SDK. | |
Data Structures | |
struct | uaserver_provider |
struct | ua_monitoreditem |
Structure to represent a monitoreditem in the server. More... | |
Functions | |
void | uaserver_read_internal (ua_node_t node, struct uasession_session *session, enum ua_timestampstoreturn ts, uint32_t attribute_id, struct ua_indexrange *index_range, unsigned int num_ranges, struct ua_datavalue *result) |
Read the attribute of a node. More... | |
ua_statuscode | uaserver_write_internal (ua_node_t node, struct uasession_session *session, uint32_t attribute_id, struct ua_indexrange *range, unsigned int num_ranges, struct ua_datavalue *value) |
Write the attribute of a node. More... | |
int | uaserver_init (struct uaserver_provider *provider, int num_provider) |
Initialize server. More... | |
int | uaserver_init_ipc (void) |
void | uaserver_clear (struct uaserver_provider *provider, int num_provider) |
Clear server. More... | |
void | uaserver_clear_ipc (void) |
int | uaserver_start (void) |
Start server. More... | |
int | uaserver_stop (void) |
Stop the server. More... | |
int | uaserver_do_com (void) |
int | uaserver_timed_do_com (int timeout_ms) |
int | uaserver_registernode_internal (ua_node_t node, uint16_t nsidx, struct ua_nodeid *out) |
Creates a registered node from the given node handle. More... | |
void uaserver_clear | ( | struct uaserver_provider * | provider, |
int | num_provider | ||
) |
Clear server.
provider | Array of providers to unload. |
num_provider | Number of elements in provider array. |
int uaserver_init | ( | struct uaserver_provider * | provider, |
int | num_provider | ||
) |
Initialize server.
provider | Array with providers to load. Each provider will be assigned a handle on success. |
num_provider | Number of elements in provider array. |
void uaserver_read_internal | ( | ua_node_t | node, |
struct uasession_session * | session, | ||
enum ua_timestampstoreturn | ts, | ||
uint32_t | attribute_id, | ||
struct ua_indexrange * | index_range, | ||
unsigned int | num_ranges, | ||
struct ua_datavalue * | result | ||
) |
Read the attribute of a node.
If the value attribute is to be read, this function tries to read it from a store, other attributes are read directly from the addressspace.
node | Node to read the attribute from. |
session | The session to read the attribute for. If NULL it is ignored. |
ts | The timestamps to return, see: ua_timestampstoreturn. |
attribute_id | Id of the attribute to read. |
index_range | Array of index ranges to read. For each dimension to limit the range there is one array entry. |
num_ranges | Number of entries in the index_range array. |
result | The attribute that was read, in case of an error a bad statuscode is written to the statuscode of the ua_datavalue. |
Creates a registered node from the given node handle.
Because the internal node representation only supports 30bit numeric values (0-1,073,741,824 ~ 10^9 values), we can use the highest bit 31 to mark the node as a registered node. This allows to convert every node id of the server into a efficient numeric nodeid without changing the nsidx. Note, if you change the internal node representation you also need to fix this function and ua_node_find() to reflect this change.
node | Node handle to create a registered nodeid for. |
nsidx | Nsidx of node, just passed to for performance reasons to avoid an ua_node_get_nodeid() call. The provider should already know this nsidx. |
out | The registed nodeid to return. |
int uaserver_start | ( | void | ) |
Start server.
Start listening for network connections.
net_base | A network base to use. If NULL a new one will be created. |
int uaserver_stop | ( | void | ) |
Stop the server.
Stop listening for network connnections and clear network related resources and sessions.
ua_statuscode uaserver_write_internal | ( | ua_node_t | node, |
struct uasession_session * | session, | ||
uint32_t | attribute_id, | ||
struct ua_indexrange * | range, | ||
unsigned int | num_ranges, | ||
struct ua_datavalue * | value | ||
) |
Write the attribute of a node.
This function tries to write the value attribute of a node using the store infrastructure. Other attributes are not implemented.
node | Node to write the attribute to. |
session | The session to write the attribute for. If NULL it is ignored. |
attribute_id | Id of the attribute to write. |
range | Array of index ranges to write. For each dimension to limit the range there is one array entry. |
num_ranges | Number of entries in the range array. |
value | The new value to write to the attribute of the node. |