我正在尝试连接Wahoo Scale 1.3以通过蓝牙通知读取一个人的实时体重。
可以通过以下特征读取活体重量:
handle: 0x0025, char properties: 0x10, char value handle: 0x0026, uuid: 00002b01-0000-1000-8000-00805f9b34fb.
这适用于我的iPhone上的LightBlue应用程序。
当我尝试通过gatttool接收通知时,我收到以下错误:
命令行gatttool :(尝试了来自不同堆栈溢出主题的许多不同符号)
[XX:XX:XX:XX:XX:XX][LE]> char-write-req 0x0026 0100
Error: Characteristic Write Request failed: Attribute can't be written
btmon bluetooth log
< ACL Data TX: Handle 0 flags 0x00 dlen 9 [hci0] 4.291021
ATT: Write Request (0x12) len 4
Handle: 0x0026
Data: 0100
> HCI Event: Number of Completed Packets (0x13) plen 5 [hci0] 4.327199
Num handles: 1
Handle: 0
Count: 1
> ACL Data RX: Handle 0 flags 0x02 dlen 9 [hci0] 4.383580
ATT: Error Response (0x01) len 4
Write Request (0x12)
Handle: 0x0026
Error: Write Not Permitted (0x03)
我注意到的一件事是在UUID 1901(重量服务)下有3个属性:1:写/指示,2:通知,3:通知。 Bluetooth characteristics on LightBlue App
我可以用gatttool写入第一个属性,但不能写入2和3属性。但LightBlue如何开始收听通知?
我尝试了这两个不同的系统: 带有QN9021 BLE控制器的Beaglebone Black(Bluez 5.38,OpenWrt Linux 4.4) Beaglebone黑色WiFi /蓝牙(Bluez 5.23,Debian Linux 4.4)
由于Bluez堆栈和Wahoo Scale的不兼容性,我是否会收到此错误?我该如何解决这个问题?
谢谢!
答案 0 :(得分:1)
0x0026是值的句柄,而不是描述符的句柄。我猜测描述符的句柄是0x0027。