GW3323在与不同APP进行通信时,不同通道回应的数据不同。为了兼容非自研的APP,就需要抓取蓝牙数据,获取APP的数据传输通道。
一、蓝牙数据抓取工具
蓝牙数据抓取,可以从空中获取所有蓝牙数据进行分析;也可以用手机的开发者模式,对手机的蓝牙日志进行分析。
1、E104-BT5032U是个蓝牙抓包工具。
参考手册:
E104-BT5032U+_Datasheet_CN_v1.0.pdf
cat驱动文件安装教程.pdf
2、抓取手机里的蓝牙日志文件
我们可以手机上打开开发者模式,设置将蓝牙数据保存为Log中,设置完后在app对打印机进行打印,然后吧手机中的btssnoop.log导入到电脑wireshark中就可以对蓝牙的数据进行分析了。下图是小米手机获取蓝牙日志的方式:
二、安装wireshark
三、数据分析
按照设备地址进行过滤,例如GW3323_BLE2(001f00)的mac地址是20:23:12:01:00:54.过滤后数据如下:
四、蓝牙服务与属性的简要说明
读取(Read):客户端(手机APP)主动请求数据。例如获取温度传感器的当前读数。 写入(Write):客户端(手机APP)主动发送数据。例如设置LED灯的状态。 通知(Notify):服务器(蓝牙模块)主动向客户端(手机APP)发送更新。例如心率监测器定期更新心率数据。 Uuid分为描述uuid,服务uuid,特征值uuid。 添加服务:ble_gatts_service_add()。 添加特征值:ble_gatts_characteristic_add()。
在GATT协议(蓝牙通用属性协议)中,每个GATT都有唯一的属性句柄(Handle),与客户端交互时需要明确指定的唯一标识符。通常在自定义服务和特征中,开发者用索引(Index)来访问属性表中的元素,这样可以提高访问速度。索引不是GATT通信的标准要求。
|