Qt Quick Water Pump
// Copyright (C) 2018 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtOpcUa as QtOpcUa Item { readonly property alias tank1: tank1 readonly property alias tank2: tank2 readonly property alias state: machineState.value readonly property alias tank2PercentFilled: tank2.percentFilled readonly property alias tank2valveState: tank2.valveState readonly property alias designation: designation.value property alias resetMethod: resetMethod property alias startMethod: startMethod property alias stopMethod: stopMethod property alias flushMethod: flushMethod QtOpcUa.NodeId { identifier: "s=Machine" ns: "Demo Namespace" id: machineNodeId } QtOpcUa.MethodNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.Start" ns: "Demo Namespace" } objectNodeId: machineNodeId id: startMethod } QtOpcUa.MethodNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.Stop" ns: "Demo Namespace" } objectNodeId: machineNodeId id: stopMethod } QtOpcUa.MethodNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.FlushTank2" ns: "Demo Namespace" } objectNodeId: machineNodeId id: flushMethod } QtOpcUa.MethodNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.Reset" ns: "Demo Namespace" } objectNodeId: machineNodeId id: resetMethod } enum MachineState { Idle = 0, Pumping = 1, Flushing = 2 } Tank { id: tank1 tankNode: QtOpcUa.Node { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.Tank1" ns: "Demo Namespace" } } } Tank { id: tank2 tankNode: QtOpcUa.Node { nodeId: QtOpcUa.NodeId { identifier: "s=" + tank2.tankName ns: "Demo Namespace" } } property alias targetPercent: targetPercent.value readonly property string tankName: "Machine.Tank2" readonly property alias valveState: valveState.value QtOpcUa.ValueNode { nodeId: QtOpcUa.NodeId { identifier: "s=" + tank2.tankName + ".TargetPercent" ns: "Demo Namespace" } id: targetPercent } QtOpcUa.ValueNode { nodeId: QtOpcUa.NodeId { identifier: "s=" + tank2.tankName + ".ValveState" ns: "Demo Namespace" } id: valveState } } QtOpcUa.ValueNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.State" ns: "Demo Namespace" } id: machineState } QtOpcUa.ValueNode { nodeId: QtOpcUa.NodeId { identifier: "s=Machine.Designation" ns: "Demo Namespace" } id: designation } }