蓝牙 LE (Bluez) 'permissions write error' 收到通知请求
Bluetooth LE (Bluez) 'permissions write error' on notify request
我正在尝试连接 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 蓝牙日志
< 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:write/indicate,2:notify,3:notify。
Bluetooth characteristics on LightBlue App
我可以用 gatttool 写入第一个 属性,但不能写入第二个和第三个 属性。但是 LightBlue 是如何开始监听通知的呢?
我试过这个两个不同的系统:
带有 QN9021 BLE 控制器的 Beaglebone Black(Bluez 5.38,OpenWrt Linux 4.4)
Beaglebone Black WiFi/Bluetooth(Bluez 5.23,Debian Linux 4.4)
我收到这个错误是因为 Bluez 堆栈和 Wahoo Scale 不兼容吗?我该如何解决这个问题?
谢谢!
0x0026 是值的句柄,而不是描述符的句柄。我猜描述符的句柄是 0x0027.
我正在尝试连接 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 蓝牙日志
< 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:write/indicate,2:notify,3:notify。 Bluetooth characteristics on LightBlue App
我可以用 gatttool 写入第一个 属性,但不能写入第二个和第三个 属性。但是 LightBlue 是如何开始监听通知的呢?
我试过这个两个不同的系统: 带有 QN9021 BLE 控制器的 Beaglebone Black(Bluez 5.38,OpenWrt Linux 4.4) Beaglebone Black WiFi/Bluetooth(Bluez 5.23,Debian Linux 4.4)
我收到这个错误是因为 Bluez 堆栈和 Wahoo Scale 不兼容吗?我该如何解决这个问题?
谢谢!
0x0026 是值的句柄,而不是描述符的句柄。我猜描述符的句柄是 0x0027.