async def writeDescriptor_value_(self, descriptor: CBDescriptor, value: NSData) -> bool: dUUID = descriptor.UUID().UUIDString() event = self._descriptor_write_events.get_cleared(dUUID) self.peripheral.writeValue_forDescriptor_(value, descriptor) await event.wait() return True
def peripheral_didWriteValueForDescriptor_error_(self, peripheral: CBPeripheral, descriptor: CBDescriptor, error: NSError): dUUID = descriptor.UUID().UUIDString() if error is not None: raise BleakError("Failed to write descriptor {}: {}".format( dUUID, error)) logger.debug("Write Descriptor Value") self._descriptor_write_log[dUUID] = True
def peripheral_didUpdateValueForDescriptor_error_(self, peripheral: CBPeripheral, descriptor: CBDescriptor, error: NSError): dUUID = descriptor.UUID().UUIDString() if error is not None: raise BleakError("Failed to read characteristic {}: {}".format( dUUID, error)) logger.debug("Read descriptor value") self._descriptor_value_log[dUUID] = True
async def writeDescriptor_value_(self, descriptor: CBDescriptor, value: NSData) -> bool: dUUID = descriptor.UUID().UUIDString() self._descriptor_write_log[dUUID] = False self.peripheral.writeValue_forDescriptor_(value, descriptor) while not self._descriptor_write_log[dUUID]: await asyncio.sleep(0.01) return True
def did_write_value_for_descriptor( self, peripheral: CBPeripheral, descriptor: CBDescriptor, error: NSError ): dUUID = descriptor.UUID().UUIDString() if error is not None: raise BleakError("Failed to write descriptor {}: {}".format(dUUID, error)) logger.debug("Write Descriptor Value") event = self._descriptor_write_events.get(dUUID) if event: event.set() else: logger.warning("Unexpected event didWriteValueForDescriptor")
async def readDescriptor_( self, descriptor: CBDescriptor, use_cached=True ) -> NSData: if descriptor.value() is not None and use_cached is True: return descriptor.value() dUUID = descriptor.UUID().UUIDString() event = self._descriptor_read_events.get_cleared(dUUID) self.peripheral.readValueForDescriptor_(descriptor) await event.wait() return descriptor.value()
async def readDescriptor_(self, descriptor: CBDescriptor, use_cached=True) -> NSData: if descriptor.value() is not None and use_cached is True: return descriptor.value() dUUID = descriptor.UUID().UUIDString() self._descriptor_value_log[dUUID] = False self.peripheral.readValueForDescriptor_(descriptor) while not self._descriptor_value_log[dUUID]: await asyncio.sleep(0.01) return descriptor.value()
def peripheral_didUpdateValueForDescriptor_error_(self, peripheral: CBPeripheral, descriptor: CBDescriptor, error: NSError): dUUID = descriptor.UUID().UUIDString() if error is not None: raise BleakError("Failed to read characteristic {}: {}".format( dUUID, error)) logger.debug("Read descriptor value") event = self._descriptor_read_events.get(dUUID) if event: event.set() else: logger.warning("Unexpected event didUpdateValueForDescriptor")