diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-23 17:35:34 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-23 17:35:34 +0100 |
| commit | 4ac860baa81f30e3e1fc9aaa42a3f0bb0537543a (patch) | |
| tree | 3ba02ef1943b0a6fcba49d8066b28c629f2a47a9 /demo | |
| parent | dea81e8c330d75eaaa96e7f1915a9824ca23b15d (diff) | |
| download | BobinkQtOpcUa-4ac860baa81f30e3e1fc9aaa42a3f0bb0537543a.tar.gz BobinkQtOpcUa-4ac860baa81f30e3e1fc9aaa42a3f0bb0537543a.zip | |
Add writeValueAtRange for index-range array writes
Diffstat (limited to 'demo')
| -rw-r--r-- | demo/NodePage.qml | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/demo/NodePage.qml b/demo/NodePage.qml index e677232..9b23502 100644 --- a/demo/NodePage.qml +++ b/demo/NodePage.qml @@ -91,6 +91,19 @@ Page { ] }, { + title: "Index Range Write", + description: "Write to specific array elements using OPC UA index" + + " range syntax. Examples: \"0\" = first element," + + " \"0:2\" = elements 0–2. Enter the range and the value(s)" + + " to write (comma-separated for multi-element ranges).", + indexRange: true, + nodes: [ + "ns=1;s=int32_rw_array", + "ns=1;s=float_rw_array", + "ns=1;s=string_rw_array" + ] + }, + { title: "Non-Existent Nodes", description: "These node IDs do not exist on the server." + " The row should show no value and no metadata in the tooltip.", @@ -243,19 +256,41 @@ Page { } // Column 3: Edit area (writable) or READ-ONLY label + + // Normal write controls (non-index-range pages) TextField { id: editField - visible: node.writable + visible: node.writable && !currentPage.indexRange Layout.fillWidth: true placeholderText: "Enter value..." onAccepted: node.writeValue(text) } Button { - id: writeButton - visible: node.writable + visible: node.writable && !currentPage.indexRange text: "Write" onClicked: node.writeValue(editField.text) } + + // Index range write controls + TextField { + id: rangeField + visible: node.writable && currentPage.indexRange === true + Layout.preferredWidth: 60 + placeholderText: "Range" + } + TextField { + id: rangeValueField + visible: node.writable && currentPage.indexRange === true + Layout.fillWidth: true + placeholderText: "Value(s)..." + onAccepted: node.writeValueAtRange(text, rangeField.text) + } + Button { + visible: node.writable && currentPage.indexRange === true + text: "Write Range" + onClicked: node.writeValueAtRange(rangeValueField.text, rangeField.text) + } + Label { visible: !node.writable text: "(READ-ONLY)" |
