问题描述
这是我第一次使用蓝牙工作,我很困惑我应该发送我的写入数据包以启用通知的通道。我正在使用 Fitness Machine 0x1826 service 并尝试从 the 0x2AD2 characteristic 获取数据,特别是 0x0030 句柄。
当我运行“sudo gatttool -t random -b [MAC ADDRESS] -I --char-write-req -a 0x0030 - 0300 --listen”时,我没有得到任何回应,所以我相信我' m 将数据包发送到错误的句柄,因为设备应该通过我的操作发送通知。
感谢您的帮助!
解决方法
您应该将写入数据包发送到具有 UUID 0x2902 的客户端特征配置描述符 (CCCD)。您首先需要在健身机器服务中找到该 CCCD 的句柄。您可以在此处找到更多信息:-
- Reading Thermometer Data with BlueZ
- Bluetooth Low Energy: listening for notifications/indications in linux
但是,正如 ukBaz 所提到的,gatttool 已被弃用,因此您应该考虑使用 bluetoothctl。有关使用 bluetoothctl 作为 gatt 客户端的更多信息,请参见此处:-