IanHarvey / bluepy

Python interface to Bluetooth LE on Linux
Other
1.6k stars 490 forks source link

Error: Prepare Queue Full (0x09) #322

Open DylanSale opened 5 years ago

DylanSale commented 5 years ago

If I try to write a large buffer (>600 bytes or so) with bluepy 1.2.0 with a UD100 on Ubuntu 18.04 I get this error from btmon.

> ACL Data RX: Handle 75 flags 0x02 dlen 27                                                                                                    #202 [hci0] 20.959147
      ATT: Prepare Write Response (0x17) len 22
        Handle: 0x0044
        Offset: 0x01d4
          Data: 313233343536373839313233343536373839
< ACL Data TX: Handle 75 flags 0x00 dlen 27                                                                                                    #203 [hci0] 20.959470
      ATT: Prepare Write Request (0x16) len 22
        Handle: 0x0044
        Offset: 0x01e6
          Data: 313233343536373839313233343536373839
> HCI Event: Number of Completed Packets (0x13) plen 5                                                                                         #204 [hci0] 21.009348
        Num handles: 1
        Handle: 75
        Count: 1
> ACL Data RX: Handle 75 flags 0x02 dlen 27                                                                                                    #205 [hci0] 21.109143
      ATT: Prepare Write Response (0x17) len 22
        Handle: 0x0044
        Offset: 0x01e6
          Data: 313233343536373839313233343536373839
< ACL Data TX: Handle 75 flags 0x00 dlen 27                                                                                                    #206 [hci0] 21.109456
      ATT: Prepare Write Request (0x16) len 22
        Handle: 0x0044
        Offset: 0x01f8
          Data: 313233343536373839313233343536373839
> HCI Event: Number of Completed Packets (0x13) plen 5                                                                                         #207 [hci0] 21.209341
        Num handles: 1
        Handle: 75
        Count: 1
> ACL Data RX: Handle 75 flags 0x02 dlen 9                                                                                                     #208 [hci0] 21.259004
      ATT: Error Response (0x01) len 4
        Prepare Write Request (0x16)
        Handle: 0x0044
        Error: Prepare Queue Full (0x09)

Is this a bug or expected behaviour (ie, the device just doesn't support sending more data)? Is there a way to work around it?

Thanks

EDIT: