From e42869c93bde420e8f8a69c165c51679c603a84c Mon Sep 17 00:00:00 2001 From: MDE <59321583+mdevel1@users.noreply.github.com> Date: Fri, 31 Jan 2020 23:49:05 +0100 Subject: [PATCH] BLESession.startNotifications: Refactor out to a function --- scratch_link.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/scratch_link.py b/scratch_link.py index d39066a..191e8a6 100755 --- a/scratch_link.py +++ b/scratch_link.py @@ -513,17 +513,7 @@ class BLESession(Session): message = base64.standard_b64encode(b).decode('ascii') res['result'] = { 'message': message, 'encode': 'base64' } if params.get('startNotifications') == True: - logger.debug(f"start notification for {chara_id}") - service = self.perip.getServiceByUUID(UUID(service_id)) - chas = service.getCharacteristics(forUUID=chara_id) - handle = chas[0].getHandle() - # prepare notification handler - self.delegate.add_handle(service_id, chara_id, handle) - # request notification to the BLE device - self.lock.acquire() - self.perip.writeCharacteristic(chas[0].getHandle() + 1, - b"\x01\x00", True) - self.lock.release() + self.startNotifications(service_id, chara_id) elif self.status == self.CONNECTED and method == 'write': logger.debug("handle write request") @@ -548,6 +538,19 @@ class BLESession(Session): logger.debug(res) return res + def startNotifications(self, service_id, chara_id): + logger.debug(f"start notification for {chara_id}") + service = self.perip.getServiceByUUID(UUID(service_id)) + chas = service.getCharacteristics(forUUID=chara_id) + handle = chas[0].getHandle() + # prepare notification handler + self.delegate.add_handle(service_id, chara_id, handle) + # request notification to the BLE device + self.lock.acquire() + self.perip.writeCharacteristic(chas[0].getHandle() + 1, + b"\x01\x00", True) + self.lock.release() + def end_request(self): logger.debug("end_request of BLESession") if self.delegate: