async def discoverDescriptors_( self, characteristic: CBCharacteristic, use_cached=True ) -> [CBDescriptor]: if characteristic.descriptors() is not None and use_cached is True: return characteristic.descriptors() cUUID = characteristic.UUID().UUIDString() event = self._characteristic_descriptor_discover_events.get_cleared(cUUID) self.peripheral.discoverDescriptorsForCharacteristic_(characteristic) await event.wait() return characteristic.descriptors()
async def discoverDescriptors_(self, characteristic: CBCharacteristic, use_cached=True) -> [CBDescriptor]: if characteristic.descriptors() is not None and use_cached is True: return characteristic.descriptors() cUUID = characteristic.UUID().UUIDString() self._characteristic_descriptor_log[cUUID] = False self.peripheral.discoverDescriptorsForCharacteristic_(characteristic) while not self._characteristic_descriptor_log[cUUID]: await asyncio.sleep(0.01) return characteristic.descriptors()