/** * @file OpcUaMonitoredNode.h * @brief QML component for monitoring a single OPC UA node. * * Inherits QObject + QQmlParserStatus so that initialisation is * deferred until all QML bindings are applied (componentComplete). */ #ifndef OPCUAMONITOREDNODE_H #define OPCUAMONITOREDNODE_H #include #include #include class OpcUaMonitoredNode : public QObject, public QQmlParserStatus { Q_OBJECT Q_INTERFACES (QQmlParserStatus) QML_ELEMENT Q_PROPERTY (QString nodeId READ nodeId WRITE setNodeId NOTIFY nodeIdChanged) Q_PROPERTY ( bool monitored READ monitored WRITE setMonitored NOTIFY monitoredChanged) public: explicit OpcUaMonitoredNode (QObject *parent = nullptr); QString nodeId () const; void setNodeId (const QString &id); bool monitored () const; void setMonitored (bool monitored); void classBegin () override; void componentComplete () override; signals: void nodeIdChanged (); void monitoredChanged (); private: QString m_nodeId; bool m_monitored = true; bool m_componentComplete = false; }; #endif // OPCUAMONITOREDNODE_H