summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJannis Voelker <jannis.voelker@basyskom.com>2024-03-26 16:36:18 +0100
committerJannis Völker <jannis.voelker@basyskom.com>2024-04-08 07:05:10 +0000
commit2303ed6d33634a0a2565fe31ae0de991f75bc069 (patch)
treebcaf4562d5550a98f5aa6b2e729dc48808d0148c
parent8c276c9951bdb524d283108ca456f12207fcd9cd (diff)
Fix ByteString handling in the generic struct handler
ByteString fields were not handled correctly and structured types containing such a field failed to encode and decode. Pick-to: 6.7 6.7.0 6.5 Change-Id: I72a9dd0cbabd61930a08826a373fc65956cb7d2d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
-rw-r--r--src/opcua/client/qopcuagenericstructhandlerprivate.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/opcua/client/qopcuagenericstructhandlerprivate.cpp b/src/opcua/client/qopcuagenericstructhandlerprivate.cpp
index 0f74655..a0f8e1f 100644
--- a/src/opcua/client/qopcuagenericstructhandlerprivate.cpp
+++ b/src/opcua/client/qopcuagenericstructhandlerprivate.cpp
@@ -302,6 +302,9 @@ QVariant QOpcUaGenericStructHandlerPrivate::decodeKnownTypesInternal(QOpcUaBinar
if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::NodeId))
return decodeArrayOrScalar<QString, QOpcUa::Types::NodeId>(decoder, valueRank, success);
+ if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::ByteString))
+ return decodeArrayOrScalar<QByteArray>(decoder, valueRank, success);
+
if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::XmlElement))
return decodeArrayOrScalar<QByteArray>(decoder, valueRank, success);
@@ -576,6 +579,9 @@ bool QOpcUaGenericStructHandlerPrivate::encodeKnownTypesInternal(QOpcUaBinaryDat
if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::NodeId))
return encodeArrayOrScalar<QString, QOpcUa::Types::NodeId>(encoder, valueRank, value);
+ if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::ByteString))
+ return encodeArrayOrScalar<QByteArray>(encoder, valueRank, value);
+
if (dataTypeId == QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0::XmlElement))
return encodeArrayOrScalar<QByteArray>(encoder, valueRank, value);