2017-04-16 168 views
0

我想通过蓝牙通知连接Wahoo Scale 1.3来读取一个人的活体重量。蓝牙LE(蓝色)'通知请求上的权限写入错误'

实时重量可通过以下特性来阅读:

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(weight service)下有3个属性:1:写/指示,2:通知,3:通知。 Bluetooth characteristics on LightBlue App

我可以使用gattool写入第一个属性,但不能写入第2个和第3个属性。但是LightBlue如何开始收听通知?

我想这一个两个不同的系统: Beaglebone黑色与QN9021 BLE控制器(配合bluez 5.38,OpenWrt的的Linux 4.4) Beaglebone黑色的WiFi /蓝牙(配合bluez 5.23,Debian的Linux的4.4)

难道我得到这个错误由于Bluez堆栈和Wahoo Scale的不兼容性?我该如何解决?

谢谢!

回答

1

0x0026是值的句柄,而不是描述符。我猜想描述符的句柄是0x0027。

+0

谢谢!这确实是解决方案。 我假设下一个特征是0x0027,但事实并非如此,它是0x0028。 – Jason