diff --git a/src/NimBLERemoteCharacteristic.cpp b/src/NimBLERemoteCharacteristic.cpp index 8896644d..2c2e9323 100644 --- a/src/NimBLERemoteCharacteristic.cpp +++ b/src/NimBLERemoteCharacteristic.cpp @@ -176,8 +176,10 @@ NimBLERemoteDescriptor* NimBLERemoteCharacteristic::getDescriptor(const NimBLEUU */ const std::vector& NimBLERemoteCharacteristic::getDescriptors(bool refresh) const { if (refresh) { + NimBLETaskData taskData(const_cast(this)); + NimBLEDescriptorFilter filter = {nullptr, nullptr, &taskData}; deleteDescriptors(); - retrieveDescriptors(); + retrieveDescriptors(&filter); } return m_vDescriptors; diff --git a/src/NimBLERemoteCharacteristic.h b/src/NimBLERemoteCharacteristic.h index 6ecda8d6..27833c9d 100644 --- a/src/NimBLERemoteCharacteristic.h +++ b/src/NimBLERemoteCharacteristic.h @@ -67,7 +67,7 @@ class NimBLERemoteCharacteristic : public NimBLERemoteValueAttribute { ~NimBLERemoteCharacteristic(); bool setNotify(uint16_t val, notify_callback notifyCallback = nullptr, bool response = true) const; - bool retrieveDescriptors(NimBLEDescriptorFilter* filter = nullptr) const; + bool retrieveDescriptors(NimBLEDescriptorFilter* filter) const; static int descriptorDiscCB( uint16_t connHandle, const ble_gatt_error* error, uint16_t chrHandle, const ble_gatt_dsc* dsc, void* arg);