diff options
-rw-r--r-- | core/qt-ble.cpp | 11 | ||||
-rw-r--r-- | core/qt-ble.h | 1 |
2 files changed, 4 insertions, 8 deletions
diff --git a/core/qt-ble.cpp b/core/qt-ble.cpp index 6ea59cded..3d29c2550 100644 --- a/core/qt-ble.cpp +++ b/core/qt-ble.cpp @@ -60,7 +60,6 @@ void BLEObject::characteristcStateChanged(const QLowEnergyCharacteristic &c, con Q_UNUSED(c) receivedPackets.append(value); - waitForPacket.exit(); } void BLEObject::writeCompleted(const QLowEnergyDescriptor &d, const QByteArray &value) @@ -155,13 +154,11 @@ dc_status_t BLEObject::read(void *data, size_t size, size_t *actual) if (list.isEmpty()) return DC_STATUS_IO; - QTimer timer; int msec = BLE_TIMEOUT; - timer.setSingleShot(true); - - waitForPacket.connect(&timer, SIGNAL(timeout()), SLOT(quit())); - timer.start(msec); - waitForPacket.exec(); + while (msec > 0 && receivedPackets.isEmpty()) { + waitFor(100); + msec -= 100; + }; } // Still no packet? diff --git a/core/qt-ble.h b/core/qt-ble.h index 34c726bb2..6f63870a6 100644 --- a/core/qt-ble.h +++ b/core/qt-ble.h @@ -36,7 +36,6 @@ private: QLowEnergyController *controller = nullptr; QList<QByteArray> receivedPackets; - QEventLoop waitForPacket; bool isCharacteristicWritten; dc_user_device_t *device; |