1.几个重要的参数:
Connection Interva:
两个ConnectionEvent之间的空闲值,单位为1.25ms,最小7.5ms,最大4s。
指的是每次通信持续的时间。时间越长通信速度越快,但是功耗越高。
// Minimum connection interval (units of 1.25ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL
8
// Maximum connection interval (units of 1.25ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL
8
Slave Latency:
Slaver设备没有数据要发时,跳过一定数目的ConnectionEvent的值,Rang:0-499.
跳过的interval个数,设置为0则每次interval都连接。数字约小通信速度越快,但是功耗越高.
// Slave latency to use if automatic parameter update request is enabled
#define DEFAULT_DESIRED_SLAVE_LATENCY
50
Supervision Timeout:
超时时间,就是两个设备在连接的这段时间没有发生通讯而导致连接自动断开的值。
Range(10ms-----32s)
连接超时时间,用在信号不太好的情况下, 给对方一点时间。超过这个时间通信就建立失败
// Supervision timeout value (units of 10ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_CONN_TIMEOUT
500
但是必须满足以下条件:有效的连接间隔>=连接间隔*(1+从机延时)
从机本身是无法直接设置连接间隔的,只有主机才能直接设置连接间隔。
从机这里设置的其实只是给主机提供一个数值范围,由主机在这个范围内选择合适的参数更新到连接参数中。
连接设置 由主机决定,两者连接之后,主机端的连接参数起作用。
从机可以向主机发送连接参数更新请求,来请求主机的连接参数 更新到与从机一致.
ios app连接时,apple公司有自己的规范,这三个参数的设置必须在其规范内才可生效:
● Interval Max * (Slave Latency + 1) ≤ 2 seconds
● Interval Min ≥ 20 ms
● Interval Min + 20 ms ≤ Interval Max Slave Latency ≤ 4
● connSupervisionTimeout ≤ 6 seconds
● Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout