summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/qt-ble.cpp11
-rw-r--r--core/qt-ble.h1
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;