Hi Chris,

Thanks for the quick response.

I think CCCD events are quite important from a power management perspective and worth clearly exposing.

2. How is a failed 'indicate' message handled?

Indicate generates an ACK, but are there any examples or documentation
around how to properly check for the response message to know if the
message arrived?
This is currently hidden from the application.  If any GATT procedure
times out, the host terminates the connection.  So, if the connection
stays up, that implies the indicate acknowledgement has been received.
That seems a bit drastic! If we are operating at the edge of the radio range, or maybe if there's just a one-off error with the indicate response, I wouldn't have expected an automatic disconnect myself. I can understand handling the indicate internally if that simplifies things, making any write attempts to an indicate characteristic a blocking call until the response is received or we timeout, but then just return 'false' or an appropriate error and let the user decide if they want to try again, disconnect, ignore the problem, etc.

Disconnecting on a simple indicate failure really seems like overkill to me, though, but perhaps I'm missing some use case or requirement in the core spec here. I haven't read through it in detail since 4.0 and then a re-read a bit with the 4.1 release, but unfortunately I'm a lot more familiar with the older 4.0 spec.

Kevin

Reply via email to