Hello, I thought notifications were not acknowledged by the client, but if so why does my capture show repsonses from the client for every notification:
http://gyazo.com/80890b5be1645f56deebc49d6b707178
Thanks
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello, I thought notifications were not acknowledged by the client, but if so why does my capture show repsonses from the client for every notification:
http://gyazo.com/80890b5be1645f56deebc49d6b707178
Thanks
Section 4.10.1 of the BT4.0 GATT specification states:
"This sub-procedure is used when a server is configured to notify a Characteristic
Value to a client without expecting any Attribute Protocol layer acknowledgement
that the notification was successfully received."
The acknowledgements you see are link-layer acks, not in the Attribute Protocol.
But can't the application make use of them. If say the slave send a packet and an ack is not received from the master what will happen?
Hi Tom,
Everything in the BLE protocol is acknowledged on the Link Layer level, to ensure re-transmission if a packet is lost. So to answer your question, the notification will be sent again, although from the Link Layer Level. The application will never know that the packet drop and retransmission occurred.
If you do want acknowledgements all the way up to the application, use Indications instead of Notifications. It's the same thing but with mandatory acknowledgement from the client.
Best Regards
Joakim
Thanks alot. Also, am I right in thinking that if a link layer ack fails, then the connection is abandonded until the next connection interval?