From 6031692a39820c0b5466d558e913272edabeb92a Mon Sep 17 00:00:00 2001 From: Jan Mulder Date: Mon, 3 Jul 2017 20:56:44 +0200 Subject: Use waitFor instead of timer See e79bede0aa5b3bd. We rather use wait in combination with spinning the event loop. Signed-off-by: Jan Mulder --- core/qt-ble.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'core/qt-ble.cpp') 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? -- cgit v1.2.3-70-g09d2