2017-04-16 166 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