summaryrefslogtreecommitdiffstats
path: root/src/OpcUaMonitoredNode.h
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-20 14:50:39 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-20 14:50:39 +0100
commit6c142a234673e442561b2c050b727aa4400177d8 (patch)
treebc44b564b67f7644dde37dd2147b63080a1611cf /src/OpcUaMonitoredNode.h
parent47227acd25c59a1d4b2961c0e1b1eb879e68adec (diff)
downloadBobinkQtOpcUa-6c142a234673e442561b2c050b727aa4400177d8.tar.gz
BobinkQtOpcUa-6c142a234673e442561b2c050b727aa4400177d8.zip
Wire monitored property to OPC UA monitored items
The monitored bool now calls enableMonitoring/disableMonitoring on the Value attribute. Adds publishingInterval property (default 100ms). Value is no longer read at init — delivered by the monitored item. Empty 4th demo page to verify monitoring stops when navigating away.
Diffstat (limited to 'src/OpcUaMonitoredNode.h')
-rw-r--r--src/OpcUaMonitoredNode.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/OpcUaMonitoredNode.h b/src/OpcUaMonitoredNode.h
index 5895bea..3e86cb4 100644
--- a/src/OpcUaMonitoredNode.h
+++ b/src/OpcUaMonitoredNode.h
@@ -56,6 +56,8 @@ class OpcUaMonitoredNode : public QObject, public QQmlParserStatus
Q_PROPERTY (QString nodeId READ nodeId WRITE setNodeId NOTIFY nodeIdChanged)
Q_PROPERTY (
bool monitored READ monitored WRITE setMonitored NOTIFY monitoredChanged)
+ Q_PROPERTY (double publishingInterval READ publishingInterval WRITE
+ setPublishingInterval NOTIFY publishingIntervalChanged)
Q_PROPERTY (QVariant value READ value NOTIFY valueChanged)
Q_PROPERTY (bool writable READ writable NOTIFY writableChanged)
Q_PROPERTY (OpcUaNodeInfo info READ info NOTIFY infoChanged)
@@ -69,6 +71,9 @@ public:
bool monitored () const;
void setMonitored (bool monitored);
+ double publishingInterval () const;
+ void setPublishingInterval (double interval);
+
QVariant value () const;
bool writable () const;
OpcUaNodeInfo info () const;
@@ -89,6 +94,7 @@ public:
signals:
void nodeIdChanged ();
void monitoredChanged ();
+ void publishingIntervalChanged ();
void valueChanged ();
void writableChanged ();
void infoChanged ();
@@ -101,14 +107,21 @@ private slots:
void handleClientConnectedChanged ();
void handleAttributeWritten (QOpcUa::NodeAttribute attr,
QOpcUa::UaStatusCode statusCode);
+ void handleEnableMonitoringFinished (QOpcUa::NodeAttribute attr,
+ QOpcUa::UaStatusCode statusCode);
+ void handleDisableMonitoringFinished (QOpcUa::NodeAttribute attr,
+ QOpcUa::UaStatusCode statusCode);
private:
void setupNode ();
void teardownNode ();
+ void startMonitoring ();
+ void stopMonitoring ();
QVariant coerceValue (const QVariant &input) const;
QString m_nodeId;
bool m_monitored = true;
+ double m_publishingInterval = 100.0;
bool m_componentComplete = false;
QOpcUaNode *m_node = nullptr;