summaryrefslogtreecommitdiffstats
path: root/core/qt-ble.cpp
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2018-10-06 11:26:26 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-06 19:38:28 -0700
commit88f4c06b993daa1d669aad71f90d92c4ebdb4c9c (patch)
treed56f1817ef686285df83f7f543de8939c3ad99db /core/qt-ble.cpp
parentec532b8f5963221ff5aad37799ace869dacb76a5 (diff)
downloadsubsurface-88f4c06b993daa1d669aad71f90d92c4ebdb4c9c.tar.gz
qt-ble: add support to wait for descriptor write completion
When we enable notifications, we actually want to make sure to wait for that write to have completed before we start communicating with the device, because otherwise we might lose notification events. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'core/qt-ble.cpp')
-rw-r--r--core/qt-ble.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/qt-ble.cpp b/core/qt-ble.cpp
index eae10e6b1..0ecad50c3 100644
--- a/core/qt-ble.cpp
+++ b/core/qt-ble.cpp
@@ -92,6 +92,7 @@ void BLEObject::characteristicWritten(const QLowEnergyCharacteristic &c, const Q
void BLEObject::writeCompleted(const QLowEnergyDescriptor&, const QByteArray&)
{
qDebug() << "BLE write completed";
+ desc_written++;
}
void BLEObject::addService(const QBluetoothUuid &newService)
@@ -489,6 +490,7 @@ dc_status_t qt_ble_open(void **io, dc_context_t *, const char *devaddr, dc_user_
qDebug() << "now writing \"0x0100\" to the descriptor" << d.uuid().toString();
ble->preferredService()->writeDescriptor(d, QByteArray::fromHex("0100"));
+ WAITFOR(ble->descriptorWritten(), 1000);
break;
}
}