|
@@ -29,66 +29,138 @@ typedef struct UA_ClientConfig {
|
|
|
} UA_ClientConfig;
|
|
|
|
|
|
extern UA_EXPORT const UA_ClientConfig UA_ClientConfig_standard;
|
|
|
+
|
|
|
UA_Client UA_EXPORT * UA_Client_new(UA_ClientConfig config, UA_Logger logger);
|
|
|
|
|
|
UA_EXPORT void UA_Client_reset(UA_Client* client);
|
|
|
+
|
|
|
UA_EXPORT void UA_Client_init(UA_Client* client, UA_ClientConfig config, UA_Logger logger);
|
|
|
+
|
|
|
UA_EXPORT void UA_Client_deleteMembers(UA_Client* client);
|
|
|
+
|
|
|
UA_EXPORT void UA_Client_delete(UA_Client* client);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_Client_connect(UA_Client *client, UA_ConnectClientConnection connFunc, char *endpointUrl);
|
|
|
+UA_StatusCode UA_EXPORT
|
|
|
+UA_Client_connect(UA_Client *client, UA_ConnectClientConnection connFunc, char *endpointUrl);
|
|
|
+
|
|
|
UA_StatusCode UA_EXPORT UA_Client_disconnect(UA_Client *client);
|
|
|
|
|
|
UA_StatusCode UA_EXPORT UA_Client_renewSecureChannel(UA_Client *client);
|
|
|
|
|
|
/* Attribute Service Set */
|
|
|
UA_ReadResponse UA_EXPORT UA_Client_read(UA_Client *client, UA_ReadRequest *request);
|
|
|
+
|
|
|
UA_WriteResponse UA_EXPORT UA_Client_write(UA_Client *client, UA_WriteRequest *request);
|
|
|
|
|
|
/* View Service Set */
|
|
|
UA_BrowseResponse UA_EXPORT UA_Client_browse(UA_Client *client, UA_BrowseRequest *request);
|
|
|
+
|
|
|
UA_BrowseNextResponse UA_EXPORT UA_Client_browseNext(UA_Client *client, UA_BrowseNextRequest *request);
|
|
|
+
|
|
|
UA_TranslateBrowsePathsToNodeIdsResponse UA_EXPORT
|
|
|
- UA_Client_translateTranslateBrowsePathsToNodeIds(UA_Client *client,
|
|
|
- UA_TranslateBrowsePathsToNodeIdsRequest *request);
|
|
|
+UA_Client_translateTranslateBrowsePathsToNodeIds(UA_Client *client,
|
|
|
+ UA_TranslateBrowsePathsToNodeIdsRequest *request);
|
|
|
|
|
|
/* NodeManagement Service Set */
|
|
|
UA_AddNodesResponse UA_EXPORT UA_Client_addNodes(UA_Client *client, UA_AddNodesRequest *request);
|
|
|
+
|
|
|
UA_AddReferencesResponse UA_EXPORT
|
|
|
- UA_Client_addReferences(UA_Client *client, UA_AddReferencesRequest *request);
|
|
|
+UA_Client_addReferences(UA_Client *client, UA_AddReferencesRequest *request);
|
|
|
|
|
|
UA_DeleteNodesResponse UA_EXPORT UA_Client_deleteNodes(UA_Client *client, UA_DeleteNodesRequest *request);
|
|
|
+
|
|
|
UA_DeleteReferencesResponse UA_EXPORT
|
|
|
- UA_Client_deleteReferences(UA_Client *client, UA_DeleteReferencesRequest *request);
|
|
|
+UA_Client_deleteReferences(UA_Client *client, UA_DeleteReferencesRequest *request);
|
|
|
|
|
|
|
|
|
/* Client-Side Macro/Procy functions */
|
|
|
#ifdef ENABLE_METHODCALLS
|
|
|
UA_CallResponse UA_EXPORT UA_Client_call(UA_Client *client, UA_CallRequest *request);
|
|
|
-UA_StatusCode UA_EXPORT UA_Client_CallServerMethod(UA_Client *client, UA_NodeId objectNodeId, UA_NodeId methodNodeId,
|
|
|
- UA_Int32 inputSize, const UA_Variant *input,
|
|
|
- UA_Int32 *outputSize, UA_Variant **output);
|
|
|
-#endif
|
|
|
-
|
|
|
-UA_AddNodesResponse UA_EXPORT *UA_Client_createObjectNode( UA_Client *client, UA_ExpandedNodeId reqId, UA_QualifiedName browseName, UA_LocalizedText displayName,
|
|
|
- UA_LocalizedText description, UA_ExpandedNodeId parentNodeId, UA_NodeId referenceTypeId,
|
|
|
- UA_UInt32 userWriteMask, UA_UInt32 writeMask, UA_ExpandedNodeId typeDefinition);
|
|
|
-
|
|
|
-UA_AddNodesResponse UA_EXPORT *UA_Client_createVariableNode(UA_Client *client, UA_ExpandedNodeId reqId, UA_QualifiedName browseName, UA_LocalizedText displayName,
|
|
|
- UA_LocalizedText description, UA_ExpandedNodeId parentNodeId, UA_NodeId referenceTypeId,
|
|
|
- UA_UInt32 userWriteMask, UA_UInt32 writeMask, UA_ExpandedNodeId typeDefinition,
|
|
|
- UA_NodeId dataType, UA_Variant *value );
|
|
|
-
|
|
|
-UA_AddNodesResponse UA_EXPORT *UA_Client_createReferenceTypeNode(UA_Client *client, UA_ExpandedNodeId reqId, UA_QualifiedName browseName, UA_LocalizedText displayName,
|
|
|
- UA_LocalizedText description, UA_ExpandedNodeId parentNodeId, UA_NodeId referenceTypeId,
|
|
|
- UA_UInt32 userWriteMask, UA_UInt32 writeMask, UA_ExpandedNodeId typeDefinition,
|
|
|
- UA_LocalizedText inverseName );
|
|
|
-
|
|
|
-UA_AddNodesResponse UA_EXPORT *UA_Client_createObjectTypeNode(UA_Client *client, UA_ExpandedNodeId reqId, UA_QualifiedName browseName, UA_LocalizedText displayName,
|
|
|
- UA_LocalizedText description, UA_ExpandedNodeId parentNodeId, UA_NodeId referenceTypeId,
|
|
|
- UA_UInt32 userWriteMask, UA_UInt32 writeMask, UA_ExpandedNodeId typeDefinition);
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
|
+UA_Client_CallServerMethod(UA_Client *client, UA_NodeId objectNodeId, UA_NodeId methodNodeId,
|
|
|
+ UA_Int32 inputSize, const UA_Variant *input,
|
|
|
+ UA_Int32 *outputSize, UA_Variant **output);
|
|
|
+#endif
|
|
|
|
|
|
+/* Don't call this function, use the typed versions */
|
|
|
+UA_StatusCode UA_EXPORT
|
|
|
+__UA_Client_addNode(UA_Client *client, const UA_NodeClass nodeClass,
|
|
|
+ const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId,
|
|
|
+ const UA_NodeId referenceTypeId, const UA_QualifiedName browseName,
|
|
|
+ const UA_NodeId typeDefinition, const UA_NodeAttributes *attr,
|
|
|
+ const UA_DataType *attributeType, UA_NodeId *outNewNodeId);
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addVariableNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_NodeId typeDefinition,
|
|
|
+ const UA_VariableAttributes attr, UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_VARIABLE, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, typeDefinition,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addVariableTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_VariableTypeAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_VARIABLETYPE, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addObjectNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_NodeId typeDefinition,
|
|
|
+ const UA_ObjectAttributes attr, UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_OBJECT, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, typeDefinition,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addObjectTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_ObjectTypeAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_OBJECTTYPE, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addViewNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_ViewAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_VIEW, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addReferenceTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_ReferenceTypeAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_REFERENCETYPE, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
+static UA_INLINE UA_StatusCode
|
|
|
+UA_Client_addDataTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
+ const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName, const UA_DataTypeAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
+ return __UA_Client_addNode(client, UA_NODECLASS_DATATYPE, requestedNewNodeId,
|
|
|
+ parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
+ (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES],
|
|
|
+ outNewNodeId); }
|
|
|
+
|
|
|
#ifdef ENABLE_SUBSCRIPTIONS
|
|
|
UA_Int32 UA_EXPORT UA_Client_newSubscription(UA_Client *client, UA_Int32 publishInterval);
|
|
|
UA_StatusCode UA_EXPORT UA_Client_removeSubscription(UA_Client *client, UA_UInt32 subscriptionId);
|