diff options
Diffstat (limited to 'examples/bluetooth/lowenergyscanner')
-rw-r--r-- | examples/bluetooth/lowenergyscanner/assets/Dialog.qml | 2 | ||||
-rw-r--r-- | examples/bluetooth/lowenergyscanner/device.cpp | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/examples/bluetooth/lowenergyscanner/assets/Dialog.qml b/examples/bluetooth/lowenergyscanner/assets/Dialog.qml index 2b8580f3..190e6b90 100644 --- a/examples/bluetooth/lowenergyscanner/assets/Dialog.qml +++ b/examples/bluetooth/lowenergyscanner/assets/Dialog.qml @@ -42,7 +42,7 @@ import QtQuick 2.0 Rectangle { width: parent.width/3*2 - height: 62 + height: dialogTextId.height + background.height + 20 z: 50 property string dialogText: "" property bool busyImage: true diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp index 1f1e11c4..b9c8b532 100644 --- a/examples/bluetooth/lowenergyscanner/device.cpp +++ b/examples/bluetooth/lowenergyscanner/device.cpp @@ -290,13 +290,24 @@ void Device::deviceDisconnected() void Device::serviceDetailsDiscovered(QLowEnergyService::ServiceState newState) { - if (newState != QLowEnergyService::ServiceDiscovered) + if (newState != QLowEnergyService::ServiceDiscovered) { + // do not hang in "Scanning for characteristics" mode forever + // in case the service discovery failed + // We have to queue the signal up to give UI time to even enter + // the above mode + if (newState != QLowEnergyService::DiscoveringServices) { + QMetaObject::invokeMethod(this, "characteristicsUpdated", + Qt::QueuedConnection); + } return; + } QLowEnergyService *service = qobject_cast<QLowEnergyService *>(sender()); if (!service) return; + + //! [les-chars] const QList<QLowEnergyCharacteristic> chars = service->characteristics(); foreach (const QLowEnergyCharacteristic &ch, chars) { |