async def discoverCharacteristics_( self, service: CBService, use_cached=True ) -> [CBCharacteristic]: if service.characteristics() is not None and use_cached is True: return service.characteristics() sUUID = service.UUID().UUIDString() event = self._service_characteristic_discovered_events.get_cleared(sUUID) self.peripheral.discoverCharacteristics_forService_(None, service) await event.wait() return service.characteristics()
def peripheralManager_didAddService_error( # noqa: N802 self, peripheral_manager: CBPeripheralManager, service: CBService, error: NSError): uuid: str = service.UUID().UUIDString() if error: raise BlessError("Failed to add service {}: {}".format( uuid, error)) logger.debug("Peripheral manager did add service: {}".format(uuid)) logger.debug("service added had characteristics: {}".format( service.characteristics())) self._services_added_events[uuid].set()
async def discoverCharacteristics_(self, service: CBService, use_cached=True) -> [CBCharacteristic]: if service.characteristics() is not None and use_cached is True: return service.characteristics() serviceUUID = service.UUID().UUIDString() self._service_characteristic_discovered_log[serviceUUID] = False self.peripheral.discoverCharacteristics_forService_(None, service) while not self._service_characteristic_discovered_log[serviceUUID]: await asyncio.sleep(0.01) return service.characteristics()
def peripheral_didDiscoverCharacteristicsForService_error_( self, peripheral: CBPeripheral, service: CBService, error: NSError): serviceUUID = service.UUID().UUIDString() if error is not None: raise BleakError( "Failed to discover services for service {}: {}".format( serviceUUID, error)) logger.debug("Characteristics discovered") self._service_characteristic_discovered_log[serviceUUID] = True
def did_discover_characteristics_for_service( self, peripheral: CBPeripheral, service: CBService, error: NSError ): sUUID = service.UUID().UUIDString() if error is not None: raise BleakError( "Failed to discover services for service {}: {}".format(sUUID, error) ) logger.debug("Characteristics discovered") event = self._service_characteristic_discovered_events.get(sUUID) if event: event.set() else: logger.debug("Unexpected event didDiscoverCharacteristicsForService")