How to quickly detect a disconnect and possibly reconnect?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

If two devices lose a connection after the supervisor timeout set in lel2cap_sendConnParamUpdateReq() expires, what should be done to fix it?  Should I expect that an attempt to reconnect will work?  I am trying to determine if I should use a low supervisor timeout and then quickly try to reestablish communication again OR set a long supervisor timeout and let the devices keep trying to talk with each other for as long as possible. 

  1. I have the connection parameters currently set to lel2cap_sendConnParamUpdateReq(6, 6, 0, 50) so that the central and peripheral can communicate to one another quickly.  But is there anyway to get a callback when one of the communication slots every 7.5ms is clobbered by noise or congestion?  How can I tell from the application how many of these 7.5ms communication slots are getting lost?
  2. Once a disconnect occurs due to devices going out of range, how can I quickly reconnect when they come back into range?
  3. What is the min and max allowable values for the supervisor timeout, the fourth parameter in the above function?
0 Likes
3 Replies
Anonymous
Not applicable

I can help you with your third question, but we'll need someone else for 1 and 2.

From this thread:

Connection Interval and Connection Slave Latency

and the BT Spec:

The connSupervisionTimeout shall be a multiple of 10 ms in the range of 100 ms to 32.0 s and it shall be larger than

(1+connSlaveLatency)*connInterval*2.

0 Likes
Anonymous
Not applicable

Thanks lucyli.  That is helpful.


Anyone else on the reconnect procedure?

0 Likes
Anonymous
Not applicable

Hello sabertron,

Here are the answers to questions:

1.  But is there anyway to get a callback when one of the communication slots every 7.5ms is clobbered by noise or congestion?

[JT] No.

2.  Once a disconnect occurs due to devices going out of range, how can I quickly reconnect when they come back into range?

[JT]  When a timeout occurs, you will not be able to see it.  You can reconnect 500ms after the last full Null exchange.

3.  Assume that some of the responses will be lost

Hope this helps.

JT

0 Likes