前言
最近在使用蓝牙4.0做单导联心电监测产品时遇到了一个问题。某些机型在蓝牙4.0传递数据的过程中出现丢包(比如最新华为mate10),导致无法展示正确的心电图。后来经过实测,原来是每秒数据量过大(大概975byte/s),但并不是所有的安卓设备都会丢包,这引起了我的注意。赶紧找硬件开发的同事一起分析,最终得出,mate10的蓝牙4.0通讯默认间隙时间较长,通讯频率降低,导致数据丢失。
1、BLE通讯 Connection paramter
Connection paramter有三种状态:
1.BluetoothGatt.CONNECTION_PRIORITY_BALANCED = 0
使用Bluetooth SIG推荐的连接参数, 如果没有请求连接参数更新,这是默认值。
2.BluetoothGatt.CONNECTION_PRIORITY_HIGH = 1
高优先级,低延迟连接。
3.BluetoothGatt.CONNECTION_PRIORITY_LOW_POWER = 2
低功耗,降低数据速率连接参数
随后,就以上模式进行了针对性的资料查找,蓝牙协议分析 给了我很大的帮助。