pygatt: невозможно выполнить device.subscribe () - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь подписаться на характеристики GATT c.

Я установил атрибуты "Indicate", "Notify" и "Read" для характеристик GATT c в моем устройстве BLE.

Я могу подключиться к своему BLE-устройству и читать / записывать другие характеристики.

Однако я не могу выполнить функцию device.subscribe () для этой конкретной характеристики c .

Когда я использую

device.subscribe("845ce63c-d003-423c-8922-818676d34255", callback=handle_data)

, я получаю ошибку

pygatt.backends.bgapi.exceptions.ExpectedResponseTimeout: Тайм-аут после 10.000000, ожидая [ ]

В ссылке https://github.com/peplin/pygatt/blob/master/pygatt/device.py функция подписки имеет параметр "wait_for_response"

В моем коде, если я использую

device.subscribe("845ce63c-d003-423c-8922-818676d34255", callback=handle_data, wait_for_response=True)

показывает ошибку

TypeError: subscribe () получил неожиданный аргумент ключевого слова 'wait_for_response'

Как мне устранить эти ошибки и подписаться на характеристику c?

РЕДАКТИРОВАТЬ:

Я добавил свойства Читать nd Записать в характеристику c вместе с Уведомить и указать

Я могу прочитать и записать в характеристику c, используя следующий код: -

import pygatt

adapter = pygatt.BGAPIBackend()

try:

    adapter.start()

    device = adapter.connect('xx:xx:xx:xx:xx:xx')

    print("Connected")

    #value = device.char_write_handle(55, bytearray([0x00,0x01]), wait_for_response=True)

    value = device.char_read_handle(55)

    print(value)

finally:

    adapter.stop()

Однако это просто я не могу подписаться на него.

Я действительно застрял здесь.

Любая помощь очень ценится!

...