1. 先贴苹果文档
《 Accessory Design Guidelines for Apple Devices 》
2. 几个关键词
connection Event Interval
事件间隔,为1.25ms的倍数。可以简单理解为,是两个连接着的蓝牙设备发送“心跳包”的时间间隔;
范围是 6 ~ 3200,即 7.5ms ~ 4s;
connection Slave Latency
允许从设备在没有数据要发的情况下,跳过一定数目的连接事件,在这些连接事件中不必回复主设备的包个数;
范围是 0 ~ 499;
connection Supervision Timeout
超时时间,即如果BLE在这个时间内没有发生通信的话,就会自动断开,为10ms的倍数;
范围是10 ~ 3200, 即 100ms ~ 32s;
举例
比如设置如下:
- connection Event Interval = 100ms;
是指蓝牙主机每 100ms 发一次心跳包给从机,从机收到后回复一次。 - connection Slave Latency = 1;
是指如果从机没有数据发送时,可以跳过一次心跳包的回复,让自己省电。 - connection Supervision Timeout = 1s;
对从机来说,当它发现连续 1 秒钟都没有收到心跳包,就认为连接断开;
对主机说, 当它连续发了 11 个心跳包,都没有得到回复,认为连接断开。
实机查验
iphone连接参数是: 24, 0, 72 。
转换一下:
connection Event Interval = 24 * 1.25ms=30ms;
connection Slave Latency = 0;
connection Supervision Timeout = 72 * 10ms = 720ms;