|
@@ -47,96 +47,176 @@ extern "C" {
|
|
|
* the regular service to read several attributes at once. */
|
|
|
/* Don't call this function, use the typed versions */
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-__UA_Client_readAttribute(UA_Client *client, const UA_NodeId *nodeId, UA_AttributeId attributeId,
|
|
|
- void *out, const UA_DataType *outDataType);
|
|
|
+__UA_Client_readAttribute(UA_Client *client, const UA_NodeId *nodeId,
|
|
|
+ UA_AttributeId attributeId, void *out,
|
|
|
+ const UA_DataType *outDataType);
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeId *outNodeId) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID, outNodeId, &UA_TYPES[UA_TYPES_NODEID]); }
|
|
|
+UA_Client_readNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_NodeId *outNodeId) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID,
|
|
|
+ outNodeId, &UA_TYPES[UA_TYPES_NODEID]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeClass *outNodeClass) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS, outNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]); }
|
|
|
+UA_Client_readNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_NodeClass *outNodeClass) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS,
|
|
|
+ outNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_QualifiedName *outBrowseName) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME, outBrowseName, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); }
|
|
|
+UA_Client_readBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_QualifiedName *outBrowseName) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
|
+ outBrowseName,
|
|
|
+ &UA_TYPES[UA_TYPES_QUALIFIEDNAME]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outDisplayName) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, outDisplayName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_readDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_LocalizedText *outDisplayName) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
|
+ outDisplayName,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outDescription) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, outDescription, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_readDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_LocalizedText *outDescription) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
|
+ outDescription,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outWriteMask) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK, outWriteMask, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_readWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_UInt32 *outWriteMask) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
|
+ outWriteMask, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outUserWriteMask) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USERWRITEMASK, outUserWriteMask, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_readUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_UInt32 *outUserWriteMask) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USERWRITEMASK,
|
|
|
+ outUserWriteMask,
|
|
|
+ &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outIsAbstract) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, outIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outIsAbstract) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
|
+ outIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outSymmetric) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC, outSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outSymmetric) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC,
|
|
|
+ outSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outInverseName) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME, outInverseName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_readInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_LocalizedText *outInverseName) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
|
+ outInverseName,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outContainsNoLoops) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS, outContainsNoLoops, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outContainsNoLoops) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_CONTAINSNOLOOPS,
|
|
|
+ outContainsNoLoops,
|
|
|
+ &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Byte *outEventNotifier) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, outEventNotifier, &UA_TYPES[UA_TYPES_BYTE]); }
|
|
|
+UA_Client_readEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Byte *outEventNotifier) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
|
+ outEventNotifier, &UA_TYPES[UA_TYPES_BYTE]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readValueAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Variant *outValue) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE, outValue, &UA_TYPES[UA_TYPES_VARIANT]); }
|
|
|
+UA_Client_readValueAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Variant *outValue) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE,
|
|
|
+ outValue, &UA_TYPES[UA_TYPES_VARIANT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeId *outDataType) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE, outDataType, &UA_TYPES[UA_TYPES_NODEID]); }
|
|
|
+UA_Client_readDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_NodeId *outDataType) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
|
+ outDataType, &UA_TYPES[UA_TYPES_NODEID]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readValueRankAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Int32 *outValueRank) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK, outValueRank, &UA_TYPES[UA_TYPES_INT32]); }
|
|
|
+UA_Client_readValueRankAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Int32 *outValueRank) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
|
+ outValueRank, &UA_TYPES[UA_TYPES_INT32]);
|
|
|
+}
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
UA_Client_readArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
- UA_Int32 **outArrayDimensions, size_t *outArrayDimensionsSize);
|
|
|
+ UA_Int32 **outArrayDimensions,
|
|
|
+ size_t *outArrayDimensionsSize);
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outAccessLevel) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, outAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_readAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_UInt32 *outAccessLevel) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
|
+ outAccessLevel, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outUserAccessLevel) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USERACCESSLEVEL, outUserAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_readUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_UInt32 *outUserAccessLevel) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USERACCESSLEVEL,
|
|
|
+ outUserAccessLevel,
|
|
|
+ &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readMinimumSamplingIntervalAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Double *outMinimumSamplingInterval) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, outMinimumSamplingInterval, &UA_TYPES[UA_TYPES_DOUBLE]); }
|
|
|
+UA_Client_readMinimumSamplingIntervalAttribute(UA_Client *client,
|
|
|
+ const UA_NodeId nodeId,
|
|
|
+ UA_Double *outMinSamplingInterval) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL,
|
|
|
+ outMinSamplingInterval,
|
|
|
+ &UA_TYPES[UA_TYPES_DOUBLE]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outHistorizing) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING, outHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outHistorizing) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING,
|
|
|
+ outHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outExecutable) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, outExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outExecutable) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
|
+ outExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_readUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outUserExecutable) {
|
|
|
- return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USEREXECUTABLE, outUserExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_readUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean *outUserExecutable) {
|
|
|
+ return __UA_Client_readAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USEREXECUTABLE,
|
|
|
+ outUserExecutable,
|
|
|
+ &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* Write Attributes
|
|
@@ -150,99 +230,180 @@ __UA_Client_writeAttribute(UA_Client *client, const UA_NodeId *nodeId,
|
|
|
const UA_DataType *inDataType);
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeId *newNodeId) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID, newNodeId, &UA_TYPES[UA_TYPES_NODEID]); }
|
|
|
+UA_Client_writeNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_NodeId *newNodeId) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID,
|
|
|
+ newNodeId, &UA_TYPES[UA_TYPES_NODEID]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeClass *newNodeClass) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS, newNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]); }
|
|
|
+UA_Client_writeNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_NodeClass *newNodeClass) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS,
|
|
|
+ newNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_QualifiedName *newBrowseName) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME, newBrowseName, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); }
|
|
|
+UA_Client_writeBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_QualifiedName *newBrowseName) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
|
+ newBrowseName,
|
|
|
+ &UA_TYPES[UA_TYPES_QUALIFIEDNAME]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newDisplayName) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, newDisplayName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_writeDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_LocalizedText *newDisplayName) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
|
+ newDisplayName,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newDescription) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, newDescription, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_writeDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_LocalizedText *newDescription) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
|
+ newDescription,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newWriteMask) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK, newWriteMask, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_writeWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_UInt32 *newWriteMask) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
|
+ newWriteMask, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newUserWriteMask) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USERWRITEMASK, newUserWriteMask, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_writeUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_UInt32 *newUserWriteMask) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USERWRITEMASK,
|
|
|
+ newUserWriteMask,
|
|
|
+ &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newIsAbstract) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, newIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newIsAbstract) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
|
+ newIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newSymmetric) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC, newSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newSymmetric) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC,
|
|
|
+ newSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newInverseName) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME, newInverseName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); }
|
|
|
+UA_Client_writeInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_LocalizedText *newInverseName) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
|
+ newInverseName,
|
|
|
+ &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newContainsNoLoops) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS, newContainsNoLoops, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newContainsNoLoops) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_CONTAINSNOLOOPS,
|
|
|
+ newContainsNoLoops,
|
|
|
+ &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Byte *newEventNotifier) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, newEventNotifier, &UA_TYPES[UA_TYPES_BYTE]); }
|
|
|
+UA_Client_writeEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Byte *newEventNotifier) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
|
+ newEventNotifier,
|
|
|
+ &UA_TYPES[UA_TYPES_BYTE]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeValueAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Variant *newValue) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE, newValue, &UA_TYPES[UA_TYPES_VARIANT]); }
|
|
|
+UA_Client_writeValueAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Variant *newValue) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE,
|
|
|
+ newValue, &UA_TYPES[UA_TYPES_VARIANT]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeId *newDataType) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE, newDataType, &UA_TYPES[UA_TYPES_NODEID]); }
|
|
|
+UA_Client_writeDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_NodeId *newDataType) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
|
+ newDataType, &UA_TYPES[UA_TYPES_NODEID]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeValueRankAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Int32 *newValueRank) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK, newValueRank, &UA_TYPES[UA_TYPES_INT32]); }
|
|
|
+UA_Client_writeValueRankAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Int32 *newValueRank) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
|
+ newValueRank, &UA_TYPES[UA_TYPES_INT32]);
|
|
|
+}
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
UA_Client_writeArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
- const UA_Int32 *newArrayDimensions, size_t newArrayDimensionsSize);
|
|
|
+ const UA_Int32 *newArrayDimensions,
|
|
|
+ size_t newArrayDimensionsSize);
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newAccessLevel) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, newAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_writeAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_UInt32 *newAccessLevel) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
|
+ newAccessLevel, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newUserAccessLevel) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USERACCESSLEVEL, newUserAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); }
|
|
|
+UA_Client_writeUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_UInt32 *newUserAccessLevel) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USERACCESSLEVEL,
|
|
|
+ newUserAccessLevel,
|
|
|
+ &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeMinimumSamplingIntervalAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Double *newMinimumSamplingInterval) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, newMinimumSamplingInterval, &UA_TYPES[UA_TYPES_DOUBLE]); }
|
|
|
+UA_Client_writeMinimumSamplingIntervalAttribute(UA_Client *client,
|
|
|
+ const UA_NodeId nodeId,
|
|
|
+ const UA_Double *newMinInterval) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL,
|
|
|
+ newMinInterval, &UA_TYPES[UA_TYPES_DOUBLE]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newHistorizing) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING, newHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newHistorizing) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING,
|
|
|
+ newHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newExecutable) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, newExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newExecutable) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
|
+ newExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
-UA_Client_writeUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newUserExecutable) {
|
|
|
- return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USEREXECUTABLE, newUserExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); }
|
|
|
+UA_Client_writeUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ const UA_Boolean *newUserExecutable) {
|
|
|
+ return __UA_Client_writeAttribute(client, &nodeId,
|
|
|
+ UA_ATTRIBUTEID_USEREXECUTABLE,
|
|
|
+ newUserExecutable,
|
|
|
+ &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* Method Calling
|
|
|
* ============== */
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_call(UA_Client *client, const UA_NodeId objectId, const UA_NodeId methodId,
|
|
|
- size_t inputSize, const UA_Variant *input, size_t *outputSize, UA_Variant **output);
|
|
|
+UA_Client_call(UA_Client *client, const UA_NodeId objectId,
|
|
|
+ const UA_NodeId methodId, size_t inputSize, const UA_Variant *input,
|
|
|
+ size_t *outputSize, UA_Variant **output);
|
|
|
|
|
|
/**
|
|
|
* Node Management
|
|
@@ -251,105 +412,145 @@ UA_Client_call(UA_Client *client, const UA_NodeId objectId, const UA_NodeId meth
|
|
|
* See the section on :ref:`server-side node management <addnodes>`.
|
|
|
*/
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_addReference(UA_Client *client, const UA_NodeId sourceNodeId, const UA_NodeId referenceTypeId,
|
|
|
- UA_Boolean isForward, const UA_String targetServerUri,
|
|
|
- const UA_ExpandedNodeId targetNodeId, UA_NodeClass targetNodeClass);
|
|
|
+UA_Client_addReference(UA_Client *client, const UA_NodeId sourceNodeId,
|
|
|
+ const UA_NodeId referenceTypeId, UA_Boolean isForward,
|
|
|
+ const UA_String targetServerUri,
|
|
|
+ const UA_ExpandedNodeId targetNodeId,
|
|
|
+ UA_NodeClass targetNodeClass);
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_deleteReference(UA_Client *client, const UA_NodeId sourceNodeId, const UA_NodeId referenceTypeId,
|
|
|
- UA_Boolean isForward, const UA_ExpandedNodeId targetNodeId,
|
|
|
+UA_Client_deleteReference(UA_Client *client, const UA_NodeId sourceNodeId,
|
|
|
+ const UA_NodeId referenceTypeId, UA_Boolean isForward,
|
|
|
+ const UA_ExpandedNodeId targetNodeId,
|
|
|
UA_Boolean deleteBidirectional);
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_deleteNode(UA_Client *client, const UA_NodeId nodeId, UA_Boolean deleteTargetReferences);
|
|
|
+UA_Client_deleteNode(UA_Client *client, const UA_NodeId nodeId,
|
|
|
+ UA_Boolean deleteTargetReferences);
|
|
|
|
|
|
/* 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 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) {
|
|
|
+ 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,
|
|
|
+ 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); }
|
|
|
+ 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_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); }
|
|
|
+ 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,
|
|
|
+ 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); }
|
|
|
+ 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,
|
|
|
+ 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,
|
|
|
+ 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); }
|
|
|
+ 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,
|
|
|
+ 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); }
|
|
|
+ parentNodeId, referenceTypeId, browseName,
|
|
|
+ UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
|
|
|
+ &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES],
|
|
|
+ outNewNodeId);
|
|
|
+}
|
|
|
|
|
|
static UA_INLINE UA_StatusCode
|
|
|
UA_Client_addMethodNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
|
|
|
- const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
|
- const UA_QualifiedName browseName, const UA_MethodAttributes attr,
|
|
|
- UA_NodeId *outNewNodeId) {
|
|
|
+ const UA_NodeId parentNodeId,
|
|
|
+ const UA_NodeId referenceTypeId,
|
|
|
+ const UA_QualifiedName browseName,
|
|
|
+ const UA_MethodAttributes attr,
|
|
|
+ UA_NodeId *outNewNodeId) {
|
|
|
return __UA_Client_addNode(client, UA_NODECLASS_METHOD, requestedNewNodeId,
|
|
|
- parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL,
|
|
|
- (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_METHODATTRIBUTES],
|
|
|
- outNewNodeId); }
|
|
|
+ parentNodeId, referenceTypeId, browseName,
|
|
|
+ UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
|
|
|
+ &UA_TYPES[UA_TYPES_METHODATTRIBUTES], outNewNodeId);
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* .. _client-subscriptions:
|
|
@@ -382,18 +583,24 @@ UA_Client_Subscriptions_new(UA_Client *client, UA_SubscriptionSettings settings,
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
UA_Client_Subscriptions_remove(UA_Client *client, UA_UInt32 subscriptionId);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_Client_Subscriptions_manuallySendPublishRequest(UA_Client *client);
|
|
|
+UA_StatusCode UA_EXPORT
|
|
|
+UA_Client_Subscriptions_manuallySendPublishRequest(UA_Client *client);
|
|
|
|
|
|
-typedef void (*UA_MonitoredItemHandlingFunction) (UA_UInt32 monId, UA_DataValue *value, void *context);
|
|
|
+typedef void (*UA_MonitoredItemHandlingFunction)(UA_UInt32 monId,
|
|
|
+ UA_DataValue *value,
|
|
|
+ void *context);
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_Subscriptions_addMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
|
|
|
+UA_Client_Subscriptions_addMonitoredItem(UA_Client *client,
|
|
|
+ UA_UInt32 subscriptionId,
|
|
|
UA_NodeId nodeId, UA_UInt32 attributeID,
|
|
|
- UA_MonitoredItemHandlingFunction handlingFunction,
|
|
|
- void *handlingContext, UA_UInt32 *newMonitoredItemId);
|
|
|
+ UA_MonitoredItemHandlingFunction hFunc,
|
|
|
+ void *handlingContext,
|
|
|
+ UA_UInt32 *newMonitoredItemId);
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
|
|
|
+UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client,
|
|
|
+ UA_UInt32 subscriptionId,
|
|
|
UA_UInt32 monitoredItemId);
|
|
|
|
|
|
#endif
|
|
@@ -409,14 +616,17 @@ UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client, UA_UInt32 subscri
|
|
|
* in case of an error
|
|
|
* @return Indicates whether the operation succeeded or returns an error code */
|
|
|
UA_StatusCode UA_EXPORT
|
|
|
-UA_Client_NamespaceGetIndex(UA_Client *client, UA_String *namespaceUri, UA_UInt16 *namespaceIndex);
|
|
|
+UA_Client_NamespaceGetIndex(UA_Client *client, UA_String *namespaceUri,
|
|
|
+ UA_UInt16 *namespaceIndex);
|
|
|
|
|
|
#ifndef HAVE_NODEITER_CALLBACK
|
|
|
#define HAVE_NODEITER_CALLBACK
|
|
|
/* Iterate over all nodes referenced by parentNodeId by calling the callback
|
|
|
function for each child node */
|
|
|
-typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse,
|
|
|
- UA_NodeId referenceTypeId, void *handle);
|
|
|
+typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId,
|
|
|
+ UA_Boolean isInverse,
|
|
|
+ UA_NodeId referenceTypeId,
|
|
|
+ void *handle);
|
|
|
#endif
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|