open62541 1.3.12
Open source implementation of OPC UA
Loading...
Searching...
No Matches
server_pubsub.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 (c) 2017-2018 Fraunhofer IOSB (Author: Andreas Ebner)
6 * Copyright (c) 2019 Kalycito Infotech Private Limited
7 * Copyright (c) 2021 Fraunhofer IOSB (Author: Jan Hermes)
8 */
9
10#ifndef UA_SERVER_PUBSUB_H
11#define UA_SERVER_PUBSUB_H
12
13#include <open62541/util.h>
16
18
19#ifdef UA_ENABLE_PUBSUB
20
21
22
30
35
50
51#ifdef UA_ENABLE_PUBSUB_MONITORING
52
53typedef enum {
54 UA_PUBSUB_MONITORING_MESSAGE_RECEIVE_TIMEOUT
55 // extend as needed
56} UA_PubSubMonitoringType;
57
58/** PubSub monitoring interface */
59typedef struct {
60 UA_StatusCode (*createMonitoring)(UA_Server *server, UA_NodeId Id,
61 UA_PubSubComponentEnumType eComponentType,
62 UA_PubSubMonitoringType eMonitoringType,
63 void *data, UA_ServerCallback callback);
64 UA_StatusCode (*startMonitoring)(UA_Server *server, UA_NodeId Id,
65 UA_PubSubComponentEnumType eComponentType,
66 UA_PubSubMonitoringType eMonitoringType, void *data);
67 UA_StatusCode (*stopMonitoring)(UA_Server *server, UA_NodeId Id,
68 UA_PubSubComponentEnumType eComponentType,
69 UA_PubSubMonitoringType eMonitoringType, void *data);
70 UA_StatusCode (*updateMonitoringInterval)(UA_Server *server, UA_NodeId Id,
71 UA_PubSubComponentEnumType eComponentType,
72 UA_PubSubMonitoringType eMonitoringType,
73 void *data);
74 UA_StatusCode (*deleteMonitoring)(UA_Server *server, UA_NodeId Id,
75 UA_PubSubComponentEnumType eComponentType,
76 UA_PubSubMonitoringType eMonitoringType, void *data);
77} UA_PubSubMonitoringInterface;
78
79#endif /* UA_ENABLE_PUBSUB_MONITORING */
80
81/** General PubSub configuration */
83 /* PubSub network layer */
86
87 /* Callback for PubSub component state changes: If provided this callback
88 * informs the application about PubSub component state changes. E.g. state
89 * change from operational to error in case of a DataSetReader
90 * MessageReceiveTimeout. The status code provides additional
91 * information. */
92 void (*stateChangeCallback)(UA_NodeId *Id, UA_PubSubState state,
94 /* TODO: maybe status code provides not enough information about the state change */
95
96#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
97 /* PubSub security policies */
98 size_t securityPoliciesSize;
99 UA_PubSubSecurityPolicy *securityPolicies;
100#endif
101
102#ifdef UA_ENABLE_PUBSUB_MONITORING
103 UA_PubSubMonitoringInterface monitoringInterface;
104#endif
105};
106
107
108
109
112 UA_PubSubTransportLayer pubsubTransportLayer);
113
116 const UA_PubSubConnectionConfig *connectionConfig,
117 UA_NodeId *connectionIdentifier);
118
119/** Returns a deep copy of the config */
122 const UA_NodeId connection,
124
125/** Remove Connection, identified by the NodeId. Deletion of Connection
126 * removes all contained WriterGroups and Writers. */
129
130
131
132/** The UA_PUBSUB_DATASET_PUBLISHEDITEMS has currently no additional members and
133 * thus no dedicated config structure. */
134
141
142typedef struct {
143 UA_DataSetMetaDataType metaData;
145 UA_PublishedVariableDataType *variablesToAdd;
147
152
160
161/** Configuration structure for PublishedDataSet */
162typedef struct {
165 union {
166 /* The UA_PUBSUB_DATASET_PUBLISHEDITEMS has currently no additional members
167 * and thus no dedicated config structure.*/
171 } config;
173
174void
176
183
186 const UA_PublishedDataSetConfig *publishedDataSetConfig,
187 UA_NodeId *pdsIdentifier);
188
189/** Returns a deep copy of the config */
193
194/** Returns a deep copy of the DataSetMetaData for an specific PDS */
197 UA_DataSetMetaDataType *metaData);
198
199/** Remove PublishedDataSet, identified by the NodeId. Deletion of PDS removes
200 * all contained and linked PDS Fields. Connected WriterGroups will be also
201 * removed. */
204
205
206
207typedef struct{
208 UA_ConfigurationVersionDataType configurationVersion;
211 UA_PublishedVariableDataType publishParameters;
212
213 /* non std. field */
214 struct {
216 /* If the rtInformationModelNode is set, the nodeid in publishParameter must point
217 * to a node with external data source backend defined
218 * */
220 //TODO -> decide if suppress C++ warnings and use 'UA_DataValue * * const staticValueSource;'
222 } rtValueSource;
223
224
226
231
232typedef struct {
234 union {
235 /* events need other config later */
237 } field;
239
240void
242
243typedef struct {
245 UA_ConfigurationVersionDataType configurationVersion;
247
250 const UA_NodeId publishedDataSet,
251 const UA_DataSetFieldConfig *fieldConfig,
252 UA_NodeId *fieldIdentifier);
253
254/** Returns a deep copy of the config */
257 UA_DataSetFieldConfig *config);
258
261
262
263
264typedef struct {
265 /* User's callback implementation. The user configured base time and timer policy
266 * will be provided as an argument to this callback so that the user can
267 * implement his callback (thread) considering base time and timer policies */
268 UA_StatusCode (*addCustomCallback)(UA_Server *server, UA_NodeId identifier,
269 UA_ServerCallback callback,
270 void *data, UA_Double interval_ms,
271 UA_DateTime *baseTime, UA_TimerPolicy timerPolicy,
272 UA_UInt64 *callbackId);
273
274 UA_StatusCode (*changeCustomCallback)(UA_Server *server, UA_NodeId identifier,
275 UA_UInt64 callbackId, UA_Double interval_ms,
276 UA_DateTime *baseTime, UA_TimerPolicy timerPolicy);
277
278 void (*removeCustomCallback)(UA_Server *server, UA_NodeId identifier, UA_UInt64 callbackId);
279
281
282
283
289
290
297
298typedef struct {
310 /* PubSub Manager Callback */
312 /* non std. config parameter. maximum count of embedded DataSetMessage in
313 * one NetworkMessage */
315 /* non std. field */
317
318 /* Message are encrypted if a SecurityPolicy is configured and the
319 * securityMode set accordingly. The symmetric key is a runtime information
320 * and has to be set via UA_Server_setWriterGroupEncryptionKey. */
321 UA_MessageSecurityMode securityMode; /* via the UA_WriterGroupDataType */
322#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
323 UA_PubSubSecurityPolicy *securityPolicy;
324#endif
326
327void
329
330/** Add a new WriterGroup to an existing Connection */
333 const UA_WriterGroupConfig *writerGroupConfig,
334 UA_NodeId *writerGroupIdentifier);
335
336/** Returns a deep copy of the config */
339 UA_WriterGroupConfig *config);
340
343 const UA_WriterGroupConfig *config);
344
345/** Get state of WriterGroup */
348 UA_PubSubState *state);
349
352
355
358
361
364
365#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
366/** Set the group key for the message encryption */
368UA_Server_setWriterGroupEncryptionKeys(UA_Server *server, const UA_NodeId writerGroup,
369 UA_UInt32 securityTokenId,
370 const UA_ByteString signingKey,
371 const UA_ByteString encryptingKey,
372 const UA_ByteString keyNonce);
373#endif
374
375
376
388
389void
391
392/** Add a new DataSetWriter to an existing WriterGroup. The DataSetWriter must be
393 * coupled with a PublishedDataSet on creation.
394 *
395 * Part 14, 7.1.5.2.1 defines: The link between the PublishedDataSet and
396 * DataSetWriter shall be created when an instance of the DataSetWriterType is
397 * created. */
400 const UA_NodeId writerGroup, const UA_NodeId dataSet,
401 const UA_DataSetWriterConfig *dataSetWriterConfig,
402 UA_NodeId *writerIdentifier);
403
404/** Returns a deep copy of the config */
407 UA_DataSetWriterConfig *config);
408
409/** Get state of DataSetWriter */
411UA_Server_DataSetWriter_getState(UA_Server *server, UA_NodeId dataSetWriterIdentifier,
412 UA_PubSubState *state);
413
416
417
418
419/** SubscribedDataSetDataType Definition */
424
425typedef struct {
426 /* Standard-defined FieldTargetDataType */
427 UA_FieldTargetDataType targetVariable;
428
429 /* If realtime-handling is required, set this pointer non-NULL and it will be used
430 * to memcpy the value instead of using the Write service.
431 * If the beforeWrite method pointer is set, it will be called before a memcpy update
432 * to the value. But param externalDataValue already contains the new value.
433 * If the afterWrite method pointer is set, it will be called after a memcpy update
434 * to the value. */
436 void *targetVariableContext; /* user-defined pointer */
437 void (*beforeWrite)(UA_Server *server,
438 const UA_NodeId *readerIdentifier,
439 const UA_NodeId *readerGroupIdentifier,
440 const UA_NodeId *targetVariableIdentifier,
441 void *targetVariableContext,
442 UA_DataValue **externalDataValue);
443 void (*afterWrite)(UA_Server *server,
444 const UA_NodeId *readerIdentifier,
445 const UA_NodeId *readerGroupIdentifier,
446 const UA_NodeId *targetVariableIdentifier,
447 void *targetVariableContext,
448 UA_DataValue **externalDataValue);
450
455
456/** Return Status Code after creating TargetVariables in Subscriber AddressSpace */
459 UA_NodeId dataSetReaderIdentifier,
460 size_t targetVariablesSize,
461 const UA_FieldTargetVariable *targetVariables);
462
463/** To Do:Implementation of SubscribedDataSetMirrorType
464 * UA_StatusCode
465 * A_PubSubDataSetReader_createDataSetMirror(UA_Server *server, UA_NodeId dataSetReaderIdentifier,
466 * UA_SubscribedDataSetMirrorDataType* mirror) */
467
468
469
470/** Parameters for PubSubSecurity */
471typedef struct {
472 UA_Int32 securityMode; /* placeholder datatype 'MessageSecurityMode' */
477
484
485/** Parameters for PubSub DataSetReader Configuration */
506
507/** Update configuration to the dataSetReader */
510 UA_NodeId readerGroupIdentifier,
511 const UA_DataSetReaderConfig *config);
512
513/** Get configuration of the dataSetReader */
516 UA_DataSetReaderConfig *config);
517
518/** Get state of DataSetReader */
520UA_Server_DataSetReader_getState(UA_Server *server, UA_NodeId dataSetReaderIdentifier,
521 UA_PubSubState *state);
522
523
524
525/** ReaderGroup configuration */
526typedef struct {
529 /* PubSub Manager Callback */
531 /* non std. field */
532 UA_Duration subscribingInterval; // Callback interval for subscriber: set the least publishingInterval value of all DSRs in this RG
533 UA_Boolean enableBlockingSocket; // To enable or disable blocking socket option
534 UA_UInt32 timeout; // Timeout for receive to wait for the packets
538
539 /* Messages are decrypted if a SecurityPolicy is configured and the
540 * securityMode set accordingly. The symmetric key is a runtime information
541 * and has to be set via UA_Server_setReaderGroupEncryptionKey. */
543#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
544 UA_PubSubSecurityPolicy *securityPolicy;
545#endif
547
548void
550
551/** Add DataSetReader to the ReaderGroup */
553UA_Server_addDataSetReader(UA_Server *server, UA_NodeId readerGroupIdentifier,
554 const UA_DataSetReaderConfig *dataSetReaderConfig,
555 UA_NodeId *readerIdentifier);
556
557/** Remove DataSetReader from ReaderGroup */
560
561/** To Do: Update Configuration of ReaderGroup
562 * UA_StatusCode
563 * UA_Server_ReaderGroup_updateConfig(UA_Server *server, UA_NodeId readerGroupIdentifier,
564 * const UA_ReaderGroupConfig *config);
565 */
566
567/** Get configuraiton of ReaderGroup */
570 UA_ReaderGroupConfig *config);
571
572/** Get state of ReaderGroup */
575 UA_PubSubState *state);
576
577/** Add ReaderGroup to the created connection */
579UA_Server_addReaderGroup(UA_Server *server, UA_NodeId connectionIdentifier,
580 const UA_ReaderGroupConfig *readerGroupConfig,
581 UA_NodeId *readerGroupIdentifier);
582
583/** Remove ReaderGroup from connection */
586
589
592
595
598
599#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
600/** Set the group key for the message encryption */
602UA_Server_setReaderGroupEncryptionKeys(UA_Server *server, UA_NodeId readerGroup,
603 UA_UInt32 securityTokenId,
604 UA_ByteString signingKey,
605 UA_ByteString encryptingKey,
606 UA_ByteString keyNonce);
607#endif
608
609
610#endif /* UA_ENABLE_PUBSUB */
611
613
614#endif /* UA_SERVER_PUBSUB_H */
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
Definition config.h:89
#define _UA_END_DECLS
Definition config.h:96
UA_StatusCode UA_Server_WriterGroup_getState(UA_Server *server, UA_NodeId writerGroupIdentifier, UA_PubSubState *state)
Get state of WriterGroup.
UA_StatusCode UA_Server_ReaderGroup_getConfig(UA_Server *server, UA_NodeId readerGroupIdentifier, UA_ReaderGroupConfig *config)
To Do: Update Configuration of ReaderGroup UA_StatusCode UA_Server_ReaderGroup_updateConfig(UA_Server...
UA_StatusCode UA_Server_DataSetReader_getState(UA_Server *server, UA_NodeId dataSetReaderIdentifier, UA_PubSubState *state)
Get state of DataSetReader.
UA_StatusCode UA_Server_removeDataSetWriter(UA_Server *server, const UA_NodeId dsw)
void UA_PublishedDataSetConfig_clear(UA_PublishedDataSetConfig *pdsConfig)
UA_StatusCode UA_Server_DataSetReader_getConfig(UA_Server *server, UA_NodeId dataSetReaderIdentifier, UA_DataSetReaderConfig *config)
Get configuration of the dataSetReader.
void UA_DataSetWriterConfig_clear(UA_DataSetWriterConfig *pdsConfig)
UA_StatusCode UA_Server_DataSetReader_updateConfig(UA_Server *server, UA_NodeId dataSetReaderIdentifier, UA_NodeId readerGroupIdentifier, const UA_DataSetReaderConfig *config)
Update configuration to the dataSetReader.
UA_SubscribedDataSetEnumType
SubscribedDataSetDataType Definition.
@ UA_PUBSUB_SDS_MIRROR
@ UA_PUBSUB_SDS_TARGET
UA_DataSetFieldResult UA_Server_addDataSetField(UA_Server *server, const UA_NodeId publishedDataSet, const UA_DataSetFieldConfig *fieldConfig, UA_NodeId *fieldIdentifier)
UA_DataSetFieldResult UA_Server_removeDataSetField(UA_Server *server, const UA_NodeId dsf)
UA_PubSubEncodingType
@ UA_PUBSUB_ENCODING_JSON
@ UA_PUBSUB_ENCODING_UADP
@ UA_PUBSUB_ENCODING_BINARY
UA_StatusCode UA_Server_addWriterGroup(UA_Server *server, const UA_NodeId connection, const UA_WriterGroupConfig *writerGroupConfig, UA_NodeId *writerGroupIdentifier)
Add a new WriterGroup to an existing Connection.
UA_StatusCode UA_ServerConfig_addPubSubTransportLayer(UA_ServerConfig *config, UA_PubSubTransportLayer pubsubTransportLayer)
UA_DataSetFieldType
@ UA_PUBSUB_DATASETFIELD_VARIABLE
@ UA_PUBSUB_DATASETFIELD_EVENT
UA_PubSubRtEncoding
@ UA_PUBSUB_RT_UNKNOWN
@ UA_PUBSUB_RT_VARIANT
@ UA_PUBSUB_RT_DATA_VALUE
@ UA_PUBSUB_RT_RAW
UA_StatusCode UA_Server_getDataSetFieldConfig(UA_Server *server, const UA_NodeId dsf, UA_DataSetFieldConfig *config)
Returns a deep copy of the config.
UA_StatusCode UA_Server_updateWriterGroupConfig(UA_Server *server, UA_NodeId writerGroupIdentifier, const UA_WriterGroupConfig *config)
UA_StatusCode UA_Server_getPubSubConnectionConfig(UA_Server *server, const UA_NodeId connection, UA_PubSubConnectionConfig *config)
Returns a deep copy of the config.
UA_StatusCode UA_Server_addPubSubConnection(UA_Server *server, const UA_PubSubConnectionConfig *connectionConfig, UA_NodeId *connectionIdentifier)
UA_PubSubComponentEnumType
This Source Code Form is subject to the terms of the Mozilla Public License, v.
@ UA_PUBSUB_COMPONENT_DATASETWRITER
@ UA_PUBSUB_COMPONENT_DATASETREADER
@ UA_PUBSUB_COMPONENT_WRITERGROUP
@ UA_PUBSUB_COMPONENT_CONNECTION
@ UA_PUBSUB_COMPONENT_READERGROUP
void UA_WriterGroupConfig_clear(UA_WriterGroupConfig *writerGroupConfig)
UA_PubSubRTLevel
@ UA_PUBSUB_RT_DETERMINISTIC
@ UA_PUBSUB_RT_NONE
@ UA_PUBSUB_RT_DIRECT_VALUE_ACCESS
@ UA_PUBSUB_RT_FIXED_SIZE
UA_StatusCode UA_Server_DataSetWriter_getState(UA_Server *server, UA_NodeId dataSetWriterIdentifier, UA_PubSubState *state)
Get state of DataSetWriter.
void UA_DataSetFieldConfig_clear(UA_DataSetFieldConfig *dataSetFieldConfig)
UA_AddPublishedDataSetResult UA_Server_addPublishedDataSet(UA_Server *server, const UA_PublishedDataSetConfig *publishedDataSetConfig, UA_NodeId *pdsIdentifier)
UA_StatusCode UA_Server_addDataSetReader(UA_Server *server, UA_NodeId readerGroupIdentifier, const UA_DataSetReaderConfig *dataSetReaderConfig, UA_NodeId *readerIdentifier)
Add DataSetReader to the ReaderGroup.
UA_StatusCode UA_Server_removeWriterGroup(UA_Server *server, const UA_NodeId writerGroup)
UA_StatusCode UA_Server_ReaderGroup_getState(UA_Server *server, UA_NodeId readerGroupIdentifier, UA_PubSubState *state)
Get state of ReaderGroup.
UA_StatusCode UA_Server_unfreezeWriterGroupConfiguration(UA_Server *server, const UA_NodeId writerGroup)
UA_StatusCode UA_Server_removePublishedDataSet(UA_Server *server, const UA_NodeId pds)
Remove PublishedDataSet, identified by the NodeId.
UA_StatusCode UA_Server_getPublishedDataSetConfig(UA_Server *server, const UA_NodeId pds, UA_PublishedDataSetConfig *config)
Returns a deep copy of the config.
UA_StatusCode UA_Server_freezeWriterGroupConfiguration(UA_Server *server, const UA_NodeId writerGroup)
UA_StatusCode UA_Server_removePubSubConnection(UA_Server *server, const UA_NodeId connection)
Remove Connection, identified by the NodeId.
UA_StatusCode UA_Server_getWriterGroupConfig(UA_Server *server, const UA_NodeId writerGroup, UA_WriterGroupConfig *config)
Returns a deep copy of the config.
UA_StatusCode UA_Server_setReaderGroupDisabled(UA_Server *server, const UA_NodeId readerGroupId)
UA_StatusCode UA_Server_setWriterGroupDisabled(UA_Server *server, const UA_NodeId writerGroup)
UA_PublisherIdType
@ UA_PUBSUB_PUBLISHERID_NUMERIC
@ UA_PUBSUB_PUBLISHERID_STRING
UA_StatusCode UA_Server_setWriterGroupOperational(UA_Server *server, const UA_NodeId writerGroup)
UA_StatusCode UA_Server_setReaderGroupOperational(UA_Server *server, const UA_NodeId readerGroupId)
UA_StatusCode UA_Server_unfreezeReaderGroupConfiguration(UA_Server *server, const UA_NodeId readerGroupId)
UA_StatusCode UA_Server_removeDataSetReader(UA_Server *server, UA_NodeId readerIdentifier)
Remove DataSetReader from ReaderGroup.
UA_StatusCode UA_Server_removeReaderGroup(UA_Server *server, UA_NodeId groupIdentifier)
Remove ReaderGroup from connection.
UA_StatusCode UA_Server_getPublishedDataSetMetaData(UA_Server *server, const UA_NodeId pds, UA_DataSetMetaDataType *metaData)
Returns a deep copy of the DataSetMetaData for an specific PDS.
UA_StatusCode UA_Server_freezeReaderGroupConfiguration(UA_Server *server, const UA_NodeId readerGroupId)
UA_StatusCode UA_Server_addReaderGroup(UA_Server *server, UA_NodeId connectionIdentifier, const UA_ReaderGroupConfig *readerGroupConfig, UA_NodeId *readerGroupIdentifier)
Add ReaderGroup to the created connection.
UA_StatusCode UA_Server_addDataSetWriter(UA_Server *server, const UA_NodeId writerGroup, const UA_NodeId dataSet, const UA_DataSetWriterConfig *dataSetWriterConfig, UA_NodeId *writerIdentifier)
Add a new DataSetWriter to an existing WriterGroup.
UA_StatusCode UA_Server_getDataSetWriterConfig(UA_Server *server, const UA_NodeId dsw, UA_DataSetWriterConfig *config)
Returns a deep copy of the config.
void UA_ReaderGroupConfig_clear(UA_ReaderGroupConfig *readerGroupConfig)
UA_StatusCode UA_Server_DataSetReader_createTargetVariables(UA_Server *server, UA_NodeId dataSetReaderIdentifier, size_t targetVariablesSize, const UA_FieldTargetVariable *targetVariables)
Return Status Code after creating TargetVariables in Subscriber AddressSpace.
UA_PublishedDataSetType
The UA_PUBSUB_DATASET_PUBLISHEDITEMS has currently no additional members and thus no dedicated config...
@ UA_PUBSUB_DATASET_PUBLISHEDEVENTS
@ UA_PUBSUB_DATASET_PUBLISHEDITEMS_TEMPLATE
@ UA_PUBSUB_DATASET_PUBLISHEDEVENTS_TEMPLATE
@ UA_PUBSUB_DATASET_PUBLISHEDITEMS
UA_ConfigurationVersionDataType configurationVersion
UA_DataSetFieldType dataSetFieldType
UA_DataSetVariableConfig variable
UA_ConfigurationVersionDataType configurationVersion
Parameters for PubSub DataSetReader Configuration.
UA_DataSetMetaDataType dataSetMetaData
UA_ExtensionObject messageSettings
UA_ExtensionObject transportSettings
UA_PubSubSecurityParameters securityParameters
UA_TargetVariables subscribedDataSetTarget
UA_PubSubRtEncoding expectedEncoding
UA_DataSetFieldContentMask dataSetFieldContentMask
UA_SubscribedDataSetEnumType subscribedDataSetType
UA_ConfigurationVersionDataType configurationVersion
UA_PublishedVariableDataType publishParameters
UA_DataValue ** staticValueSource
UA_KeyValuePair * dataSetWriterProperties
UA_DataSetFieldContentMask dataSetFieldContentMask
UA_ExtensionObject messageSettings
UA_ExtensionObject transportSettings
UA_FieldTargetDataType targetVariable
UA_DataValue ** externalDataValue
General PubSub configuration.
UA_PubSubTransportLayer * transportLayers
void(* stateChangeCallback)(UA_NodeId *Id, UA_PubSubState state, UA_StatusCode status)
UA_KeyValuePair * connectionProperties
UA_Variant connectionTransportSettings
union UA_PubSubConnectionConfig::@19 publisherId
UA_PublisherIdType publisherIdType
To Do:Implementation of SubscribedDataSetMirrorType UA_StatusCode A_PubSubDataSetReader_createDataSet...
UA_PublishedVariableDataType * variablesToAdd
Configuration structure for PublishedDataSet.
UA_PublishedEventConfig event
UA_PublishedEventTemplateConfig eventTemplate
UA_PublishedDataItemsTemplateConfig itemsTemplate
UA_PublishedDataSetType publishedDataSetType
UA_ContentFilter filter
UA_SimpleAttributeOperand * selectedFields
UA_DataSetMetaDataType metaData
ReaderGroup configuration.
UA_PubSub_CallbackLifecycle pubsubManagerCallback
UA_Duration subscribingInterval
UA_PubSubRTLevel rtLevel
UA_MessageSecurityMode securityMode
UA_KeyValuePair * groupProperties
UA_Boolean enableBlockingSocket
UA_PubSubSecurityParameters securityParameters
UA_FieldTargetVariable * targetVariables
UA_PubSub_CallbackLifecycle pubsubManagerCallback
UA_MessageSecurityMode securityMode
UA_Duration publishingInterval
UA_PubSubEncodingType encodingMimeType
UA_ExtensionObject transportSettings
UA_UInt16 maxEncapsulatedDataSetMessageCount
UA_PubSubRTLevel rtLevel
UA_ExtensionObject messageSettings
UA_KeyValuePair * groupProperties
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
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
uint64_t UA_UInt64
Definition types.h:66
UA_MessageSecurityMode
UA_Double UA_Duration
UA_StatusCode status
void(* UA_ServerCallback)(UA_Server *server, void *data)
Definition util.h:25
UA_TimerPolicy
Timer policy to handle cycle misses.
Definition util.h:31