summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2018-05-29 16:29:17 +0200
committerKarsten Heimrich <karsten.heimrich@qt.io>2018-05-29 20:16:32 +0000
commitde39c2a7f0c877439c9abb212707803ac6ca1cbc (patch)
treef5e283e70c9f07dfe64d9c8fea6d0a76ee398cd4
parentb3bf881ff8d1671c9bd3f46bfe7a6e835fe087ee (diff)
Fix waiting for a IO list response from a KNXnet/IP server
Change-Id: I4f6067757d15a430d90a9f36310c7d770ce5e8e0 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--examples/knx/knxeditor/localdevicemanagement.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/examples/knx/knxeditor/localdevicemanagement.cpp b/examples/knx/knxeditor/localdevicemanagement.cpp
index 5b069fe..9b82f48 100644
--- a/examples/knx/knxeditor/localdevicemanagement.cpp
+++ b/examples/knx/knxeditor/localdevicemanagement.cpp
@@ -311,14 +311,12 @@ void LocalDeviceManagement::handleIoListResponse(const QKnxDeviceManagementFrame
|| frame.property() != QKnxInterfaceObjectProperty::Device::IoList)
return;
- m_awaitIoListResponse = true;
-
auto dataTypes = QKnxInterfaceObjectPropertyDataType::fromProperty(QKnxInterfaceObjectProperty
::Device::IoList);
if (!dataTypes.value(0).isValid())
return;
- auto data = frame.data().toHex().toByteArray();
+ auto data = frame.data().toByteArray();
quint8 expectedDataSize = dataTypes[0].size();
if (frame.startIndex() == 0) {
if (data.size() == expectedDataSize) {
@@ -326,8 +324,8 @@ void LocalDeviceManagement::handleIoListResponse(const QKnxDeviceManagementFrame
.setObjectType(QKnxInterfaceObjectType::System::Device)
.setObjectInstance(1)
.setProperty(QKnxInterfaceObjectProperty::Device::IoList)
- .setNumberOfElements(data.toUShort(nullptr, 16))
- .setNumberOfElements(1)
+ .setNumberOfElements(data.toHex().toUShort(nullptr, 16))
+ .setStartIndex(1)
.createRequest()
);
}
@@ -335,7 +333,9 @@ void LocalDeviceManagement::handleIoListResponse(const QKnxDeviceManagementFrame
if ((data.size() % expectedDataSize) == 0) {
QSet<int> values;
for (int i = 0; i < data.size(); i += expectedDataSize)
- values.insert(data.mid(i, expectedDataSize).toUShort(nullptr, 16));
+ values.insert(data.mid(i, expectedDataSize).toHex().toUShort(nullptr, 16));
+
+ m_awaitIoListResponse = false;
setupComboBox(ui->objectType, QKnxInterfaceObjectType::staticMetaObject, values);
}
}