QOpcUaMonitoringParameters 类
QOpcUaMonitoringParameters 提供了一种设置和检索订阅和监控项参数的方式。 更多...
头文件 | #include <QOpcUaMonitoringParameters> |
CMake | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
qmake | QT += 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() | |
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> &状态) |
void | setFilter(const QOpcUaMonitoringParameters::DataChangeFilter &过滤器) |
void | setFilter(const QOpcUaMonitoringParameters::EventFilter &事件过滤器) |
void | setFilterResult(const QOpcUaEventFilterResult &事件过滤器结果) |
void | setIndexRange(const QString &索引范围) |
void | setLifetimeCount(quint32 生命周期计数) |
void | setMaxKeepAliveCount(quint32 最大保持活动计数) |
void | setMaxNotificationsPerPublish(quint32 每次发布最大通知数) |
void | setMonitoredItemId(quint32 被监视项ID) |
void | setMonitoringMode(QOpcUaMonitoringParameters::MonitoringMode 监控模式) |
void | setPriority(quint8 优先级) |
void | setPublishingEnabled(bool 发布启用) |
void | setPublishingInterval(double 发布间隔) |
void | setQueueSize(quint32 队列大小) |
void | setSamplingInterval(double 采样间隔) |
void | setStatusCode(QOpcUa::UaStatusCode 状态码) |
void | setSubscriptionId(quint32 订阅ID) |
void | setSubscriptionType(QOpcUaMonitoringParameters::SubscriptionType 共享) |
(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 &其他) |
详细描述
此类用于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::Disabled | 0 | 采样被禁用,并且没有生成通知。 |
QOpcUaMonitoringParameters::MonitoringMode::Sampling | 1 | 采样被启用,并且生成并排队通知,但在报告中被禁用。 |
QOpcUaMonitoringParameters::MonitoringMode::Reporting | 2 | 采样被启用,生成并排队通知,报告被启用。 |
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::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
返回订阅的最大保活计数。
另请参阅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公司注册商标。所有其它商标均为其所有者财产。