C++ Based OPC UA Client/Server/PubSub SDK
1.7.0.449
|
The UaSubscription class manges a UA Client created subscription. More...
#include <uasubscription.h>
Public Member Functions | |
UaStatus | modifySubscription (ServiceSettings &serviceSettings, SubscriptionSettings &subscriptionSettings) |
Modify the subscription settings. More... | |
UaStatus | setPublishingMode (ServiceSettings &serviceSettings, OpcUa_Boolean publishingEnabled) |
Set the publishing mode of the subscription. More... | |
UaStatus | createMonitoredItems (ServiceSettings &serviceSettings, OpcUa_TimestampsToReturn timestampsToReturn, const UaMonitoredItemCreateRequests &monitoredItemCreateRequests, UaMonitoredItemCreateResults &monitoredItemCreateResults) |
Creates a list of monitored items in the subscriptions. More... | |
UaStatus | modifyMonitoredItems (ServiceSettings &serviceSettings, OpcUa_TimestampsToReturn timestampsToReturn, const UaMonitoredItemModifyRequests &monitoredItemModifyRequests, UaMonitoredItemModifyResults &monitoredItemModifyResults) |
Modify monitored items. More... | |
UaStatus | setMonitoringMode (ServiceSettings &serviceSettings, OpcUa_MonitoringMode monitoringMode, const UaUInt32Array &monitoredItemIds, UaStatusCodeArray &results) |
Set monitoring mode for monitored items. More... | |
UaStatus | setTriggering (ServiceSettings &serviceSettings, OpcUa_UInt32 triggeringItemId, const UaUInt32Array &linksToAdd, const UaUInt32Array &linksToRemove, UaStatusCodeArray &addResults, UaStatusCodeArray &removeResults) |
Creates or deletes links from trigger items to triggered monitored items. More... | |
UaStatus | deleteMonitoredItems (ServiceSettings &serviceSettings, const UaUInt32Array &monitoredItemIds, UaStatusCodeArray &results) |
Delete monitored items. More... | |
UaStatus | republish (ServiceSettings &serviceSettings, OpcUa_UInt32 retransmitSequenceNumber, UaDataNotifications &dataNotifications, UaDiagnosticInfos &diagnosticInfos, UaEventFieldLists &eventFieldList, UaStatus &subscriptionStatus) |
Republish call to get lost notifications. More... | |
UaStatus | beginCreateMonitoredItems (ServiceSettings &serviceSettings, OpcUa_TimestampsToReturn timestampsToReturn, const UaMonitoredItemCreateRequests &monitoredItemCreateRequests, OpcUa_UInt32 transactionId) |
Asynchronous call to create a list of monitored items in the subscriptions. More... | |
UaStatus | beginModifyMonitoredItems (ServiceSettings &serviceSettings, OpcUa_TimestampsToReturn timestampsToReturn, const UaMonitoredItemModifyRequests &monitoredItemModifyRequests, OpcUa_UInt32 transactionId) |
Asynchronous call to modify monitored items. More... | |
UaStatus | beginSetMonitoringMode (ServiceSettings &serviceSettings, OpcUa_MonitoringMode monitoringMode, const UaUInt32Array &monitoredItemIds, OpcUa_UInt32 transactionId) |
Asynchronous call to set monitoring mode for monitored items. More... | |
UaStatus | beginDeleteMonitoredItems (ServiceSettings &serviceSettings, const UaUInt32Array &monitoredItemIds, OpcUa_UInt32 transactionId) |
Asynchronous call to delete monitored items. More... | |
OpcUa_UInt32 | subscriptionId () |
Returns the id of the subscription. | |
OpcUa_UInt32 | clientSubscriptionHandle () |
Returns the client subscription handle for the subscription. | |
OpcUa_Double | publishingInterval () |
Returns the publishing interval of the subscription. | |
OpcUa_UInt32 | lifetimeCount () |
Returns the lifetime count of the subscription. More... | |
OpcUa_UInt32 | maxKeepAliveCount () |
Returns the maximum keep alive count of the subscription. | |
OpcUa_UInt32 | maxNotificationsPerPublish () |
Returns the maximum number of notifications per publish for the subscription. | |
OpcUa_Byte | priority () |
Returns the priority of the subscription. | |
OpcUa_Boolean | publishingEnabled () |
Returns the publish enabled flag of the subscription. | |
The UaSubscription class manges a UA Client created subscription.
The class provides all Subscription related UA Services as synchronous and asynchronous methods.
The callback interface UaSubscriptionCallback needs to be implemented by the user of the UaSubscription class to receive data change, event and subscription status change callbacks from the Client SDK. The status of the subscription is normally monitored by the SDK and changes are indicated by sending subscription status changed callbacks.
In cases of Subscription errors the user of the SDK is responsible for creating a new subscription since the SDK does not keep the information to recreate the Subscription to not increase memory consumption. The necessary information also needs to be kept by the client application anyway. To duplicate this information in the SDK consumes too much memory.
A UaSubscription object is thread-safe.
UaStatus UaSubscription::beginCreateMonitoredItems | ( | ServiceSettings & | serviceSettings, |
OpcUa_TimestampsToReturn | timestampsToReturn, | ||
const UaMonitoredItemCreateRequests & | monitoredItemCreateRequests, | ||
OpcUa_UInt32 | transactionId | ||
) |
Asynchronous call to create a list of monitored items in the subscriptions.
The monitored items could be data monitored items or event monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | timestampsToReturn | OPC UA defines two timestamps, the source and the server timestamp. This parameter allows the client to define which timestamps the server should return with the value. The source timestamp is only available for Value Attributes. The source timestamp is used to reflect the timestamp that was applied to a Variable value by the data source. It should indicate the last change of the value or status code. The source timestamp must be always generated by the same physical clock. This timestamp type was added for OPC UA to cover the use case to get the timestamp of the last value change which is different than the server timestamp definition. The server timestamp is used to reflect the time that the server received a Variable value or knew it to be accurate if the changes are reported by exception and the connection to the data source is operating. This is the behavior expected by Classic OPC. Possible values are:
|
[in] | monitoredItemCreateRequests | List of monitored items to create |
[in] | transactionId | Transaction ID for the asynchronous call used to assign the callback to the transaction |
UaStatus UaSubscription::beginDeleteMonitoredItems | ( | ServiceSettings & | serviceSettings, |
const UaUInt32Array & | monitoredItemIds, | ||
OpcUa_UInt32 | transactionId | ||
) |
Asynchronous call to delete monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | monitoredItemIds | List of monitored items to delete |
[in] | transactionId | Transaction ID for the asynchronous call used to assign the callback to the transaction |
UaStatus UaSubscription::beginModifyMonitoredItems | ( | ServiceSettings & | serviceSettings, |
OpcUa_TimestampsToReturn | timestampsToReturn, | ||
const UaMonitoredItemModifyRequests & | monitoredItemModifyRequests, | ||
OpcUa_UInt32 | transactionId | ||
) |
Asynchronous call to modify monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | timestampsToReturn | OPC UA defines two timestamps, the source and the server timestamp. This parameter allows the client to define which timestamps the server should return with the value. The source timestamp is only available for Value Attributes. The source timestamp is used to reflect the timestamp that was applied to a Variable value by the data source. It should indicate the last change of the value or status code. The source timestamp must be always generated by the same physical clock. This timestamp type was added for OPC UA to cover the use case to get the timestamp of the last value change which is different than the server timestamp definition. The server timestamp is used to reflect the time that the server received a Variable value or knew it to be accurate if the changes are reported by exception and the connection to the data source is operating. This is the behavior expected by Classic OPC. Possible values are:
|
[in] | monitoredItemModifyRequests | List of monitored items to modify |
[in] | transactionId | Transaction ID for the asynchronous call used to assign the callback to the transaction |
UaStatus UaSubscription::beginSetMonitoringMode | ( | ServiceSettings & | serviceSettings, |
OpcUa_MonitoringMode | monitoringMode, | ||
const UaUInt32Array & | monitoredItemIds, | ||
OpcUa_UInt32 | transactionId | ||
) |
Asynchronous call to set monitoring mode for monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | monitoringMode | New monitoring mode. Options are OpcUa_MonitoringMode_Disabled, OpcUa_MonitoringMode_Sampling and OpcUa_MonitoringMode_Reporting |
[in] | monitoredItemIds | List of monitored items where the monitoring mode should be changed |
[in] | transactionId | Transaction ID for the asynchronous call used to assign the callback to the transaction |
UaStatus UaSubscription::createMonitoredItems | ( | ServiceSettings & | serviceSettings, |
OpcUa_TimestampsToReturn | timestampsToReturn, | ||
const UaMonitoredItemCreateRequests & | monitoredItemCreateRequests, | ||
UaMonitoredItemCreateResults & | monitoredItemCreateResults | ||
) |
Creates a list of monitored items in the subscriptions.
The monitored items could be data monitored items or event monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | timestampsToReturn | OPC UA defines two timestamps, the source and the server timestamp. This parameter allows the client to define which timestamps the server should return with the value. The source timestamp is only available for Value Attributes. The source timestamp is used to reflect the timestamp that was applied to a Variable value by the data source. It should indicate the last change of the value or status code. The source timestamp must be always generated by the same physical clock. This timestamp type was added for OPC UA to cover the use case to get the timestamp of the last value change which is different than the server timestamp definition. The server timestamp is used to reflect the time that the server received a Variable value or knew it to be accurate if the changes are reported by exception and the connection to the data source is operating. This is the behavior expected by Classic OPC Possible values are:
|
[in] | monitoredItemCreateRequests | List of monitored items to create identified by an array of OpcUa_MonitoredItemCreateRequest structures The MonitoredItemCreateRequest consist of
|
[out] | monitoredItemCreateResults | List of create results |
UaStatus UaSubscription::deleteMonitoredItems | ( | ServiceSettings & | serviceSettings, |
const UaUInt32Array & | monitoredItemIds, | ||
UaStatusCodeArray & | deleteResults | ||
) |
Delete monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | monitoredItemIds | List of monitored items to delete |
[out] | deleteResults | List of delete results |
OpcUa_UInt32 UaSubscription::lifetimeCount | ( | ) |
Returns the lifetime count of the subscription.
UaStatus UaSubscription::modifyMonitoredItems | ( | ServiceSettings & | serviceSettings, |
OpcUa_TimestampsToReturn | timestampsToReturn, | ||
const UaMonitoredItemModifyRequests & | monitoredItemModifyRequests, | ||
UaMonitoredItemModifyResults & | monitoredItemModifyResults | ||
) |
Modify monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | timestampsToReturn | OPC UA defines two timestamps, the source and the server timestamp. This parameter allows the client to define which timestamps the server should return with the value. The source timestamp is only available for Value Attributes. The source timestamp is used to reflect the timestamp that was applied to a Variable value by the data source. It should indicate the last change of the value or status code. The source timestamp must be always generated by the same physical clock. This timestamp type was added for OPC UA to cover the use case to get the timestamp of the last value change which is different than the server timestamp definition. The server timestamp is used to reflect the time that the server received a Variable value or knew it to be accurate if the changes are reported by exception and the connection to the data source is operating. This is the behavior expected by Classic OPC. Possible values are:
|
[in] | monitoredItemModifyRequests | List of monitored items to modify |
[out] | monitoredItemModifyResults | List of modify results |
UaStatus UaSubscription::modifySubscription | ( | ServiceSettings & | serviceSettings, |
SubscriptionSettings & | subscriptionSettings | ||
) |
Modify the subscription settings.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in,out] | subscriptionSettings | The new subscription settings. See SubscriptionSettings for more details |
UaStatus UaSubscription::republish | ( | ServiceSettings & | serviceSettings, |
OpcUa_UInt32 | retransmitSequenceNumber, | ||
UaDataNotifications & | dataNotifications, | ||
UaDiagnosticInfos & | diagnosticInfos, | ||
UaEventFieldLists & | eventFieldList, | ||
UaStatus & | subscriptionStatus | ||
) |
Republish call to get lost notifications.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | retransmitSequenceNumber | The sequence number which will be retransmitted |
[out] | dataNotifications | List of data notifications. The list can be empty if the message contains only event notifications. |
[out] | diagnosticInfos | List of diagnostic information The string table for the indices in the diagnostic information is provided through the serviceSettings in/out parameter. The string table in this parameter is always empty since it is already contained in the serviceSettings. |
[out] | eventFieldList | List of event notifications. The list can be empty if the message contains only data change notifications. |
[out] | subscriptionStatus | Contains the status of the subscription if it has changed. |
UaStatus UaSubscription::setMonitoringMode | ( | ServiceSettings & | serviceSettings, |
OpcUa_MonitoringMode | monitoringMode, | ||
const UaUInt32Array & | monitoredItemIds, | ||
UaStatusCodeArray & | setMonitoringResults | ||
) |
Set monitoring mode for monitored items.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | monitoringMode | New monitoring mode. Options are
|
[in] | monitoredItemIds | List of monitored items where the monitoring mode should be changed |
[out] | setMonitoringResults | List of change results |
UaStatus UaSubscription::setPublishingMode | ( | ServiceSettings & | serviceSettings, |
OpcUa_Boolean | publishingEnabled | ||
) |
Set the publishing mode of the subscription.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | publishingEnabled | New publishing enabled setting. |
UaStatus UaSubscription::setTriggering | ( | ServiceSettings & | serviceSettings, |
OpcUa_UInt32 | triggeringItemId, | ||
const UaUInt32Array & | linksToAdd, | ||
const UaUInt32Array & | linksToRemove, | ||
UaStatusCodeArray & | addResults, | ||
UaStatusCodeArray & | removeResults | ||
) |
Creates or deletes links from trigger items to triggered monitored items.
This service is used to create and delete triggering links for a triggering item. The triggering item and the items to report must belong to the same subscription.
Each triggering link links a triggering item to an item to report. Each link is represented by the MonitoredItem id for the item to report. An error code is returned if this id is invalid.
[in,out] | serviceSettings | The general service settings like timeout. See ServiceSettings for more details |
[in] | triggeringItemId | Server assigned id for the MonitoredItem used as the triggering item |
[in] | linksToAdd | The list of server assigned ids of the items to report that are to be added as triggering links |
[in] | linksToRemove | The list of Server-assigned ids of the items to report for the triggering links to be deleted |
[out] | addResults | List of add results |
[out] | removeResults | List of remove results |