Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-54475

BLE: Too many notifications lead to disconnect

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.7.1
    • 5.7.0
    • None
    • Raspberry Pi 3
      Arch Linux
      BlueZ 5.40

    Description

      Hi there,

      I use a Raspberry Pi 3 as peripheral and have a characteristic which users can be notified with.

      Everything works quite well but when I call

      service->writeCharacteristic(characteristic, value);

      too often (about 370 packets à 20 bytes in several seconds), the QLowEnergyController emits NetworkErrors, does not send any packets anymore to the central device and switches to UnconnectedState.

      With activated logging, here's what I can see:

      ....
      qt.bluetooth.bluez: sending notification/indication: "1b0300000000b95774d391746573744465760000000000"
      qt.bluetooth.bluez: sending notification/indication: "1b03000000000062746c65737070000000746b6e000000"
      qt.bluetooth.bluez: Cannot write L2CP packet: "1b03000000000062746c65737070000000746b6e000000" "Network Error"
      qt.bluetooth.bluez: Network IO error while talking to LE device

      (now the controller state changes to UnconnectedState and emits NetworkError messages)

      qt.bluetooth.bluez: HCI event triggered, type: 13

      This last HCI event repeats until the central device closes the connection.

      From what I know, the number of packets per time depends on the connection interval and the number of packets that a device can send within a connection interval. This is confirmed by my observation that everything's fine if I wait 50ms after each packet.

      The behavior I expect is either that if the stack can't keep the pace, I get an error, can wait a bit and then retry it. Though it would be better if writeCharacteristic would just block until the stack is available again.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-54475
          # Subject Branch Project Status CR V

          Activity

            People

              ablasche Alex Blasche
              max82 Max Wahler
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes