QOpcUaMonitoringParameters 类

QOpcUaMonitoringParameters 提供了一种设置和检索订阅和监控项参数的方式。 更多...

头文件 #include <QOpcUaMonitoringParameters>
CMakefind_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmakeQT += opcua

公共类型

DataChangeFilter
EventFilter
枚举类MonitoringMode { Disabled, Sampling, Reporting }
枚举类Parameter { PublishingEnabled, PublishingInterval, LifetimeCount, MaxKeepAliveCount, MaxNotificationsPerPublish, …, TriggeredItemIds }
标志Parameters
枚举类SubscriptionType { Shared, Exclusive }

公共函数

QOpcUaMonitoringParameters()
QOpcUaMonitoringParameters(double publishingInterval, QOpcUaMonitoringParameters::SubscriptionType shared = SubscriptionType::Shared, quint32 subscriptionId = 0)
QOpcUaMonitoringParameters(const QOpcUaMonitoringParameters &other)
~QOpcUaMonitoringParameters()
voidclearFilter()
voidclearFilterResult()
booldiscardOldest() const
(since 6.7) QHash<quint32, QOpcUa::UaStatusCode>failedTriggeredItemsStatus() const
QVariantfilter() const
QVariantfilterResult() const
QStringindexRange() const
boolisPublishingEnabled() const
quint32lifetimeCount() const
quint32maxKeepAliveCount() const
quint32maxNotificationsPerPublish() const
quint32monitoredItemId() const
QOpcUaMonitoringParameters::MonitoringModemonitoringMode() const
quint8priority() const
doublepublishingInterval() const
quint32queueSize() const
doublesamplingInterval() const
voidsetDiscardOldest(bool discardOldest)
(since 6.7) voidsetFailedTriggeredItemsStatus(const QHash<quint32, QOpcUa::UaStatusCode> &状态)
voidsetFilter(const QOpcUaMonitoringParameters::DataChangeFilter &过滤器)
voidsetFilter(const QOpcUaMonitoringParameters::EventFilter &事件过滤器)
voidsetFilterResult(const QOpcUaEventFilterResult &事件过滤器结果)
voidsetIndexRange(const QString &索引范围)
voidsetLifetimeCount(quint32 生命周期计数)
voidsetMaxKeepAliveCount(quint32 最大保持活动计数)
voidsetMaxNotificationsPerPublish(quint32 每次发布最大通知数)
voidsetMonitoredItemId(quint32 被监视项ID)
voidsetMonitoringMode(QOpcUaMonitoringParameters::MonitoringMode 监控模式)
voidsetPriority(quint8 优先级)
voidsetPublishingEnabled(bool 发布启用)
voidsetPublishingInterval(double 发布间隔)
voidsetQueueSize(quint32 队列大小)
voidsetSamplingInterval(double 采样间隔)
voidsetStatusCode(QOpcUa::UaStatusCode 状态码)
voidsetSubscriptionId(quint32 订阅ID)
voidsetSubscriptionType(QOpcUaMonitoringParameters::SubscriptionType 共享)
(since 6.7) voidsetTriggeredItemIds(const QSet<quint32> &ids)
QOpcUa::UaStatusCodestatusCode() const
quint32subscriptionId() const
QOpcUaMonitoringParameters::SubscriptionTypesubscriptionType() const
(since 6.7) QSet<quint32>triggeredItemIds() const
QOpcUaMonitoringParameters &operator=(const QOpcUaMonitoringParameters &其他)

详细描述

此类用于QOpcUaNode::enableMonitoring()请求,并在QOpcUaNode::monitoringStatus()中作为返回值,其中包含服务器端的修订值。

用法

对于大多数用例,只需要发布间隔。

QOpcUaMonitoringParameters p(100); // Set a publishing interval of 100ms and share the subscription.
node->enableMonitoring(QOpcUa::NodeAttribute::Value, p);

如果需要独占订阅,请使用第二个参数。

QOpcUaMonitoringParameters p(100, QOpcUaMonitoringParameters::SubscriptionType::Exclusive); // Create a new subscription

要将项目添加到现有订阅中,请使用第三参数进行QOpcUaNode::enableMonitoring()的下一次调用。

quint32 subscriptionId = node->monitoringStatus(QOpcUa::NodeAttribute::Value).subscriptionId();
QOpcUaMonitoringParameters p(100, QOpcUaMonitoringParameters::SubscriptionType::Shared, subscriptionId); // Add the monitored item to this subscription

如果需要其他参数,则必须使用setter方法设置。

成员类型文档

enum class QOpcUaMonitoringParameters::MonitoringMode

此枚举用于设置被监视项的监控模式。

常量说明
QOpcUaMonitoringParameters::MonitoringMode::Disabled0采样被禁用,并且没有生成通知。
QOpcUaMonitoringParameters::MonitoringMode::Sampling1采样被启用,并且生成并排队通知,但在报告中被禁用。
QOpcUaMonitoringParameters::MonitoringMode::Reporting2采样被启用,生成并排队通知,报告被启用。

enum class QOpcUaMonitoringParameters::Parameter
标志QOpcUaMonitoringParameters::Parameters

枚举可以在线运行时通过 QOpcUaNode::modifyMonitoring() 进行修改的参数。并非所有值都保证被所有插件支持。不支持的情况将在 QOpcUaNode::monitoringStatusChanged 信号中报告。

常量
QOpcUaMonitoringParameters::Parameter::PublishingEnabled(1 << 0)
QOpcUaMonitoringParameters::Parameter::PublishingInterval(1 << 1)
QOpcUaMonitoringParameters::Parameter::LifetimeCount(1 << 2)
QOpcUaMonitoringParameters::Parameter::MaxKeepAliveCount(1 << 3)
QOpcUaMonitoringParameters::Parameter::MaxNotificationsPerPublish(1 << 4)
QOpcUaMonitoringParameters::Parameter::Priority(1 << 5)
QOpcUaMonitoringParameters::Parameter::SamplingInterval(1 << 6)
QOpcUaMonitoringParameters::Parameter::Filter(1 << 7)
QOpcUaMonitoringParameters::Parameter::QueueSize(1 << 8)
QOpcUaMonitoringParameters::Parameter::DiscardOldest(1 << 9)
QOpcUaMonitoringParameters::Parameter::MonitoringMode(1 << 10)
QOpcUaMonitoringParameters::Parameter::TriggeredItemIds (自 Qt 6.7)(1 << 11)

Parameters类型是QFlags<Parameter>的一个typedef。它存储Parameter值的OR组合。

enum class QOpcUaMonitoringParameters::SubscriptionType

此枚举用于确定监控项是否可以被添加到共享订阅中,或者是否必须创建新的订阅。

常量说明
QOpcUaMonitoringParameters::SubscriptionType::Shared0与其他拥有相同间隔的监控项共享订阅
QOpcUaMonitoringParameters::SubscriptionType::Exclusive1为该属性请求新的订阅

成员函数文档

QOpcUaMonitoringParameters::QOpcUaMonitoringParameters()

QOpcUaMonitoringParameters的默认构造函数。

QOpcUaMonitoringParameters::QOpcUaMonitoringParameters(double publishingInterval, QOpcUaMonitoringParameters::SubscriptionType shared = SubscriptionType::Shared, quint32 subscriptionId = 0)

这是Qt OPC UA用户的大部分用例的构造函数。publishingInterval必须提供,sharedsubscriptionId是可选的。

QOpcUaMonitoringParameters::QOpcUaMonitoringParameters(const QOpcUaMonitoringParameters &other)

other的值构造一个QOpcuaMonitoringParameters对象。

[noexcept] QOpcUaMonitoringParameters::~QOpcUaMonitoringParameters()

QOpcUaMonitoringParameters的析构函数。

void QOpcUaMonitoringParameters::clearFilter()

从监控参数中移除当前过滤器。

另请参阅filter() 和 setFilter().

void QOpcUaMonitoringParameters::clearFilterResult()

从监控参数中移除当前过滤器结果。

另请参阅filterResult() 和 setFilterResult().

bool QOpcUaMonitoringParameters::discardOldest() const

返回监控项的discardOldest设置。

另请参阅setDiscardOldest().

[since 6.7] QHash<quint32, QOpcUa::UaStatusCode> QOpcUaMonitoringParameters::failedTriggeredItemsStatus() const

返回从 setTriggeredItemIds() 中未能成功添加的所有触发项的状态代码。

此函数在 Qt 6.7 中引入。

另请参阅setFailedTriggeredItemsStatus

QVariant QOpcUaMonitoringParameters::filter() const

返回当前过滤器。

另请参阅setFilter

QVariant QOpcUaMonitoringParameters::filterResult() const

返回过滤器结果。

对于属性监控,此值是空的。在事件监控的情况下,如果服务器未检测到过滤器的任何错误,则过滤器结果可以为空。

另请参阅setFilterResult

QString QOpcUaMonitoringParameters::indexRange() const

返回监控项的索引范围。

另请参阅setIndexRange

bool QOpcUaMonitoringParameters::isPublishingEnabled() const

返回订阅的发布模式。

quint32 QOpcUaMonitoringParameters::lifetimeCount() const

返回订阅的生存期计数。

另请参阅setLifetimeCount

quint32 QOpcUaMonitoringParameters::maxKeepAliveCount() const

返回订阅的最大保活计数。

另请参阅setMaxKeepAliveCount

quint32 QOpcUaMonitoringParameters::maxNotificationsPerPublish() const

返回订阅每发布最大通知数。

另请参阅setMaxNotificationsPerPublish

quint32 QOpcUaMonitoringParameters::monitoredItemId() const

返回服务器分配的监控项 ID。如果监控项 ID 为 0,则监控项创建失败。

另请参阅setMonitoredItemId

QOpcUaMonitoringParameters::MonitoringMode QOpcUaMonitoringParameters::monitoringMode() const

返回监控项的监控模式。

另请参阅setMonitoringMode

quint8 QOpcUaMonitoringParameters::priority() const

获取用于监视项的订阅的优先级。

另请参阅 setPriority

double QOpcUaMonitoringParameters::publishingInterval() const

获取订阅的发布间隔。间隔以毫秒为单位表示。

另请参阅 setPublishingInterval

quint32 QOpcUaMonitoringParameters::queueSize() const

获取监视项的队列大小。

另请参阅 setQueueSize

double QOpcUaMonitoringParameters::samplingInterval() const

获取监视项的修订采样间隔。间隔以毫秒为单位表示。

另请参阅 setSamplingInterval

void QOpcUaMonitoringParameters::setDiscardOldest(bool discardOldest)

discardOldest 设置为监视项的 discardOldest 设置。

另请参阅 discardOldest

[since 6.7] void QOpcUaMonitoringParameters::setFailedTriggeredItemsStatus(const QHash<quint32, QOpcUa::UaStatusCode> &status)

为所有未能成功添加到 status 的触发项设置状态码。客户端设置此值没有效果。

此函数在 Qt 6.7 中引入。

另请参阅 failedTriggeredItemsStatus

void QOpcUaMonitoringParameters::setFilter(const QOpcUaMonitoringParameters::DataChangeFilter &filter)

DataChangeFilter filter 设置为监视项的过滤器。如果存在另一个数据更改过滤器或事件过滤器,它将被替换。

如果服务器不接受过滤器,则服务器在完成 QOpcUaNode::enableMonitoring() 请求后通过状态码指出。

另请参阅 filter

void QOpcUaMonitoringParameters::setFilter(const QOpcUaMonitoringParameters::EventFilter &eventFilter)

请求 eventFilter 作为监视项的过滤器。如果存在另一个事件过滤器或数据更改过滤器,它将被替换。如果服务器不接受过滤器,则服务器在完成 QOpcUaNode::enableMonitoring() 请求后会通过状态码和事件过滤器结果指出。

另请参阅 filter

void QOpcUaMonitoringParameters::setFilterResult(const QOpcUaEventFilterResult &eventFilterResult)

将事件过滤器结果设置为 eventFilterResult

此方法必须由后端使用,用户设置事件过滤器结果没有任何效果。

另请参阅 filterResult

void QOpcUaMonitoringParameters::setIndexRange(const QString &indexRange)

请求 indexRange 作为监视项的索引范围。关于索引范围字符串的详细信息,请参阅 QOpcUaNode::readAttributeRange

另请参阅indexRange

void QOpcUaMonitoringParameters::setLifetimeCount(quint32 lifetimeCount)

请求 lifetimeCount 作为订阅的生命周期计数。

另请参阅lifetimeCount

void QOpcUaMonitoringParameters::setMaxKeepAliveCount(quint32 maxKeepAliveCount)

请求 maxKeepAliveCount 作为订阅的最大保活计数。

另请参阅maxKeepAliveCount

void QOpcUaMonitoringParameters::setMaxNotificationsPerPublish(quint32 maxNotificationsPerPublish)

maxNotificationsPerPublish 设置为订阅的每发布最大通知数。

另请参阅maxNotificationsPerPublish

void QOpcUaMonitoringParameters::setMonitoredItemId(quint32 monitoredItemId)

将监视项 ID 设置为 monitoredItemId

将此值设置为客户端没有作用。

另请参阅monitoredItemId

void QOpcUaMonitoringParameters::setMonitoringMode(QOpcUaMonitoringParameters::MonitoringMode monitoringMode)

monitoringMode 设置为监视项的监视模式。

另请参阅monitoringMode

void QOpcUaMonitoringParameters::setPriority(quint8 priority)

priority 设置为订阅的优先级。

另请参阅priority

void QOpcUaMonitoringParameters::setPublishingEnabled(bool publishingEnabled)

设置 publishingEnabled 作为订阅的发布模式。

另请参阅isPublishingEnabled

void QOpcUaMonitoringParameters::setPublishingInterval(double publishingInterval)

请求 publishingInterval 作为订阅的发布间隔。间隔以毫秒表示。

另请参阅publishingInterval

void QOpcUaMonitoringParameters::setQueueSize(quint32 queueSize)

请求 queueSize 作为监视项的队列大小。

另请参阅queueSize

void QOpcUaMonitoringParameters::setSamplingInterval(double samplingInterval)

请求将samplingInterval作为监视项的采样间隔。间隔以毫秒为单位。

另请参阅 samplingInterval

void QOpcUaMonitoringParameters::setStatusCode(QOpcUa::UaStatusCode statusCode)

设置状态码为statusCode

另请参阅 statusCode

void QOpcUaMonitoringParameters::setSubscriptionId(quint32 subscriptionId)

请求使用subscriptionId在已知的订阅上创建监视项。

另请参阅 subscriptionId

void QOpcUaMonitoringParameters::setSubscriptionType(QOpcUaMonitoringParameters::SubscriptionType shared)

请求将shared作为订阅类型。

另请参阅 subscriptionType

[since 6.7] void QOpcUaMonitoringParameters::setTriggeredItemIds(const QSet<quint32> &ids)

按照OPC UA 1.05, 5.12.1.6中所述,将触发链接添加到ids中的所有监视项。

ids中的值必须是同一订阅上其他监视项的监视项ID。如果这些项的监视模式设置为采样,则每当此监视检测到数据更改时,其数据更改通知将发送到客户端。

无法添加的任何ID将不包含在监视状态中,而将显示在failedTriggeredItemsStatus中。

将此设置为空集将删除所有触发链接。

此函数在 Qt 6.7 中引入。

另请参阅 triggeredItemIds

QOpcUa::UaStatusCode QOpcUaMonitoringParameters::statusCode() const

返回监视项创建的状态码。

另请参阅 setStatusCode

quint32 QOpcUaMonitoringParameters::subscriptionId() const

返回分配的订阅ID。

另请参阅 setSubscriptionId

QOpcUaMonitoringParameters::SubscriptionType QOpcUaMonitoringParameters::subscriptionType() const

返回订阅类型。

另请参阅 setSubscriptionType

[since 6.7] QSet<quint32> QOpcUaMonitoringParameters::triggeredItemIds() const

返回由本监视项触发的监视项ID。

此函数在 Qt 6.7 中引入。

另请参阅 setTriggeredItemIds

QOpcUaMonitoringParameters &QOpcUaMonitoringParameters::operator=(const QOpcUaMonitoringParameters &other)

将对象other的值分配给此对象。

© 2024 Qt公司有限公司。本文档中包含的文档贡献均为各自所有者的版权。本提供的文档按照自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。Qt和相应的商标是世界各地的芬兰及其它国家的Qt公司注册商标。所有其它商标均为其所有者财产。