// NodePage.qml — Demo page with OpcUaMonitoredNode lifecycle logging. import QtQuick import QtQuick.Controls import QtQuick.Layouts import Bobink Page { id: nodePage required property StackView stackRef required property int pageNumber required property var logFunction OpcUaMonitoredNode { id: demoNode nodeId: "ns=2;s=DemoVariable.Page" + nodePage.pageNumber monitored: nodePage.StackView.status === StackView.Active onMonitoredChanged: nodePage.logFunction( "Page " + nodePage.pageNumber + " node [" + nodeId + "] " + (monitored ? "MONITORED" : "UNMONITORED")) } ColumnLayout { anchors.fill: parent anchors.margins: 20 spacing: 12 RowLayout { Label { text: "Node Page " + nodePage.pageNumber font.bold: true font.pointSize: 14 } Item { Layout.fillWidth: true } Button { text: "Disconnect" onClicked: Bobink.disconnectFromServer() } } Label { text: "Node: " + demoNode.nodeId } Label { text: "Monitored: " + demoNode.monitored color: demoNode.monitored ? "green" : "gray" } Item { Layout.fillHeight: true } Button { Layout.fillWidth: true text: nodePage.pageNumber === 1 ? "Go to Page 2" : "Back to Page 1" onClicked: { if (nodePage.pageNumber === 1) nodePage.stackRef.push("NodePage.qml", { stackRef: nodePage.stackRef, pageNumber: 2, logFunction: nodePage.logFunction }); else nodePage.stackRef.pop(); } } } }