steamclock / bluejay

A simple Swift framework for building reliable Bluetooth LE apps.
MIT License
1.09k stars 98 forks source link

Add peripheralIsReady support for writes without response #251

Open markohara opened 3 years ago

markohara commented 3 years ago

Fixes #250:

Summary of Problem:

The current solution assumes that write events without a response can automatically be processed however this isn't the case. If we have a large volume of writes without a response the will out grow the Core Bluetooth buffer if they are all processed immediately.

Proposed Solution:

To mitigate against this issue apple have introduce the peripheralIsReady toSendWriteWithoutResponse delegate method. My proposed solution uses this method to determine when the write should be processed. I have introduced a new event type and pass it to the handler when the peripheralIsReady delegate method is called