QOpcUaMonitoringParameters Class
QOpcUaMonitoringParameters 提供了一种为订阅和受监控项目设置和检索参数的方法。更多
Header: | #include <QOpcUaMonitoringParameters> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
qmake: | QT += opcua |
公共类型
class | DataChangeFilter |
class | EventFilter |
enum class | MonitoringMode { Disabled, Sampling, Reporting } |
enum class | Parameter { PublishingEnabled, PublishingInterval, LifetimeCount, MaxKeepAliveCount, MaxNotificationsPerPublish, …, TriggeredItemIds } |
flags | Parameters |
enum class | SubscriptionType { Shared, Exclusive } |
公共函数
QOpcUaMonitoringParameters() | |
QOpcUaMonitoringParameters(double publishingInterval, QOpcUaMonitoringParameters::SubscriptionType shared = SubscriptionType::Shared, quint32 subscriptionId = 0) | |
QOpcUaMonitoringParameters(const QOpcUaMonitoringParameters &other) | |
~QOpcUaMonitoringParameters() | |
void | clearFilter() |
void | clearFilterResult() |
bool | discardOldest() const |
(since 6.7) QHash<quint32, QOpcUa::UaStatusCode> | failedTriggeredItemsStatus() const |
QVariant | filter() const |
QVariant | filterResult() const |
QString | indexRange() const |
bool | isPublishingEnabled() const |
quint32 | lifetimeCount() const |
quint32 | maxKeepAliveCount() const |
quint32 | maxNotificationsPerPublish() const |
quint32 | monitoredItemId() const |
QOpcUaMonitoringParameters::MonitoringMode | monitoringMode() const |
quint8 | priority() const |
double | publishingInterval() const |
quint32 | queueSize() const |
double | samplingInterval() const |
void | setDiscardOldest(bool discardOldest) |
(since 6.7) void | setFailedTriggeredItemsStatus(const QHash<quint32, QOpcUa::UaStatusCode> &status) |
void | setFilter(const QOpcUaMonitoringParameters::DataChangeFilter &filter) |
void | setFilter(const QOpcUaMonitoringParameters::EventFilter &eventFilter) |
void | setFilterResult(const QOpcUaEventFilterResult &eventFilterResult) |
void | setIndexRange(const QString &indexRange) |
void | setLifetimeCount(quint32 lifetimeCount) |
void | setMaxKeepAliveCount(quint32 maxKeepAliveCount) |
void | setMaxNotificationsPerPublish(quint32 maxNotificationsPerPublish) |
void | setMonitoredItemId(quint32 monitoredItemId) |
void | setMonitoringMode(QOpcUaMonitoringParameters::MonitoringMode monitoringMode) |
void | setPriority(quint8 priority) |
void | setPublishingEnabled(bool publishingEnabled) |
void | setPublishingInterval(double publishingInterval) |
void | setQueueSize(quint32 queueSize) |
void | setSamplingInterval(double samplingInterval) |
void | setStatusCode(QOpcUa::UaStatusCode statusCode) |
void | setSubscriptionId(quint32 subscriptionId) |
void | setSubscriptionType(QOpcUaMonitoringParameters::SubscriptionType shared) |
(since 6.7) void | setTriggeredItemIds(const QSet<quint32> &ids) |
QOpcUa::UaStatusCode | statusCode() const |
quint32 | subscriptionId() const |
QOpcUaMonitoringParameters::SubscriptionType | subscriptionType() const |
(since 6.7) QSet<quint32> | triggeredItemIds() const |
QOpcUaMonitoringParameters & | operator=(const QOpcUaMonitoringParameters &other) |
详细说明
该类在QOpcUaNode::enableMonitoring() 请求中使用,并作为QOpcUaNode::monitoringStatus() 的返回值,在这种情况下,它包含从服务器修改后的值。
使用方法
对于大多数用例,只需要发布时间间隔。
QOpcUaMonitoringParameters p(100); // Set a publishing interval of 100ms and share the subscription. node->enableMonitoring(QOpcUa::NodeAttribute::Value, p);
如果需要exclusive 订阅,请使用第二个参数。
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
如果需要其他参数,则必须使用设置器方法进行设置。
成员类型文档
enum class QOpcUaMonitoringParameters::MonitoringMode
该枚举用于设置受监控项目的监控模式。
常数 | 值 | 说明 |
---|---|---|
QOpcUaMonitoringParameters::MonitoringMode::Disabled | 0 | 禁用采样,不生成通知。 |
QOpcUaMonitoringParameters::MonitoringMode::Sampling | 1 | 启用了采样,生成了通知并进行了排队,但禁用了报告。 |
QOpcUaMonitoringParameters::MonitoringMode::Reporting | 2 | 取样已启用,通知已生成并排队,报告已启用。 |
枚举类 QOpcUaMonitoringParameters::Parameter
flags 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 (since Qt 6.7) | (1 << 11) |
Parameters 类型是QFlags<Parameter> 的类型定义。它存储参数值的 OR 组合。
enum class QOpcUaMonitoringParameters::SubscriptionType
该枚举用于确定受监控项目是否可添加到共享订阅中,或是否必须创建新订阅。
常量 | 值 | 说明 |
---|---|---|
QOpcUaMonitoringParameters::SubscriptionType::Shared | 0 | 与具有相同时间间隔的其他受监控项目共享订阅 |
QOpcUaMonitoringParameters::SubscriptionType::Exclusive | 1 | 为该属性申请新订阅 |
成员函数文档
QOpcUaMonitoringParameters::QOpcUaMonitoringParameters()
QOpcUaMonitoringParameters 的默认构造函数。
QOpcUaMonitoringParameters::QOpcUaMonitoringParameters(double publishingInterval, QOpcUaMonitoringParameters::SubscriptionType shared = SubscriptionType::Shared, quint32 subscriptionId = 0)
Qt OPC UA publishingInterval 必须提供, 和 是可选项。shared subscriptionId
QOpcUaMonitoringParameters::QOpcUaMonitoringParameters(const QOpcUaMonitoringParameters &other)
根据other 的值构造一个 QOpcuaMonitoringParameters 对象。
[noexcept]
QOpcUaMonitoringParameters::~QOpcUaMonitoringParameters()
QOpcUaMonitoringParameters 的析构函数。
void QOpcUaMonitoringParameters::clearFilter()
从监控参数中删除当前过滤器。
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
返回订阅的最大 keepalive 计数。
另请参阅 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 作为订阅的最大 keepalive 计数。
另请参阅 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 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.