diff options
author | Jannis Voelker <jannis.voelker@basyskom.com> | 2018-04-06 10:59:44 +0200 |
---|---|---|
committer | Frank Meerkoetter <frank.meerkoetter@basyskom.com> | 2018-04-11 09:58:10 +0000 |
commit | ef0d2cd86b4f2d11db267b9ae77f89be1c798daa (patch) | |
tree | 6e2d62723886aa5e276e0035e48ae05b4d6c7a87 | |
parent | 8b7fa3f9b8b750fb39f27e588ed9d48ae56ed405 (diff) |
Return blob for unknown extension object typesv5.11.0-beta4
Currently, unsupported extension objects are returned as an empty QVariant.
Returning the raw data instead as it is done by the OPC UA SDKs allows
the user to decode the value himself.
Change-Id: I405bc6dbee7f3a91838548f8728da81f76952322
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
-rw-r--r-- | src/plugins/opcua/open62541/qopen62541valueconverter.cpp | 5 | ||||
-rw-r--r-- | src/plugins/opcua/uacpp/quacppvalueconverter.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/opcua/open62541/qopen62541valueconverter.cpp b/src/plugins/opcua/open62541/qopen62541valueconverter.cpp index 2539784..cfdf59d 100644 --- a/src/plugins/opcua/open62541/qopen62541valueconverter.cpp +++ b/src/plugins/opcua/open62541/qopen62541valueconverter.cpp @@ -384,8 +384,9 @@ QVariant scalarToQVariant<QVariant, UA_ExtensionObject>(UA_ExtensionObject *data result = QVariant::fromValue(QOpcUaBinaryDataEncoding::decode<QOpcUa::QXValue>(buffer, length, success)); break; default: - qCWarning(QT_OPCUA_PLUGINS_OPEN62541) << "Unknown extension object type: ns=0;i=" << data->content.encoded.typeId.identifier.numeric; - return QVariant(); + qCWarning(QT_OPCUA_PLUGINS_OPEN62541) << "Unknown extension object type, returning raw data:" << Open62541Utils::nodeIdToQString(data->content.encoded.typeId); + result = QByteArray(buffer, data->content.encoded.body.length); + success = true; } if (success) diff --git a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp index 0f48c0e..1b4e9f5 100644 --- a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp +++ b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp @@ -310,8 +310,9 @@ QVariant scalarToQVariant<QVariant, OpcUa_ExtensionObject>(OpcUa_ExtensionObject result = QVariant::fromValue(QOpcUaBinaryDataEncoding::decode<QOpcUa::QXValue>(buffer, length, success)); break; default: - qCWarning(QT_OPCUA_PLUGINS_UACPP, "Unknown extension object type: ns=0;i=%d", data->TypeId.NodeId.Identifier.Numeric); - return QVariant(); + qCWarning(QT_OPCUA_PLUGINS_UACPP) << "Unknown extension object type, returning raw data:" << UACppUtils::nodeIdToQString(data->TypeId.NodeId); + result = QByteArray(buffer, length); + success = true; } if (success) |