aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/OpcUaMonitoredNode.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/OpcUaMonitoredNode.cpp b/src/OpcUaMonitoredNode.cpp
index 922ad43..c5f1dc0 100644
--- a/src/OpcUaMonitoredNode.cpp
+++ b/src/OpcUaMonitoredNode.cpp
@@ -568,6 +568,12 @@ OpcUaMonitoredNode::writeValueAtRange (const QVariant &value,
return;
}
+ // OPC UA requires an array value for index-range writes, even for a
+ // single element. Wrap scalars in a one-element list so strict
+ // servers don't reject with BadIndexRangeNoData.
+ if (coerced.metaType ().id () != QMetaType::QVariantList)
+ coerced = QVariant::fromValue (QVariantList{ coerced });
+
m_pendingRangeWrite = true;
if (!m_node->writeAttributeRange (QOpcUa::NodeAttribute::Value, coerced,