У меня есть ключ BLED112 и устройство BLE, которое содержит профиль GATT с характеристиками служб. Я установил pygatt для связи с моим устройством BLE.
Ниже приведен мой код python для подключения к моему устройству BLE и чтения / записи для характеристики c: -
import pygatt
adapter = pygatt.BGAPIBackend()
#adapter = pygatt.BGAPIBackend()
adapter.start()
adapter.scan(timeout=1)
device = adapter.connect('30:F5:6A:01:2D:05',address_type=pygatt.BLEAddressType.public)
characteristic = "f1126ec4-6e99-5552-5286-55bc21d65776"
device.char_write(characteristic, bytearray([0x00]), wait_for_response=True)
value = device.char_read(characteristic)
print(value)
adapter.stop()
Я могу подключиться к своему устройству. Тем не менее я получаю следующую ошибку при чтении или записи:
C: \ Python \ Python37-32 \ lib \ site-packages \ pygatt \ backends \ bgapi \ bgapi.py ", строка 570, в ожидаемом повышении exc exc pygatt.backends.bgapi.exceptions.ExpectedResponseTimeout: Превышено время ожидания после 10.000000 ожидания []
Я включил wait_for_response=True
в мою инструкцию записи, но я все еще получаю это проблема.
Как мне прочитать / записать в характеристику c без ошибок?
PS: во время сканирования я заметил, что указанный выше UUID принадлежит «дескриптору».
Это причина, по которой я получаю сообщение об ошибке?
Есть ли способ написать "дескриптор" (а не характеристику c) в pygatt?