From 073b305d7f80b952c0d0858115fc102edd0339b4 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Fri, 13 Sep 2019 12:41:15 +0200 Subject: Fix endianess of GUID node ids Change-Id: I948bd4bb6a58874c6d2cc9737777a08c0f214648 Reviewed-by: Frank Meerkoetter --- src/plugins/opcua/open62541/qopen62541valueconverter.cpp | 11 +++++++---- src/plugins/opcua/uacpp/quacppvalueconverter.cpp | 10 ++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/opcua/open62541/qopen62541valueconverter.cpp b/src/plugins/opcua/open62541/qopen62541valueconverter.cpp index d044c5c..5649137 100644 --- a/src/plugins/opcua/open62541/qopen62541valueconverter.cpp +++ b/src/plugins/opcua/open62541/qopen62541valueconverter.cpp @@ -313,7 +313,10 @@ QDateTime scalarToQt(const UA_DateTime *data) template<> QUuid scalarToQt(const UA_Guid *data) { - return QUuid(data->data1, data->data2, data->data3, data->data4[0], data->data4[1], data->data4[2], + return QUuid(qFromBigEndian(data->data1), + qFromBigEndian(data->data2), + qFromBigEndian(data->data3), + data->data4[0], data->data4[1], data->data4[2], data->data4[3], data->data4[4], data->data4[5], data->data4[6], data->data4[7]); } @@ -515,9 +518,9 @@ void scalarFromQt(const QOpcUaQualifiedNa template<> void scalarFromQt(const QUuid &value, UA_Guid *ptr) { - ptr->data1 = value.data1; - ptr->data2 = value.data2; - ptr->data3 = value.data3; + ptr->data1 = qToBigEndian(value.data1); + ptr->data2 = qToBigEndian(value.data2); + ptr->data3 = qToBigEndian(value.data3); std::memcpy(ptr->data4, value.data4, sizeof(value.data4)); } diff --git a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp index 3aac31d..0b2133f 100644 --- a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp +++ b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp @@ -186,7 +186,9 @@ template<> QVariant scalarToQVariant(OpcUa_Guid *data, QMetaType::Type type) { Q_UNUSED(type) - return QUuid(data->Data1, data->Data2, data->Data3, + return QUuid(qFromBigEndian(data->Data1), + qFromBigEndian(data->Data2), + qFromBigEndian(data->Data3), data->Data4[0], data->Data4[1], data->Data4[2], data->Data4[3], data->Data4[4], data->Data4[5], data->Data4[6], data->Data4[7]); } @@ -529,9 +531,9 @@ template<> void scalarFromQVariant(const QVariant &var, OpcUa_Guid *ptr) { const QUuid uuid = var.toUuid(); - ptr->Data1 = uuid.data1; - ptr->Data2 = uuid.data2; - ptr->Data3 = uuid.data3; + ptr->Data1 = qToBigEndian(uuid.data1); + ptr->Data2 = qToBigEndian(uuid.data2); + ptr->Data3 = qToBigEndian(uuid.data3); memcpy(ptr->Data4, uuid.data4, sizeof(uuid.data4)); } -- cgit v1.2.3