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
}
}