summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/opcua/uacpp/quacppbackend.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/opcua/uacpp/quacppbackend.cpp b/src/plugins/opcua/uacpp/quacppbackend.cpp
index 4f47c8a..bb5516c 100644
--- a/src/plugins/opcua/uacpp/quacppbackend.cpp
+++ b/src/plugins/opcua/uacpp/quacppbackend.cpp
@@ -303,7 +303,7 @@ void UACppAsyncBackend::writeAttribute(uintptr_t handle, const UaNodeId &id, QOp
static_cast<QOpcUa::UaStatusCode>(writeResults[0]) : static_cast<QOpcUa::UaStatusCode>(result.statusCode()));
}
-void UACppAsyncBackend::writeAttributes(uintptr_t handle, const UaNodeId &id, QOpcUaNode::AttributeMap toWrite, QOpcUa::Types /*valueAttributeType*/)
+void UACppAsyncBackend::writeAttributes(uintptr_t handle, const UaNodeId &id, QOpcUaNode::AttributeMap toWrite, QOpcUa::Types valueAttributeType)
{
if (toWrite.size() == 0) {
qCWarning(QT_OPCUA_PLUGINS_UACPP, "No values to be written");
@@ -322,6 +322,8 @@ void UACppAsyncBackend::writeAttributes(uintptr_t handle, const UaNodeId &id, QO
for (auto it = toWrite.constBegin(); it != toWrite.constEnd(); ++it, ++index) {
id.copyTo(&nodesToWrite[index].NodeId);
QOpcUa::Types type = attributeIdToTypeId(it.key());
+ if (type == QOpcUa::Types::Undefined)
+ type = valueAttributeType;
nodesToWrite[index].AttributeId = QUACppValueConverter::toUaAttributeId(it.key());
nodesToWrite[index].Value.Value = QUACppValueConverter::toUACppVariant(it.value(), type);
}