BLESession.startNotifications: Refactor out to a function

This commit is contained in:
MDE
2020-01-31 23:49:05 +01:00
committed by Shin'ichiro Kawasaki
parent 6fdc8dcbb3
commit e42869c93b

View File

@@ -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: