diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-05-29 16:29:17 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-05-29 20:16:32 +0000 |
commit | de39c2a7f0c877439c9abb212707803ac6ca1cbc (patch) | |
tree | f5e283e70c9f07dfe64d9c8fea6d0a76ee398cd4 | |
parent | b3bf881ff8d1671c9bd3f46bfe7a6e835fe087ee (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.cpp | 12 |
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); } } |