ANSI C UA Server SDK  1.5.1.313
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages
UaClientSession

Data Structures

struct  UaClient_Session
 The UaClient_Session structure manages a UA Client side application session. More...
 
struct  UaClient_Session::UaClient_Session_UserToken
 The user token to use when connecting to a server. More...
 
struct  UaClient_ServiceSettings
 The UaClient_ServiceSettings structure contains the general settings for a call. More...
 
struct  UaClient_Session_Callback
 UaClient_Session_Callback defines the callback interface for the UaClient_Session structure. More...
 

Typedefs

typedef OpcUa_Void(* UaClient_Session_ConnectionStatusChanged_CB )(UaClient_Session *a_pSession, UaClient_ConnectionStatus a_status)
 Send changed status. More...
 
typedef OpcUa_Boolean(* UaClient_Session_ConnectError_CB )(UaClient_Session *a_pSession, UaClient_ConnectServiceType a_serviceType, OpcUa_StatusCode a_error, OpcUa_Boolean a_clientSideError)
 Callback for reporting errors during connection establishment to the application. More...
 
typedef OpcUa_Void(* UaClient_Session_Cancel_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_UInt32 a_CancelCount, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginCancel. More...
 
typedef OpcUa_Void(* UaClient_Session_AddNodes_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_AddNodesResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginAddNodes. More...
 
typedef OpcUa_Void(* UaClient_Session_AddReferences_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginAddReferences. More...
 
typedef OpcUa_Void(* UaClient_Session_DeleteNodes_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginDeleteNodes. More...
 
typedef OpcUa_Void(* UaClient_Session_DeleteReferences_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginDeleteReferences. More...
 
typedef OpcUa_Void(* UaClient_Session_BrowseList_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowseResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginBrowseList. More...
 
typedef OpcUa_Void(* UaClient_Session_BrowseListNext_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowseResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginBrowseListNext. More...
 
typedef OpcUa_Void(* UaClient_Session_TranslateBrowsePathsToNodeIds_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowsePathResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginTranslateBrowsePathsToNodeIds. More...
 
typedef OpcUa_Void(* UaClient_Session_RegisterNodes_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfRegisteredNodeIds, OpcUa_NodeId *a_pRegisteredNodeIds, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginRegisterNodes. More...
 
typedef OpcUa_Void(* UaClient_Session_UnregisterNodes_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginUnregisterNodes. More...
 
typedef OpcUa_Void(* UaClient_Session_QueryFirst_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfQueryDataSets, OpcUa_QueryDataSet *a_pQueryDataSets, OpcUa_ByteString *a_pContinuationPoint, OpcUa_Int32 a_NoOfParsingResults, OpcUa_ParsingResult *a_pParsingResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_ContentFilterResult *a_pFilterResult, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginQueryFirst. More...
 
typedef OpcUa_Void(* UaClient_Session_QueryNext_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfQueryDataSets, OpcUa_QueryDataSet *a_pQueryDataSets, OpcUa_ByteString *a_pRevisedContinuationPoint, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginQueryNext. More...
 
typedef OpcUa_Void(* UaClient_Session_Read_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_DataValue *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginRead. More...
 
typedef OpcUa_Void(* UaClient_Session_HistoryRead_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_HistoryReadResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginHistoryRead. More...
 
typedef OpcUa_Void(* UaClient_Session_Write_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginWrite. More...
 
typedef OpcUa_Void(* UaClient_Session_HistoryUpdate_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_HistoryUpdateResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginHistoryUpdate. More...
 
typedef OpcUa_Void(* UaClient_Session_CallList_CB )(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_CallMethodResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)
 Asynchronous callback function for calls to UaClient_Session_BeginCallList. More...
 

Enumerations

enum  UaClient_ConnectionStatus {
  UaClient_ConnectionStatus_Disconnected, UaClient_ConnectionStatus_Connecting, UaClient_ConnectionStatus_Connected, UaClient_ConnectionStatus_ConnectionWarningWatchdogTimeout,
  UaClient_ConnectionStatus_ConnectionErrorClientReconnect, UaClient_ConnectionStatus_SessionAutomaticallyRecreated
}
 Enumeration used to indicate the connection status in the client API. More...
 
enum  UaClient_ConnectServiceType { UaClient_ConnectServiceType_CertificateValidation, UaClient_ConnectServiceType_OpenSecureChannel, UaClient_ConnectServiceType_CreateSession, UaClient_ConnectServiceType_ActivateSession }
 Service type enumeration used to indicate a connection establishment step in the client API. More...
 

Functions

OpcUa_StatusCode UaClient_Session_Create (const UaClient_Session_Callback *a_pSessionCallback, UaClient_Session **a_ppSession)
 Create a session and initialize it with default values. More...
 
OpcUa_StatusCode UaClient_Session_Delete (UaClient_Session **a_ppSession)
 Delete a session. More...
 
OpcUa_StatusCode UaClient_Session_BeginConnect (UaClient_Session *a_pSession)
 Establish a connection to an OPC UA server. More...
 
OpcUa_StatusCode UaClient_Session_BeginDisconnect (UaClient_Session *a_pSession, OpcUa_Boolean a_bDeleteSubscriptions)
 Disconnect client application from OPC UA server. More...
 
OpcUa_StatusCode UaClient_Session_VerifyServerCertificate (UaClient_Session *a_pSession)
 This function verifies if the server certificate is trusted by the client. More...
 
OpcUa_StatusCode UaClient_Session_BeginCancel (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_UInt32 a_RequestHandle, UaClient_Session_Cancel_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously cancels outstanding service requests on the OPC UA server. More...
 
OpcUa_StatusCode UaClient_Session_BeginAddNodes (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfNodesToAdd, const OpcUa_AddNodesItem *a_pNodesToAdd, UaClient_Session_AddNodes_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously adds one or more nodes into the address space hierarchy. More...
 
OpcUa_StatusCode UaClient_Session_BeginAddReferences (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfReferencesToAdd, const OpcUa_AddReferencesItem *a_pReferencesToAdd, UaClient_Session_AddReferences_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously adds one or more references to one or more nodes. More...
 
OpcUa_StatusCode UaClient_Session_BeginDeleteNodes (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfNodesToDelete, const OpcUa_DeleteNodesItem *a_pNodesToDelete, UaClient_Session_DeleteNodes_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously deletes nodes from the OPC UA server’s address space. More...
 
OpcUa_StatusCode UaClient_Session_BeginDeleteReferences (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfReferencesToDelete, const OpcUa_DeleteReferencesItem *a_pReferencesToDelete, UaClient_Session_DeleteReferences_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously deletes references from the OPC UA server’s address space. More...
 
OpcUa_StatusCode UaClient_Session_BeginBrowseList (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, const OpcUa_ViewDescription *a_pView, OpcUa_UInt32 a_RequestedMaxReferencesPerNode, OpcUa_Int32 a_NoOfNodesToBrowse, const OpcUa_BrowseDescription *a_pNodesToBrowse, UaClient_Session_BrowseList_CB a_pfCallback, OpcUa_Void *a_pUserData)
 The Browse service is used by a client to navigate through the address space by passing a starting node and browse filters. More...
 
OpcUa_StatusCode UaClient_Session_BeginBrowseListNext (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Boolean a_ReleaseContinuationPoints, OpcUa_Int32 a_NoOfContinuationPoints, const OpcUa_ByteString *a_pContinuationPoints, UaClient_Session_BrowseListNext_CB a_pfCallback, OpcUa_Void *a_pUserData)
 The BrowseNext service is only used to continue a Browse if not all results could be returned by the Browse or a following BrowseNext call. More...
 
OpcUa_StatusCode UaClient_Session_BeginTranslateBrowsePathsToNodeIds (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfBrowsePaths, const OpcUa_BrowsePath *a_pBrowsePaths, UaClient_Session_TranslateBrowsePathsToNodeIds_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously translates a browse path to a NodeId. More...
 
OpcUa_StatusCode UaClient_Session_BeginRegisterNodes (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfNodesToRegister, const OpcUa_NodeId *a_pNodesToRegister, UaClient_Session_RegisterNodes_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously registers nodes to create shortcuts in the server. More...
 
OpcUa_StatusCode UaClient_Session_BeginUnregisterNodes (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfNodesToUnregister, const OpcUa_NodeId *a_pNodesToUnregister, UaClient_Session_UnregisterNodes_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously unregisters nodes to delete shortcuts in the server. More...
 
OpcUa_StatusCode UaClient_Session_BeginQueryFirst (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, const OpcUa_ViewDescription *a_pView, OpcUa_Int32 a_NoOfNodeTypes, const OpcUa_NodeTypeDescription *a_pNodeTypes, const OpcUa_ContentFilter *a_pFilter, OpcUa_UInt32 a_MaxDataSetsToReturn, OpcUa_UInt32 a_MaxReferencesToReturn, UaClient_Session_QueryFirst_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously queries the address space. More...
 
OpcUa_StatusCode UaClient_Session_BeginQueryNext (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Boolean a_ReleaseContinuationPoint, const OpcUa_ByteString *a_pContinuationPoint, UaClient_Session_QueryNext_CB a_pfCallback, OpcUa_Void *a_pUserData)
 This Service is used to request the next set of QueryFirst or QueryNext response information that is too large to be sent in a single response. More...
 
OpcUa_StatusCode UaClient_Session_BeginRead (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Double a_MaxAge, OpcUa_TimestampsToReturn a_TimestampsToReturn, OpcUa_Int32 a_NoOfNodesToRead, const OpcUa_ReadValueId *a_pNodesToRead, UaClient_Session_Read_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Reads values and attributes asynchronously from OPC server. More...
 
OpcUa_StatusCode UaClient_Session_BeginHistoryRead (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, const OpcUa_ExtensionObject *a_pHistoryReadDetails, OpcUa_TimestampsToReturn a_TimestampsToReturn, OpcUa_Boolean a_ReleaseContinuationPoints, OpcUa_Int32 a_NoOfNodesToRead, const OpcUa_HistoryReadValueId *a_pNodesToRead, UaClient_Session_HistoryRead_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously reads historical values or events of one or more nodes. More...
 
OpcUa_StatusCode UaClient_Session_BeginWrite (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfNodesToWrite, const OpcUa_WriteValue *a_pNodesToWrite, UaClient_Session_Write_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously writes variable values to an OPC UA Server. More...
 
OpcUa_StatusCode UaClient_Session_BeginHistoryUpdate (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfHistoryUpdateDetails, const OpcUa_ExtensionObject *a_pHistoryUpdateDetails, UaClient_Session_HistoryUpdate_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously updates historical values or events of one or more nodes. More...
 
OpcUa_StatusCode UaClient_Session_BeginCallList (UaClient_Session *a_pSession, UaClient_ServiceSettings *a_pServiceSettings, OpcUa_Int32 a_NoOfMethodsToCall, const OpcUa_CallMethodRequest *a_pMethodsToCall, UaClient_Session_CallList_CB a_pfCallback, OpcUa_Void *a_pUserData)
 Asynchronously calls a method provided by an object on the OPC UA server. More...
 

Detailed Description

Typedef Documentation

typedef OpcUa_Void(* UaClient_Session_AddNodes_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_AddNodesResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginAddNodes.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of results for the Nodes to add.
The size and order of the list matches the size and order of the OpcUa_AddNodesRequest::NodesToAdd request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the nodes to add.
The size and order of the list matches the size and order of the OpcUa_AddNodesRequest::NodesToAdd request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginAddNodes.
typedef OpcUa_Void(* UaClient_Session_AddReferences_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginAddReferences.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of StatusCodes for the references to add.
The size and order of the list matches the size and order of the OpcUa_AddReferencesRequest::ReferencesToAdd request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the references to add.
The size and order of the list matches the size and order of the OpcUa_AddReferencesRequest::ReferencesToAdd request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginAddReferences.
typedef OpcUa_Void(* UaClient_Session_BrowseList_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowseResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginBrowseList.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsA list of BrowseResults.
The size and order of the list matches the size and order of the OpcUa_BrowseRequest::NodesToBrowse specified in the request.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the results.
The size and order of the list matches the size and order of the OpcUa_BrowseResponse::Results response parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginBrowseList.
typedef OpcUa_Void(* UaClient_Session_BrowseListNext_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowseResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginBrowseListNext.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResults
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfos
a_pUserDataThe user data that was passed to UaClient_Session_BeginBrowseListNext.
typedef OpcUa_Void(* UaClient_Session_CallList_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_CallMethodResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginCallList.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsResult for the method calls.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the StatusCode of the callResult.
This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginCallList.
typedef OpcUa_Void(* UaClient_Session_Cancel_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_UInt32 a_CancelCount, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginCancel.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_CancelCountNumber of cancelled requests.
a_pUserDataThe user data that was passed to UaClient_Session_BeginCancel.
typedef OpcUa_Boolean(* UaClient_Session_ConnectError_CB)(UaClient_Session *a_pSession, UaClient_ConnectServiceType a_serviceType, OpcUa_StatusCode a_error, OpcUa_Boolean a_clientSideError)

Callback for reporting errors during connection establishment to the application.

The callback UaClient_Session_ConnectionStatusChanged_CB indicates the overall status of the connection but does not report detailed error information. The ConnectError callback can be used to get more information about the error scenario. This includes errors during reconnect attempts after a connection interruption.

Most of the errors are returned from the communication stack or the OPC UA server but some of the errors like server certificate validation errors are reported by the client SDK. If a_clientSideError is true, the error was created inside the Client SDK; these errors can be overridden by returning OpcUa_True.

If a Client SDK error should be skipped return OpcUa_True, OpcUa_False otherwise. The return code is ignored by the SDK if the error was not created by the Client SDK

typedef OpcUa_Void(* UaClient_Session_ConnectionStatusChanged_CB)(UaClient_Session *a_pSession, UaClient_ConnectionStatus a_status)

Send changed status.

This callback function is called by the SDK whenever the connection status changes. This is typically the case if UaClient_Session_BeginConnect or UaClient_Session_BeginDisconnect are called, or if the connection monitoring detects a connection interruption or was able to reestablish the connection.

Usually, everything the application using the UaClient_Session object has to take care of is to only call services if the connection status is “connected”. The case that may require special actions is the status UaClient_ConnectionStatus_SessionAutomaticallyRecreated. In these cases, the SDK was not able to reuse the old session and created a new session during reconnect. This requires to redo register nodes for the new session, to read the namespace array, or to recreate monitored items.

typedef OpcUa_Void(* UaClient_Session_DeleteNodes_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginDeleteNodes.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of StatusCodes for the nodes to delete.
The size and order of the list matches the size and order of the list of the OpcUa_DeleteNodesRequest::NodesToDelete request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the nodes to delete.
The size and order of the list matches the size and order of the OpcUa_DeleteNodesRequest::NodesToDelete request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginDeleteNodes.
typedef OpcUa_Void(* UaClient_Session_DeleteReferences_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginDeleteReferences.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of StatusCodes for the references to delete.
The size and order of the list matches the size and order of the OpcUa_DeleteReferencesRequest::ReferencesToDelete request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the references to delete.
The size and order of the list matches the size and order of the OpcUa_DeleteReferencesRequest::ReferencesToDelete request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginDeleteReferences.
typedef OpcUa_Void(* UaClient_Session_HistoryRead_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_HistoryReadResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginHistoryRead.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of read results.
The size and order of the list matches the size and order of the OpcUa_HistoryReadRequest::NodesToRead request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information.
The size and order of the list matches the size and order of the OpcUa_HistoryReadRequest::NodesToRead request parameter. There is one entry in this list for each node contained in the OpcUa_HistoryReadRequest::NodesToRead parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginHistoryRead.
typedef OpcUa_Void(* UaClient_Session_HistoryUpdate_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_HistoryUpdateResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginHistoryUpdate.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of update results for the history update details.
The size and order of the list matches the size and order of the details element of the historyUpdateDetails parameter specified in the request.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the history update details.
The size and order of the list matches the size and order of the details element of the historyUpdateDetails parameter specified in the request. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginHistoryUpdate.
typedef OpcUa_Void(* UaClient_Session_QueryFirst_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfQueryDataSets, OpcUa_QueryDataSet *a_pQueryDataSets, OpcUa_ByteString *a_pContinuationPoint, OpcUa_Int32 a_NoOfParsingResults, OpcUa_ParsingResult *a_pParsingResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_ContentFilterResult *a_pFilterResult, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginQueryFirst.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfQueryDataSetsNumber of elements in a_pQueryDataSets.
a_pQueryDataSetsThe array of QueryDataSets.
This array is empty if no nodes or references met the OpcUa_QueryFirstRequest::NodeTypes criteria. In this case, the ContinuationPoint parameter shall be empty.
a_pContinuationPointServer-defined opaque value that identifies the continuation point.
The continuation point is used only when the Query results are too large to be returned in a single response. “Too large” in this context means that the Server is not able to return a larger response or that the number of QueryDataSets to return exceeds the maximum number of QueryDataSets to return that was specified by the Client in the request.
The continuation point is used in the QueryNext Service. If not used, the value of this parameter is null. If a continuation point is returned, the Client shall call QueryNext to get the next set of QueryDataSets or to free the resources for the continuation point in the Server.
A continuation point shall remain active until the Client passes the continuation point to QueryNext or the session is closed. If the maximum continuation points have been reached, the oldest continuation point shall be reset.
a_NoOfParsingResultsNumber of elements in a_pParsingResults.
a_pParsingResultsList of parsing results for QueryFirst.
The size and order of the list matches the size and order of the NodeTypes request parameter.
This list is populated with any status codes that are related to the processing of the node types that are part of the query. The array can be empty if no errors were encountered. If any node type encountered an error, all node types shall have an associated status code.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the requested NodeTypeDescription.
This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the query request.
a_pFilterResultA structure that contains any errors associated with the filter.
This structure shall be empty if no errors occurred.
a_pUserDataThe user data that was passed to UaClient_Session_BeginQueryFirst.
typedef OpcUa_Void(* UaClient_Session_QueryNext_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfQueryDataSets, OpcUa_QueryDataSet *a_pQueryDataSets, OpcUa_ByteString *a_pRevisedContinuationPoint, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginQueryNext.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfQueryDataSetsNumber of elements in a_pQueryDataSets.
a_pQueryDataSetsThe array of QueryDataSets
a_pRevisedContinuationPointServer-defined opaque value that represents the continuation point.
It is used only if the information to be returned is too large to be contained in a single response. If not used or if OpcUa_QueryNextRequest::ReleaseContinuationPoint is set, the value of this parameter is null.
a_pUserDataThe user data that was passed to UaClient_Session_BeginQueryNext.
typedef OpcUa_Void(* UaClient_Session_Read_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_DataValue *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginRead.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of read results contained in an array of DataValue structures.
The DataValue consists of
Value
The value of the read node and attribute combination
StatusCode
This parameter is used to indicate the conditions under which the value was generated, and thereby can be used as an indicator of the usability of the value.
SourceTimestamp
Reflects the UTC timestamp that was applied to the value by the data source. It is only available for Value attributes.
ServerTimestamp
Reflects the time that the Server received the value or knew it to be accurate.

The size and order of this list matches the size and order of the request parameter. There is one entry in this list for each Node contained in the parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information.
The size and order of this list matches the size and order of the OpcUa_ReadRequest::NodesToRead request parameter. There is one entry in this list for each Node contained in the OpcUa_ReadRequest::NodesToRead parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginRead.
typedef OpcUa_Void(* UaClient_Session_RegisterNodes_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfRegisteredNodeIds, OpcUa_NodeId *a_pRegisteredNodeIds, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginRegisterNodes.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfRegisteredNodeIdsNumber of elements in a_pRegisteredNodeIds.
a_pRegisteredNodeIdsA list of NodeIds which the Client shall use for subsequent access operations.
The size and order of this list matches the size and order of the OpcUa_RegisterNodesRequest::NodesToRegister request parameter.
The Server may return the NodeId from the request or a new (an alias) NodeId. It is recommended that the Server returns a numeric NodeId for aliasing.
In case no optimization is supported for a node, the Server shall return the NodeId from the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginRegisterNodes.
typedef OpcUa_Void(* UaClient_Session_TranslateBrowsePathsToNodeIds_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_BrowsePathResult *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginTranslateBrowsePathsToNodeIds.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of results for the list of browse paths.
The size and order of the list matches the size and order of the OpcUa_TranslateBrowsePathsToNodeIdsRequest::BrowsePaths request parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfosList of diagnostic information for the list of browse paths.
The size and order of the list matches the size and order of the request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.
a_pUserDataThe user data that was passed to UaClient_Session_BeginTranslateBrowsePathsToNodeIds.
typedef OpcUa_Void(* UaClient_Session_UnregisterNodes_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginUnregisterNodes.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_pUserDataThe user data that was passed to UaClient_Session_BeginUnregisterNodes.
typedef OpcUa_Void(* UaClient_Session_Write_CB)(const UaClient_Session *a_pSession, OpcUa_ResponseHeader *a_pResponseHeader, OpcUa_Int32 a_NoOfResults, OpcUa_StatusCode *a_pResults, OpcUa_Int32 a_NoOfDiagnosticInfos, OpcUa_DiagnosticInfo *a_pDiagnosticInfos, OpcUa_Void *a_pUserData)

Asynchronous callback function for calls to UaClient_Session_BeginWrite.

Parameters
a_pSessionThe session that was used for the service invocation.
a_pResponseHeaderGeneral information about the response like ServiceResult and diagnostics.
a_NoOfResultsNumber of elements in a_pResults.
a_pResultsList of results for the nodes to write.
The size and order of the list matches the size and order of the OpcUa_WriteRequest::NodesToWrite request parameter. There is one entry in this list for each node contained in the OpcUa_WriteRequest::NodesToWrite parameter.
a_NoOfDiagnosticInfosNumber of elements in a_pDiagnosticInfos.
a_pDiagnosticInfos
a_pUserDataThe user data that was passed to UaClient_Session_BeginWrite.

Enumeration Type Documentation

Enumeration used to indicate the connection status in the client API.

Enumerator
UaClient_ConnectionStatus_Disconnected 

The connection to the server is deactivated by the user of the client API.

UaClient_ConnectionStatus_Connecting 

The connection to the server is currently being established.

UaClient_ConnectionStatus_Connected 

The connection to the server is established and is working in normal mode.

UaClient_ConnectionStatus_ConnectionWarningWatchdogTimeout 

The monitoring of the connection to the server indicated a potential connection problem.

UaClient_ConnectionStatus_ConnectionErrorClientReconnect 

The monitoring of the connection to the server detected an error and is trying to reconnect to the server.

UaClient_ConnectionStatus_SessionAutomaticallyRecreated 

The client was not able to reuse the old session and created a new session during reconnect. This requires to redo register nodes for the new session or to read the namespace array.

Service type enumeration used to indicate a connection establishment step in the client API.

Enumerator
UaClient_ConnectServiceType_CertificateValidation 

Certificate validation steps.

UaClient_ConnectServiceType_OpenSecureChannel 

Processing of Service OpenSecureChannel.

UaClient_ConnectServiceType_CreateSession 

Processing of Service CreateSession.

UaClient_ConnectServiceType_ActivateSession 

Processing of Service ActivateSession.

Function Documentation

OpcUa_StatusCode UaClient_Session_BeginAddNodes ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfNodesToAdd,
const OpcUa_AddNodesItem a_pNodesToAdd,
UaClient_Session_AddNodes_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously adds one or more nodes into the address space hierarchy.

Using this service, each node is added as the target node of a hierarchical reference to ensure that the address space is fully connected and that the node is added as a child within the address space hierarchy (see Part 3 of the OPC UA Specification).

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfNodesToAddNumber of elements in a_pNodesToAdd.
a_pNodesToAddList of nodes to add.
All nodes are added as a reference to an existing node using a hierarchical ReferenceType.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginAddReferences ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfReferencesToAdd,
const OpcUa_AddReferencesItem a_pReferencesToAdd,
UaClient_Session_AddReferences_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously adds one or more references to one or more nodes.

The NodeClass is an input parameter that is used to validate that the reference to be added matches the NodeClass of the target node. This parameter is not validated if the reference refers to a target node in a remote Server.

In certain cases, adding new references to the address space shall require that the Server add new Server ids to the Server’s ServerArray variable. For this reason, remote Servers are identified by their URI and not by their ServerArray index. This allows the Server to add the remote Server URIs to its ServerArray.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfReferencesToAddNumber of elements in a_pReferencesToAdd.
a_pReferencesToAddList of reference instances to add to the source node.
The OpcUa_AddReferencesItem::TargetNodeClass of each reference in the list shall match the node class of the target node.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginBrowseList ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
const OpcUa_ViewDescription a_pView,
OpcUa_UInt32  a_RequestedMaxReferencesPerNode,
OpcUa_Int32  a_NoOfNodesToBrowse,
const OpcUa_BrowseDescription a_pNodesToBrowse,
UaClient_Session_BrowseList_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

The Browse service is used by a client to navigate through the address space by passing a starting node and browse filters.

The server returns the list of referenced nodes matching the filter criteria.

The Browse service takes a list of starting nodes and returns a list of connected nodes for each starting node. Nevertheless, most clients will only pass one starting node for the main purpose of building a tree hierarchy. Since the OPC UA address space can be a full-meshed network and is not limited to a pure hierarchy, the capability to pass in a list of starting nodes is mainly used to browse metadata like the properties of a list of variables.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_pViewDescription of the View to browse.
An empty ViewDescription value indicates the entire address space. If ViewDescription is empty, all references of the node to browse are returned. If any other view is specified, only the references of the node to browse that are defined for that view are returned.
a_RequestedMaxReferencesPerNodeIndicates the maximum number of references to return for each starting Node specified in the request.
The value 0 indicates that the Client is imposing no limitation.
a_NoOfNodesToBrowseNumber of elements in a_pNodesToBrowse.
a_pNodesToBrowseA list of nodes to Browse
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginBrowseListNext ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Boolean  a_ReleaseContinuationPoints,
OpcUa_Int32  a_NoOfContinuationPoints,
const OpcUa_ByteString *  a_pContinuationPoints,
UaClient_Session_BrowseListNext_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

The BrowseNext service is only used to continue a Browse if not all results could be returned by the Browse or a following BrowseNext call.

The number of Nodes to return can be limited by the client in the Browse request or by the Server during processing the Browse Service call.

The BrowseNext shall be submitted on the same session that was used to submit the Browse or BrowseNext that is being continued.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_ReleaseContinuationPointsA boolean parameter indicating whether continuation points should be released.
It has the following values:
TRUE
passed ContinuationPoints shall be reset to free resources in the Server. The continuation points are released and the results and diagnosticInfos arrays are empty.
FALSE
passed ContinuationPoints shall be used to get the next set of browse information.

A Client shall always use the continuation point returned by a Browse or BrowseNext response to free the resources for the continuation point in the Server. If the Client does not want to get the next set of browse information, BrowseNext shall be called with this parameter set to TRUE.
a_NoOfContinuationPointsNumber of elements in a_pContinuationPoints.
a_pContinuationPointsA list of Server-defined opaque values that represent continuation points.
The value for a continuation point was returned to the Client in a previous Browse or BrowseNext response. These values are used to identify the previously processed Browse or BrowseNext request that is being continued and the point in the result set from which the browse response is to continue.
Clients may mix continuation points from different Browse or BrowseNext responses.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginCallList ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfMethodsToCall,
const OpcUa_CallMethodRequest a_pMethodsToCall,
UaClient_Session_CallList_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously calls a method provided by an object on the OPC UA server.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfMethodsToCallNumber of elements in a_pMethodsToCall.
a_pMethodsToCallList of methods to call.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginCancel ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_UInt32  a_RequestHandle,
UaClient_Session_Cancel_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously cancels outstanding service requests on the OPC UA server.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_RequestHandleThe request handle assigned to one or more requests that should be cancelled.
All outstanding requests with the matching requestHandle shall be cancelled.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginConnect ( UaClient_Session a_pSession)

Establish a connection to an OPC UA server.

Connects to the endpoint set in the session member UaClient_Session::EndpointDescription that was provided by a server or stored in configuration. The available endpoints can be requested through UaClient_Discovery_BeginGetEndpoints.

The SDK is managing the connection to the server by

  • Monitoring the status of the session with read calls to the server status variable. The frequency of the read calls can be controlled with the setting UaClient_Session::WatchdogTime
  • Reconnect on TCP/IP or SecureChannel level if the connection was lost
  • Recreation of the session if the session timed out or the server was restarted
  • The callback function UaClient_Session_ConnectionStatusChanged_CB provides information about the current status of the session
OpcUa_StatusCode UaClient_Session_BeginDeleteNodes ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfNodesToDelete,
const OpcUa_DeleteNodesItem a_pNodesToDelete,
UaClient_Session_DeleteNodes_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously deletes nodes from the OPC UA server’s address space.

If any of the Nodes deleted by an invocation of this service is the target node of a reference, those references are left unresolved based on the deleteTargetReferences parameter.

If any of the nodes deleted by an invocation of this service is being monitored, a notification containing the status code Bad_NodeIdUnknown is sent to the monitoring Client indicating that the node has been deleted.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfNodesToDeleteNumber of elements in a_pNodesToDelete.
a_pNodesToDeleteList of nodes to delete.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginDeleteReferences ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfReferencesToDelete,
const OpcUa_DeleteReferencesItem a_pReferencesToDelete,
UaClient_Session_DeleteReferences_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously deletes references from the OPC UA server’s address space.

If any of the references deleted by an invocation of this service are contained in a view, then the ViewVersion property is updated if this property is supported.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfReferencesToDeleteNumber of elements in a_pReferencesToDelete.
a_pReferencesToDeleteList of references to delete.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginDisconnect ( UaClient_Session a_pSession,
OpcUa_Boolean  a_bDeleteSubscriptions 
)

Disconnect client application from OPC UA server.

Calling this function closes the session and the secure channel connection to the server. The subscriptions assigned to the session are also deleted if the flag bDeleteSubscriptions is set to OpcUa_True. If subscriptions should be transferred to other sessions, the flag bDeleteSubscriptions must be set to OpcUa_False.

The disconnect is completed and the status is changed to disconnected even if the CloseSession service fails.

After UaClient_Session_BeginDisconnect is called, no more callbacks will be sent for this UaClient_Session object and related UaClient_Subscription objects. The disconnect waits until all outstanding service calls are finished and results are returned. This includes any asynchronous service calls and outstanding callbacks to the client application including the ones for related UaClient_Subscription objects.

OpcUa_StatusCode UaClient_Session_BeginHistoryRead ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
const OpcUa_ExtensionObject *  a_pHistoryReadDetails,
OpcUa_TimestampsToReturn  a_TimestampsToReturn,
OpcUa_Boolean  a_ReleaseContinuationPoints,
OpcUa_Int32  a_NoOfNodesToRead,
const OpcUa_HistoryReadValueId a_pNodesToRead,
UaClient_Session_HistoryRead_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously reads historical values or events of one or more nodes.

For constructed attribute values whose elements are indexed, such as an array, this service allows Clients to read the entire set of indexed values as a composite, to read individual elements or to read ranges of elements of the composite. Servers may make historical values available to Clients using this service, although the historical values themselves are not visible in the address space.

The continuationPoint parameter in the HistoryRead is used to mark a point from which to continue the read if not all values could be returned in one response. The value is opaque for the Client and is only used to maintain the state information for the Server to continue from. A Server may use the timestamp of the last returned data item if the timestamp is unique. This can reduce the need in the Server to store state information for the continuation point.

In some cases it may take longer than the Client timeout hint to read the data for all nodes to read. Then the Server may return zero results with a continuation point for the affected nodes before the timeout expires. That allows the Server to resume the data acquisition on the next Client read call.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_pHistoryReadDetailsThe details define the types of history reads that can be performed.
The HistoryReadDetails parameter type is an extensible parameter. It may contain one of the following: OpcUa_ReadEventDetails, OpcUa_ReadRawModifiedDetails, OpcUa_ReadProcessedDetails, OpcUa_ReadAtTimeDetails.
a_TimestampsToReturnAn enumeration that specifies the timestamps to be returned for each requested variable value attribute.
Specifying a TimestampsToReturn of NEITHER is not valid. A Server shall return a Bad_InvalidTimestampArgument StatusCode in this case.
a_ReleaseContinuationPointsA Boolean parameter indicating whether to reset passed continuation points.
It has the following values:
TRUE
passed continuation points shall be reset to free resources in the Server.
FALSE
passed continuation points shall be used to get the next set of historical information.

A Client shall always use the continuation point returned by a HistoryRead response to free the resources for the continuation point in the Server. If the Client does not want to get the next set of historical information, HistoryRead shall be called with this parameter set to TRUE.
a_NoOfNodesToReadNumber of elements in a_pNodesToRead.
a_pNodesToReadcontains the list of items upon which the historical retrieval is to be performed.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginHistoryUpdate ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfHistoryUpdateDetails,
const OpcUa_ExtensionObject *  a_pHistoryUpdateDetails,
UaClient_Session_HistoryUpdate_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously updates historical values or events of one or more nodes.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfHistoryUpdateDetailsNumber of elements in a_pHistoryUpdateDetails.
a_pHistoryUpdateDetailsSpecifies the types of history updates that can be performed.
The HistoryUpdateDetails is an extensible parameter. It may contain one of the following: OpcUa_UpdateDataDetails, OpcUa_UpdateStructureDataDetails , OpcUa_UpdateEventDetails, OpcUa_DeleteRawModifiedDetails, OpcUa_DeleteAtTimeDetails, OpcUa_DeleteEventDetails.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginQueryFirst ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
const OpcUa_ViewDescription a_pView,
OpcUa_Int32  a_NoOfNodeTypes,
const OpcUa_NodeTypeDescription a_pNodeTypes,
const OpcUa_ContentFilter a_pFilter,
OpcUa_UInt32  a_MaxDataSetsToReturn,
OpcUa_UInt32  a_MaxReferencesToReturn,
UaClient_Session_QueryFirst_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously queries the address space.

This Service is used to issue a query request to the Server. The complexity of the query can range from very simple to highly sophisticated. The query can simply request data from instances of a TypeDefinitionNode or TypeDefinitionNode subject to restrictions specified by the filter. On the other hand, the query can request data from instances of related node types by specifying a RelativePath from an originating TypeDefinitionNode.In the filter, a separate set of paths can be constructed for limiting the instances that supply data. A filtering path can include multiple RelatedTo operators to define a multi-hop path between source instances and target instances.

The Client provides an array of NodeTypeDescription which specify the NodeId of a TypeDefinitionNode and selects what attributes are to be returned in the response. A client can also provide a set of RelativePaths through the type system starting from an originating TypeDefinitionNode. Using these paths, the client selects a set of attributes from nodes that are related to instances of the originating TypeDefinitionNode. Additionally, the Client can request the Server return instances of subtypes of TypeDefinitionNodes. If a selected Attribute does not exist in a TypeDefinitionNode but does exist in a subtype, it is assumed to have a null value in the TypeDefinitionNode in question. Therefore, this does not constitute an error condition and a null value is returned for the Attribute.

The Client can use the filter parameter to limit the result set by restricting attributes and properties to certain values. Another way the Client can use a filter to limit the result set is by specifying how instances should be related, using RelatedTo operators. In this case, if an instance at the top of the RelatedTo path cannot be followed to the bottom of the path via specified hops, no QueryDataSets are returned for the starting instance or any of the intermediate instances.

When querying for related instances in the RelativePath, the Client can optionally ask for references. A reference is requested via a RelativePath that only includes a ReferenceType. If all references are desired than the root ReferenceType is listed. These references are returned as part of the QueryDataSets.

Query services allow a special handling of the targetName field in the RelativePath. In several query use cases, a type NodeId is necessary in the path instead of a QualifiedName. Therefore, the Client is allowed to specify a NodeId in the QualifiedName. This is done by setting the namespaceIndex of the targetName to zero and the name part of the targetName to the XML representation of the NodeId. When matching instances are returned as the target node, the target node shall be an instance of the specified type or subtype of the specified type.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_pViewSpecifies a view and temporal context to a Server.
a_NoOfNodeTypesNumber of elements in a_pNodeTypes.
a_pNodeTypesThe node type description.
a_pFilterResulting nodes shall be limited to the nodes matching the criteria defined by the filter.
Resulting nodes shall be limited to the nodes matching the criteria defined by the filter.
a_MaxDataSetsToReturnThe number of QueryDataSets that the Client wants the Server to return in the response and on each subsequent continuation call response.
The Server is allowed to further limit the response, but shall not exceed this limit. A value of 0 indicates that the Client is imposing no limitation.
a_MaxReferencesToReturnThe number of references that the Client wants the Server to return in the response for each QueryDataSet and on each subsequent continuation call response.
The Server is allowed to further limit the response, but shall not exceed this limit.
A value of 0 indicates that the Client is imposing no limitation.
For example: In a result, 4 Nodes are being returned, but each has 100 References. If this limit was set to 50, only the first 50 References for each Node would be returned on the initial call, and a continuation point would be set indicating additional data.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginQueryNext ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Boolean  a_ReleaseContinuationPoint,
const OpcUa_ByteString *  a_pContinuationPoint,
UaClient_Session_QueryNext_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

This Service is used to request the next set of QueryFirst or QueryNext response information that is too large to be sent in a single response.

“Too large” in this context means that the Server is not able to return a larger response or that the number of QueryDataSets to return exceeds the maximum number of QueryDataSets to return that was specified by the Client in the original request. The QueryNext shall be submitted on the same session that was used to submit the QueryFirst or QueryNext that is being continued.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_ReleaseContinuationPointA boolean parameter indicating whether continuation points should be released.
It has the following values:
TRUE
passed ContinuationPoints shall be reset to free resources in the Server.
FALSE
passed ContinuationPoints shall be used to get the next set of QueryDataSEts.

A Client shall always use the continuation point returned by a QueryFirst or QueryNext response to free the resources for the continuation point in the Server. If the Client does not want to get the next set of Query information, QueryNext shall be called with this parameter set to TRUE.
If the parameter is set to TRUE, all array parameters in the response shall contain empty arrays.
a_pContinuationPointServer defined opaque value that represents the continuation point.
The value of the continuation point was returned to the Client in a previous QueryFirst or QueryNext response. This value is used to identify the previously processed QueryFirst or QueryNext request that is being continued, and the point in the result set from which the browse response is to continue.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginRead ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Double  a_MaxAge,
OpcUa_TimestampsToReturn  a_TimestampsToReturn,
OpcUa_Int32  a_NoOfNodesToRead,
const OpcUa_ReadValueId a_pNodesToRead,
UaClient_Session_Read_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Reads values and attributes asynchronously from OPC server.

The Read Service is used to read one or more attributes of one or more nodes. It allows also reading subsets or single elements of array values and to define a valid age of values to be returned to reduce the need for device reads. Like most other services, the read is optimized for bulk read operations and not for reading single Attribute values. Typically all Node Attributes are readable. For the Value Attribute the Read rights are indicated by the AccessLevel and UserAccessLevel Attribute of the Variable.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_MaxAgeMaximum age of the value to be read in milliseconds.
The age of the value is based on the difference between the ServerTimestamp and the time when the Server starts processing the request. For example if the Client specifies a maxAge of 500 milliseconds and it takes 100 milliseconds until the Server starts processing the request, the age of the returned value could be 600 milliseconds prior to the time it was requested.
If the Server has one or more values of an Attribute that are within the maximum age, it can return any one of the values or it can read a new value from the data source. The number of values of an Attribute that a Server has depends on the number of MonitoredItems that are defined for the Attribute. In any case, the Client can make no assumption about which copy of the data will be returned.
If the Server does not have a value that is within the maximum age, it shall attempt to read a new value from the data source.
If the Server cannot meet the requested maxAge, it returns its "best effort" value rather than rejecting the request. This may occur when the time it takes the Server to process and return the new data value after it has been accessed is greater than the specified maximum age.
If maxAge is set to 0, the Server shall attempt to read a new value from the data source.
If maxAge is set to the max Int32 value or greater, the Server shall attempt to get a cached value.
Negative values are invalid for maxAge.
a_TimestampsToReturnAn enumeration that specifies the Timestamps to be returned for each requested Variable Value Attribute. See OpcUa_TimestampsToReturn for more information.
a_NoOfNodesToReadNumber of elements in a_pNodesToRead.
a_pNodesToReadList of Nodes and their Attributes to read.
For each entry in this list, a StatusCode is returned, and if it indicates success, the Attribute Value is also returned.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginRegisterNodes ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfNodesToRegister,
const OpcUa_NodeId *  a_pNodesToRegister,
UaClient_Session_RegisterNodes_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

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.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfNodesToRegisterNumber of elements in a_pNodesToRegister.
a_pNodesToRegisterA list of NodeIds to register that the client has retrieved through browsing, querying or in some other manner.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginTranslateBrowsePathsToNodeIds ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfBrowsePaths,
const OpcUa_BrowsePath a_pBrowsePaths,
UaClient_Session_TranslateBrowsePathsToNodeIds_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously translates a browse path to a NodeId.

This service is used to request that the Server translates one or more browse paths to NodeIds. Each browse path is constructed of a starting node and a RelativePath. The specified starting Node identifies the node from which the RelativePath is based. The RelativePath contains a sequence of ReferenceTypes and BrowseNames.

One purpose of this service is to allow programming against type definitions. Since BrowseNames shall be unique in the context of type definitions, a Client may create a browse path that is valid for a type definition and use this path on instances of the type. For example, an ObjectType “Boiler” may have a “HeatSensor” Variable as InstanceDeclaration. A graphical element programmed against the “Boiler” may need to display the Value of the “HeatSensor”. If the graphical element would be called on “Boiler1”, an instance of “Boiler”, it would need to call this Service specifying the NodeId of “Boiler1” as starting node and the BrowseName of the “HeatSensor” as browse path. The Service would return the NodeId of the “HeatSensor” of “Boiler1” and the graphical element could subscribe to its Value attribute.

If a node has multiple targets with the same BrowseName, the Server shall return a list of NodeIds. However, since one of the main purposes of this service is to support programming against type definitions, the NodeId of the node based on the type definition of the starting node is returned as the first NodeId in the list.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfBrowsePathsNumber of elements in a_pBrowsePaths.
a_pBrowsePathsA list of browse paths for which NodeIds are being requested.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginUnregisterNodes ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfNodesToUnregister,
const OpcUa_NodeId *  a_pNodesToUnregister,
UaClient_Session_UnregisterNodes_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously unregisters nodes to delete shortcuts in the server.

This Service is used to unregister NodeIds that have been obtained via the RegisterNodes service.

UnregisterNodes does not validate the NodeIds from the request. Servers shall simply unregister NodeIds that are known as registered NodeIds. Any NodeIds that are in the list, but are not registered NodeIds are simply ignored.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfNodesToUnregisterNumber of elements in a_pNodesToUnregister.
a_pNodesToUnregisterA list of NodeIds that have been obtained via the RegisterNodes service.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_BeginWrite ( UaClient_Session a_pSession,
UaClient_ServiceSettings a_pServiceSettings,
OpcUa_Int32  a_NoOfNodesToWrite,
const OpcUa_WriteValue a_pNodesToWrite,
UaClient_Session_Write_CB  a_pfCallback,
OpcUa_Void *  a_pUserData 
)

Asynchronously writes variable values to an OPC UA Server.

This service is used to write values to one or more attributes of one or more Nodes. For constructed attribute values whose elements are indexed, such as an array, this service allows Clients to write the entire set of indexed values as a composite, to write individual elements or to write ranges of elements of the composite.

The values are written to the data source, such as a device, and the service does not return until it writes the values or determines that the value cannot be written. In certain cases, the Server will successfully write to an intermediate system or Server, and will not know whether the data source was updated properly. In these cases, the Server should report a success code that indicates that the write was not verified. In the cases where the Server is able to verify that it has successfully written to the data source, it reports an unconditional success.

The order the operations are processed in the Server is not defined and depends on the different data sources and the internal Server logic. If an attribute and node combination is contained in more than one operation, the order of the processing is undefined. If a Client requires sequential processing, the Client needs separate service calls.

It is possible that the Server may successfully write some attributes, but not others. Rollback is the responsibility of the Client.

If a Server allows writing of attributes with the DataType LocalizedText, the Client can add or overwrite the text for a locale by writing the text with the associated LocaleId. Writing a null string for the text for a locale shall delete the String for that locale. Writing a null string for the locale and a non-null string for the text is setting the text for an invariant locale. Writing a null string for the text and a null string for the locale shall delete the entries for all locales. If a Client attempts to write a locale that is either syntactically invalid or not supported, the Server returns Bad_LocaleNotSupported.

Parameters
a_pSessionThe session to use for the service invocation.
a_pServiceSettingsThe general service settings like timeout. See UaClient_ServiceSettings for details.
a_NoOfNodesToWriteNumber of elements in a_pNodesToWrite.
a_pNodesToWriteList of Nodes and their Attributes to write.
a_pfCallbackThe callback function to use when the async call completes.
a_pUserDataThe user data that is passed to the callback function.
Returns
OpcUa_Good if the invocation succeeded, an appropriate error code otherwise.
OpcUa_StatusCode UaClient_Session_Create ( const UaClient_Session_Callback a_pSessionCallback,
UaClient_Session **  a_ppSession 
)

Create a session and initialize it with default values.

OpcUa_StatusCode UaClient_Session_Delete ( UaClient_Session **  a_ppSession)

Delete a session.

OpcUa_StatusCode UaClient_Session_VerifyServerCertificate ( UaClient_Session a_pSession)

This function verifies if the server certificate is trusted by the client.

Returns
Status code.