diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/qt-ble.cpp | 2 | ||||
-rw-r--r-- | core/qt-ble.h | 2 |
2 files changed, 4 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; } } diff --git a/core/qt-ble.h b/core/qt-ble.h index ddf628e60..eb028f9b9 100644 --- a/core/qt-ble.h +++ b/core/qt-ble.h @@ -24,6 +24,7 @@ public: dc_status_t read(void* data, size_t size, size_t *actual); inline QLowEnergyService *preferredService() { return preferred; } + inline int descriptorWritten() { return desc_written; } dc_status_t select_preferred_service(void); public slots: @@ -43,6 +44,7 @@ private: bool isCharacteristicWritten; dc_user_device_t *device; unsigned int hw_credit = 0; + unsigned int desc_written = 0; QList<QUuid> hwAllCharacteristics = { "{00000001-0000-1000-8000-008025000000}", // HW_OSTC_BLE_DATA_RX |