Can I get some clarification on what Queued Writes is and is not? This is just another one of the hilariously under documented features that could be summed up immediately if instead of just posting code - someone thought to write a few sentences on “How we intended this feature would be used”.
My sincerest plea for Nordic is someone write “how we intended this to be used” notes on SDK15 and beyond. A questionably readable example is not a replacement.
* It seems Queued Writes use a BLE feature of “prepared write” and “execute write”. Is this something from the BLE spec? Because when using a generic app as the master/client, it still seems to work in the example.
* I assume that under the hood this is made possible with some gap/l2cap fragmenting using offsets. Does that mean that data no larger than 512 bytes can be written which iirc is the absolute maximum size of a GATT characteristic? If not is there an upper size?
* Does each packet get a response? If so, can multiple packets be put in a single connection interval? Does the bandwidth slow to a crawl with 1 packet per interval with queued writes?
* It seems to me the overhead is ~6B per 18 data bytes. At 250 data, you need about a 340 buffer to store this. This seems to be a reason I don’t often see queued writes used - despite the most frequent topic of BLE being “how do i transfer more data”. Is there something I may be missing here?
Thanks