open62541 1.3.12
Open source implementation of OPC UA
Loading...
Searching...
No Matches
client_highlevel.h
Go to the documentation of this file.
1/** This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 *
5 * Copyright 2015-2018 (c) Fraunhofer IOSB (Author: Julius Pfrommer)
6 * Copyright 2015 (c) Oleksiy Vasylyev
7 * Copyright 2017 (c) Florian Palm
8 * Copyright 2016 (c) Chris Iatrou
9 * Copyright 2017 (c) Stefan Profanter, fortiss GmbH
10 * Copyright 2017 (c) Frank Meerkötter
11 * Copyright 2018 (c) Fabian Arndt
12 * Copyright 2018 (c) Peter Rustler, basyskom GmbH
13 */
14
15#ifndef UA_CLIENT_HIGHLEVEL_H_
16#define UA_CLIENT_HIGHLEVEL_H_
17
18#include <open62541/client.h>
19
21
22
23
24/** Don't call this function, use the typed versions */
27 UA_AttributeId attributeId, void *out,
28 const UA_DataType *outDataType);
29
30static UA_StatusCode
31UA_Client_readNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId,
32 UA_NodeId *outNodeId) {
34 outNodeId, &UA_TYPES[UA_TYPES_NODEID]);
35}
36
37static UA_StatusCode
38UA_Client_readNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId,
39 UA_NodeClass *outNodeClass) {
41 outNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]);
42}
43
44static UA_StatusCode
45UA_Client_readBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
46 UA_QualifiedName *outBrowseName) {
48 outBrowseName,
50}
51
52static UA_StatusCode
53UA_Client_readDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId,
54 UA_LocalizedText *outDisplayName) {
56 outDisplayName,
58}
59
60static UA_StatusCode
61UA_Client_readDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId,
62 UA_LocalizedText *outDescription) {
64 outDescription,
66}
67
68static UA_StatusCode
69UA_Client_readWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
70 UA_UInt32 *outWriteMask) {
72 outWriteMask, &UA_TYPES[UA_TYPES_UINT32]);
73}
74
75static UA_StatusCode
76UA_Client_readUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
77 UA_UInt32 *outUserWriteMask) {
78 return __UA_Client_readAttribute(client, &nodeId,
80 outUserWriteMask,
82}
83
84static UA_StatusCode
85UA_Client_readIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId,
86 UA_Boolean *outIsAbstract) {
88 outIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]);
89}
90
91static UA_StatusCode
92UA_Client_readSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId,
93 UA_Boolean *outSymmetric) {
95 outSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]);
96}
97
98static UA_StatusCode
99UA_Client_readInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
100 UA_LocalizedText *outInverseName) {
102 outInverseName,
104}
105
106static UA_StatusCode
107UA_Client_readContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId,
108 UA_Boolean *outContainsNoLoops) {
109 return __UA_Client_readAttribute(client, &nodeId,
111 outContainsNoLoops,
113}
114
115static UA_StatusCode
116UA_Client_readEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId,
117 UA_Byte *outEventNotifier) {
119 outEventNotifier, &UA_TYPES[UA_TYPES_BYTE]);
120}
121
122static UA_StatusCode
123UA_Client_readValueAttribute(UA_Client *client, const UA_NodeId nodeId,
124 UA_Variant *outValue) {
125 return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE,
126 outValue, &UA_TYPES[UA_TYPES_VARIANT]);
127}
128
129static UA_StatusCode
130UA_Client_readDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId,
131 UA_NodeId *outDataType) {
133 outDataType, &UA_TYPES[UA_TYPES_NODEID]);
134}
135
136static UA_StatusCode
137UA_Client_readValueRankAttribute(UA_Client *client, const UA_NodeId nodeId,
138 UA_Int32 *outValueRank) {
140 outValueRank, &UA_TYPES[UA_TYPES_INT32]);
141}
142
145 size_t *outArrayDimensionsSize,
146 UA_UInt32 **outArrayDimensions);
147
148static UA_StatusCode
149UA_Client_readAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
150 UA_Byte *outAccessLevel) {
152 outAccessLevel, &UA_TYPES[UA_TYPES_BYTE]);
153}
154
155static UA_StatusCode
156UA_Client_readUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
157 UA_Byte *outUserAccessLevel) {
158 return __UA_Client_readAttribute(client, &nodeId,
160 outUserAccessLevel,
162}
163
164static UA_StatusCode
165UA_Client_readMinimumSamplingIntervalAttribute(UA_Client *client,
166 const UA_NodeId nodeId,
167 UA_Double *outMinSamplingInterval) {
168 return __UA_Client_readAttribute(client, &nodeId,
170 outMinSamplingInterval,
172}
173
174static UA_StatusCode
175UA_Client_readHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId,
176 UA_Boolean *outHistorizing) {
178 outHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]);
179}
180
181static UA_StatusCode
182UA_Client_readExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
183 UA_Boolean *outExecutable) {
185 outExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]);
186}
187
188static UA_StatusCode
189UA_Client_readUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
190 UA_Boolean *outUserExecutable) {
191 return __UA_Client_readAttribute(client, &nodeId,
193 outUserExecutable,
195}
196
197
198
199#ifdef UA_ENABLE_HISTORIZING
202 const UA_NodeId *nodeId,
203 UA_Boolean moreDataAvailable,
204 const UA_ExtensionObject *data, void *callbackContext);
205
206#ifdef UA_ENABLE_EXPERIMENTAL_HISTORIZING
208UA_Client_HistoryRead_events(UA_Client *client, const UA_NodeId *nodeId,
209 const UA_HistoricalIteratorCallback callback,
210 UA_DateTime startTime, UA_DateTime endTime,
211 UA_String indexRange, const UA_EventFilter filter, UA_UInt32 numValuesPerNode,
212 UA_TimestampsToReturn timestampsToReturn, void *callbackContext);
213#endif // UA_ENABLE_EXPERIMENTAL_HISTORIZING
214
217 const UA_HistoricalIteratorCallback callback,
218 UA_DateTime startTime, UA_DateTime endTime,
219 UA_String indexRange, UA_Boolean returnBounds, UA_UInt32 numValuesPerNode,
220 UA_TimestampsToReturn timestampsToReturn, void *callbackContext);
221
222#ifdef UA_ENABLE_EXPERIMENTAL_HISTORIZING
224UA_Client_HistoryRead_modified(UA_Client *client, const UA_NodeId *nodeId,
225 const UA_HistoricalIteratorCallback callback,
226 UA_DateTime startTime, UA_DateTime endTime,
227 UA_String indexRange, UA_Boolean returnBounds, UA_UInt32 numValuesPerNode,
228 UA_TimestampsToReturn timestampsToReturn, void *callbackContext);
229#endif // UA_ENABLE_EXPERIMENTAL_HISTORIZING
230
233 const UA_NodeId *nodeId,
234 UA_DataValue *value);
235
238 const UA_NodeId *nodeId,
239 UA_DataValue *value);
240
243 const UA_NodeId *nodeId,
244 UA_DataValue *value);
245
248 const UA_NodeId *nodeId,
249 UA_DateTime startTimestamp,
250 UA_DateTime endTimestamp);
251
252#endif // UA_ENABLE_HISTORIZING
253
254
255
256/** Don't call this function, use the typed versions */
259 UA_AttributeId attributeId, const void *in,
260 const UA_DataType *inDataType);
261
262static UA_StatusCode
263UA_Client_writeNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId,
264 const UA_NodeId *newNodeId) {
266 newNodeId, &UA_TYPES[UA_TYPES_NODEID]);
267}
268
269static UA_StatusCode
270UA_Client_writeNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId,
271 const UA_NodeClass *newNodeClass) {
273 newNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]);
274}
275
276static UA_StatusCode
277UA_Client_writeBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
278 const UA_QualifiedName *newBrowseName) {
280 newBrowseName,
282}
283
284static UA_StatusCode
285UA_Client_writeDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId,
286 const UA_LocalizedText *newDisplayName) {
288 newDisplayName,
290}
291
292static UA_StatusCode
293UA_Client_writeDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId,
294 const UA_LocalizedText *newDescription) {
296 newDescription,
298}
299
300static UA_StatusCode
301UA_Client_writeWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
302 const UA_UInt32 *newWriteMask) {
304 newWriteMask, &UA_TYPES[UA_TYPES_UINT32]);
305}
306
307static UA_StatusCode
308UA_Client_writeUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId,
309 const UA_UInt32 *newUserWriteMask) {
310 return __UA_Client_writeAttribute(client, &nodeId,
312 newUserWriteMask,
314}
315
316static UA_StatusCode
317UA_Client_writeIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId,
318 const UA_Boolean *newIsAbstract) {
320 newIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]);
321}
322
323static UA_StatusCode
324UA_Client_writeSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId,
325 const UA_Boolean *newSymmetric) {
327 newSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]);
328}
329
330static UA_StatusCode
331UA_Client_writeInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId,
332 const UA_LocalizedText *newInverseName) {
334 newInverseName,
336}
337
338static UA_StatusCode
339UA_Client_writeContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId,
340 const UA_Boolean *newContainsNoLoops) {
341 return __UA_Client_writeAttribute(client, &nodeId,
343 newContainsNoLoops,
345}
346
347static UA_StatusCode
348UA_Client_writeEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId,
349 const UA_Byte *newEventNotifier) {
350 return __UA_Client_writeAttribute(client, &nodeId,
352 newEventNotifier,
354}
355
356static UA_StatusCode
357UA_Client_writeValueAttribute(UA_Client *client, const UA_NodeId nodeId,
358 const UA_Variant *newValue) {
359 return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE,
360 newValue, &UA_TYPES[UA_TYPES_VARIANT]);
361}
362
363static UA_StatusCode
364UA_Client_writeDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId,
365 const UA_NodeId *newDataType) {
367 newDataType, &UA_TYPES[UA_TYPES_NODEID]);
368}
369
370static UA_StatusCode
371UA_Client_writeValueRankAttribute(UA_Client *client, const UA_NodeId nodeId,
372 const UA_Int32 *newValueRank) {
374 newValueRank, &UA_TYPES[UA_TYPES_INT32]);
375}
376
379 size_t newArrayDimensionsSize,
380 const UA_UInt32 *newArrayDimensions);
381
382static UA_StatusCode
383UA_Client_writeAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
384 const UA_Byte *newAccessLevel) {
386 newAccessLevel, &UA_TYPES[UA_TYPES_BYTE]);
387}
388
389static UA_StatusCode
390UA_Client_writeUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId,
391 const UA_Byte *newUserAccessLevel) {
392 return __UA_Client_writeAttribute(client, &nodeId,
394 newUserAccessLevel,
396}
397
398static UA_StatusCode
399UA_Client_writeMinimumSamplingIntervalAttribute(UA_Client *client,
400 const UA_NodeId nodeId,
401 const UA_Double *newMinInterval) {
402 return __UA_Client_writeAttribute(client, &nodeId,
404 newMinInterval, &UA_TYPES[UA_TYPES_DOUBLE]);
405}
406
407static UA_StatusCode
408UA_Client_writeHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId,
409 const UA_Boolean *newHistorizing) {
411 newHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]);
412}
413
414static UA_StatusCode
415UA_Client_writeExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
416 const UA_Boolean *newExecutable) {
418 newExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]);
419}
420
421static UA_StatusCode
422UA_Client_writeUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId,
423 const UA_Boolean *newUserExecutable) {
424 return __UA_Client_writeAttribute(client, &nodeId,
426 newUserExecutable,
428}
429
430
431
432#ifdef UA_ENABLE_METHODCALLS
434UA_Client_call(UA_Client *client, const UA_NodeId objectId,
435 const UA_NodeId methodId, size_t inputSize, const UA_Variant *input,
436 size_t *outputSize, UA_Variant **output);
437#endif
438
439
440
442UA_Client_addReference(UA_Client *client, const UA_NodeId sourceNodeId,
443 const UA_NodeId referenceTypeId, UA_Boolean isForward,
444 const UA_String targetServerUri,
445 const UA_ExpandedNodeId targetNodeId,
446 UA_NodeClass targetNodeClass);
447
450 const UA_NodeId referenceTypeId, UA_Boolean isForward,
451 const UA_ExpandedNodeId targetNodeId,
452 UA_Boolean deleteBidirectional);
453
456 UA_Boolean deleteTargetReferences);
457
458/** Protect against redundant definitions for server/client */
459#ifndef UA_DEFAULT_ATTRIBUTES_DEFINED
460#define UA_DEFAULT_ATTRIBUTES_DEFINED
461/** The default for variables is "BaseDataType" for the datatype, -2 for the
462 * valuerank and a read-accesslevel. */
465/** Methods are executable by default */
467/** The remaining attribute definitions are currently all zeroed out */
472UA_EXPORT extern const UA_ViewAttributes UA_ViewAttributes_default;
473#endif
474
475/** Don't call this function, use the typed versions */
478 const UA_NodeId requestedNewNodeId,
479 const UA_NodeId parentNodeId,
480 const UA_NodeId referenceTypeId,
481 const UA_QualifiedName browseName,
482 const UA_NodeId typeDefinition, const UA_NodeAttributes *attr,
483 const UA_DataType *attributeType, UA_NodeId *outNewNodeId);
484
485static UA_StatusCode
486UA_Client_addVariableNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
487 const UA_NodeId parentNodeId,
488 const UA_NodeId referenceTypeId,
489 const UA_QualifiedName browseName,
490 const UA_NodeId typeDefinition,
491 const UA_VariableAttributes attr,
492 UA_NodeId *outNewNodeId) {
493 return __UA_Client_addNode(client, UA_NODECLASS_VARIABLE, requestedNewNodeId,
494 parentNodeId, referenceTypeId, browseName,
495 typeDefinition, (const UA_NodeAttributes*)&attr,
497 outNewNodeId);
498}
499
500static UA_StatusCode
501UA_Client_addVariableTypeNode(UA_Client *client,
502 const UA_NodeId requestedNewNodeId,
503 const UA_NodeId parentNodeId,
504 const UA_NodeId referenceTypeId,
505 const UA_QualifiedName browseName,
506 const UA_VariableTypeAttributes attr,
507 UA_NodeId *outNewNodeId) {
509 requestedNewNodeId,
510 parentNodeId, referenceTypeId, browseName,
511 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
513 outNewNodeId);
514}
515
516static UA_StatusCode
517UA_Client_addObjectNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
518 const UA_NodeId parentNodeId,
519 const UA_NodeId referenceTypeId,
520 const UA_QualifiedName browseName,
521 const UA_NodeId typeDefinition,
522 const UA_ObjectAttributes attr, UA_NodeId *outNewNodeId) {
523 return __UA_Client_addNode(client, UA_NODECLASS_OBJECT, requestedNewNodeId,
524 parentNodeId, referenceTypeId, browseName,
525 typeDefinition, (const UA_NodeAttributes*)&attr,
526 &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES], outNewNodeId);
527}
528
529static UA_StatusCode
530UA_Client_addObjectTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
531 const UA_NodeId parentNodeId,
532 const UA_NodeId referenceTypeId,
533 const UA_QualifiedName browseName,
534 const UA_ObjectTypeAttributes attr,
535 UA_NodeId *outNewNodeId) {
536 return __UA_Client_addNode(client, UA_NODECLASS_OBJECTTYPE, requestedNewNodeId,
537 parentNodeId, referenceTypeId, browseName,
538 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
540 outNewNodeId);
541}
542
543static UA_StatusCode
544UA_Client_addViewNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
545 const UA_NodeId parentNodeId,
546 const UA_NodeId referenceTypeId,
547 const UA_QualifiedName browseName,
548 const UA_ViewAttributes attr,
549 UA_NodeId *outNewNodeId) {
550 return __UA_Client_addNode(client, UA_NODECLASS_VIEW, requestedNewNodeId,
551 parentNodeId, referenceTypeId, browseName,
552 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
553 &UA_TYPES[UA_TYPES_VIEWATTRIBUTES], outNewNodeId);
554}
555
556static UA_StatusCode
557UA_Client_addReferenceTypeNode(UA_Client *client,
558 const UA_NodeId requestedNewNodeId,
559 const UA_NodeId parentNodeId,
560 const UA_NodeId referenceTypeId,
561 const UA_QualifiedName browseName,
563 UA_NodeId *outNewNodeId) {
565 requestedNewNodeId,
566 parentNodeId, referenceTypeId, browseName,
567 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
569 outNewNodeId);
570}
571
572static UA_StatusCode
573UA_Client_addDataTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
574 const UA_NodeId parentNodeId,
575 const UA_NodeId referenceTypeId,
576 const UA_QualifiedName browseName,
577 const UA_DataTypeAttributes attr,
578 UA_NodeId *outNewNodeId) {
579 return __UA_Client_addNode(client, UA_NODECLASS_DATATYPE, requestedNewNodeId,
580 parentNodeId, referenceTypeId, browseName,
581 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
583 outNewNodeId);
584}
585
586static UA_StatusCode
587UA_Client_addMethodNode(UA_Client *client, const UA_NodeId requestedNewNodeId,
588 const UA_NodeId parentNodeId,
589 const UA_NodeId referenceTypeId,
590 const UA_QualifiedName browseName,
591 const UA_MethodAttributes attr,
592 UA_NodeId *outNewNodeId) {
593 return __UA_Client_addNode(client, UA_NODECLASS_METHOD, requestedNewNodeId,
594 parentNodeId, referenceTypeId, browseName,
595 UA_NODEID_NULL, (const UA_NodeAttributes*)&attr,
596 &UA_TYPES[UA_TYPES_METHODATTRIBUTES], outNewNodeId);
597}
598
599
600
601/** Get the namespace-index of a namespace-URI
602 *
603 * @param client The UA_Client struct for this connection
604 * @param namespaceUri The interested namespace URI
605 * @param namespaceIndex The namespace index of the URI. The value is unchanged
606 * in case of an error
607 * @return Indicates whether the operation succeeded or returns an error code */
610 UA_UInt16 *namespaceIndex);
611
612#ifndef HAVE_NODEITER_CALLBACK
613#define HAVE_NODEITER_CALLBACK
614/** Iterate over all nodes referenced by parentNodeId by calling the callback
615 function for each child node */
617 UA_NodeId referenceTypeId, void *handle);
618#endif
619
622 UA_NodeIteratorCallback callback, void *handle);
623
625
626#endif /* UA_CLIENT_HIGHLEVEL_H_ */
UA_EXPORT const UA_ObjectTypeAttributes UA_ObjectTypeAttributes_default
UA_StatusCode 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_EXPORT const UA_VariableAttributes UA_VariableAttributes_default
The default for variables is "BaseDataType" for the datatype, -2 for the valuerank and a read-accessl...
UA_StatusCode(* UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse, UA_NodeId referenceTypeId, void *handle)
Iterate over all nodes referenced by parentNodeId by calling the callback function for each child nod...
UA_StatusCode 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_StatusCode __UA_Client_writeAttribute(UA_Client *client, const UA_NodeId *nodeId, UA_AttributeId attributeId, const void *in, const UA_DataType *inDataType)
Don't call this function, use the typed versions.
_UA_BEGIN_DECLS UA_StatusCode __UA_Client_readAttribute(UA_Client *client, const UA_NodeId *nodeId, UA_AttributeId attributeId, void *out, const UA_DataType *outDataType)
This Source Code Form is subject to the terms of the Mozilla Public License, v.
UA_StatusCode UA_Client_writeArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId, size_t newArrayDimensionsSize, const UA_UInt32 *newArrayDimensions)
UA_EXPORT const UA_DataTypeAttributes UA_DataTypeAttributes_default
UA_StatusCode UA_Client_HistoryUpdate_update(UA_Client *client, const UA_NodeId *nodeId, UA_DataValue *value)
UA_StatusCode UA_Client_forEachChildNodeCall(UA_Client *client, UA_NodeId parentNodeId, UA_NodeIteratorCallback callback, void *handle)
UA_StatusCode UA_Client_HistoryUpdate_insert(UA_Client *client, const UA_NodeId *nodeId, UA_DataValue *value)
UA_EXPORT const UA_ViewAttributes UA_ViewAttributes_default
UA_StatusCode UA_Client_HistoryRead_raw(UA_Client *client, const UA_NodeId *nodeId, const UA_HistoricalIteratorCallback callback, UA_DateTime startTime, UA_DateTime endTime, UA_String indexRange, UA_Boolean returnBounds, UA_UInt32 numValuesPerNode, UA_TimestampsToReturn timestampsToReturn, void *callbackContext)
UA_StatusCode UA_Client_deleteNode(UA_Client *client, const UA_NodeId nodeId, UA_Boolean deleteTargetReferences)
UA_StatusCode UA_Client_HistoryUpdate_deleteRaw(UA_Client *client, const UA_NodeId *nodeId, UA_DateTime startTimestamp, UA_DateTime endTimestamp)
UA_StatusCode UA_Client_readArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId, size_t *outArrayDimensionsSize, UA_UInt32 **outArrayDimensions)
UA_StatusCode __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)
Don't call this function, use the typed versions.
UA_EXPORT const UA_VariableTypeAttributes UA_VariableTypeAttributes_default
UA_EXPORT const UA_MethodAttributes UA_MethodAttributes_default
Methods are executable by default.
UA_Boolean(* UA_HistoricalIteratorCallback)(UA_Client *client, const UA_NodeId *nodeId, UA_Boolean moreDataAvailable, const UA_ExtensionObject *data, void *callbackContext)
UA_StatusCode UA_Client_HistoryUpdate_replace(UA_Client *client, const UA_NodeId *nodeId, UA_DataValue *value)
UA_EXPORT const UA_ReferenceTypeAttributes UA_ReferenceTypeAttributes_default
UA_StatusCode UA_Client_NamespaceGetIndex(UA_Client *client, UA_String *namespaceUri, UA_UInt16 *namespaceIndex)
Get the namespace-index of a namespace-URI.
UA_EXPORT const UA_ObjectAttributes UA_ObjectAttributes_default
The remaining attribute definitions are currently all zeroed out.
UA_StatusCode 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_AttributeId
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Definition common.h:21
@ UA_ATTRIBUTEID_NODEID
Definition common.h:22
@ UA_ATTRIBUTEID_VALUERANK
Definition common.h:36
@ UA_ATTRIBUTEID_EXECUTABLE
Definition common.h:42
@ UA_ATTRIBUTEID_ACCESSLEVEL
Definition common.h:38
@ UA_ATTRIBUTEID_ISABSTRACT
Definition common.h:29
@ UA_ATTRIBUTEID_SYMMETRIC
Definition common.h:30
@ UA_ATTRIBUTEID_HISTORIZING
Definition common.h:41
@ UA_ATTRIBUTEID_CONTAINSNOLOOPS
Definition common.h:32
@ UA_ATTRIBUTEID_USEREXECUTABLE
Definition common.h:43
@ UA_ATTRIBUTEID_USERWRITEMASK
Definition common.h:28
@ UA_ATTRIBUTEID_DESCRIPTION
Definition common.h:26
@ UA_ATTRIBUTEID_WRITEMASK
Definition common.h:27
@ UA_ATTRIBUTEID_VALUE
Definition common.h:34
@ UA_ATTRIBUTEID_BROWSENAME
Definition common.h:24
@ UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL
Definition common.h:40
@ UA_ATTRIBUTEID_DATATYPE
Definition common.h:35
@ UA_ATTRIBUTEID_INVERSENAME
Definition common.h:31
@ UA_ATTRIBUTEID_USERACCESSLEVEL
Definition common.h:39
@ UA_ATTRIBUTEID_EVENTNOTIFIER
Definition common.h:33
@ UA_ATTRIBUTEID_DISPLAYNAME
Definition common.h:25
@ UA_ATTRIBUTEID_NODECLASS
Definition common.h:23
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
Definition config.h:89
#define _UA_END_DECLS
Definition config.h:96
int32_t UA_Int32
Definition types.h:51
_UA_BEGIN_DECLS typedef bool UA_Boolean
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Definition types.h:26
uint16_t UA_UInt16
Definition types.h:46
UA_EXPORT const UA_NodeId UA_NODEID_NULL
uint32_t UA_UInt32
Definition types.h:56
int64_t UA_DateTime
Definition types.h:144
uint32_t UA_StatusCode
Definition types.h:77
double UA_Double
Definition types.h:74
uint8_t UA_Byte
Definition types.h:36
#define UA_TYPES_NODEID
#define UA_TYPES_VARIANT
#define UA_TYPES_UINT32
#define UA_TYPES_NODECLASS
#define UA_TYPES_VIEWATTRIBUTES
#define UA_TYPES_LOCALIZEDTEXT
#define UA_TYPES_REFERENCETYPEATTRIBUTES
#define UA_TYPES_INT32
#define UA_TYPES_BOOLEAN
#define UA_TYPES_QUALIFIEDNAME
#define UA_TYPES_DOUBLE
#define UA_TYPES_DATATYPEATTRIBUTES
#define UA_TYPES_VARIABLEATTRIBUTES
#define UA_TYPES_OBJECTTYPEATTRIBUTES
#define UA_TYPES_VARIABLETYPEATTRIBUTES
UA_TimestampsToReturn
const UA_DataType UA_TYPES[191]
#define UA_TYPES_OBJECTATTRIBUTES
#define UA_TYPES_BYTE
UA_NodeClass
@ UA_NODECLASS_OBJECTTYPE
@ UA_NODECLASS_REFERENCETYPE
@ UA_NODECLASS_OBJECT
@ UA_NODECLASS_DATATYPE
@ UA_NODECLASS_VIEW
@ UA_NODECLASS_VARIABLETYPE
@ UA_NODECLASS_METHOD
@ UA_NODECLASS_VARIABLE
#define UA_TYPES_METHODATTRIBUTES