与BLE相关的工具:hcitool,gatttool,btgatt-client,bluetoothctl等
1.hcitool
扫描
hcitool -i hci2 lescan
2.gatttool
非交互模式:
gatttool -b 54:6C:0E:83:82:76 --char-write-req -a 0x0020 -n AA0307546C0E838276FFFC --listen
交互模式:
./gatttool -b 80:EA:CA:01:00:56 –I
设置MTU
mtu 255
读取特性 characteristics
写数据
char-write-req 0x0020 AA0307546C0E838276FFFC
//返回数据;Notification handle = 0x0029 value: xxxx
注意:
--listen和交互模式下,gatttool会监听所有可能发生 notify 和 indicate的特征值
参考:https://blog.youkuaiyun.com/u010872301/article/details/80907325?utm_source=blogxgwz8
3.btgatt-client
连接(顺便可以设置MTU)
btgatt-client -d A4:34:F1:EB:54:2E -m 255
注册通知
register-notify 0x0029
读写
write-value 0x0020 00
注意:
1.连接成功后,会自动并读取所有的服务和特征值
2.等待某个特征值通知(notify),需要先注册
3.write-value handle value,其中会根据value输入的字符判断进制;
注意例如发送16进制 0xAA;应为write-value 0x0020 0xAA,而非write-value 0x0020 AA
4.bluetoothctl
搜索:
scan on
scan off
连接:
connect MAC
查看服务:
info
list-attribute
select-attribute
注意:
1.需要先搜索到设备,才能连接
2.需要从主目录,进入gatt子目录才能使用服务
3.bluetoothctl工具 修改不了MTU
总结:
1.BLE的测试工具,推荐使用gatttool 和btgatt-client,这两个工具可以修改MTU,用来提高吞吐量。官方推荐btgatt-client。两个工具的源码也可以作为 ble设备代码实现的例程。
2.学习思路:先熟悉测试工具,理解基本流程和步骤,再将源码改写成自己的应用。