Невозможно записать в BLE112 признак с помощью Pygatt и BLE112 - PullRequest
0 голосов
/ 26 ноября 2018

Я некоторое время пытался записать в пользовательскую характеристику Гатта, используя pygatt и Bluegiga BLE112D. Устройство, на которое я пытаюсь записать, также является BLE112 (не ключом).Я использовал следующий скрипт Python:

import pygatt

adapter = pygatt.BGAPIBackend()

adapter = pygatt.BGAPIBackend()
adapter.start()
adapter.scan(timeout=1)

device = adapter.connect('88:6b:0f:7e:4e:66',address_type=pygatt.BLEAddressType.public)
characteristic = "8fbfa190-1af2-427c-a22b-3da61b6b7162"
device.char_write(characteristic, bytearray([0x00, 0xFF]))

#check the characteristic
value = device.char_read(characteristic)

print(value)
adapter.stop()

Характеристика, которую я пытаюсь записать, настроена следующим образом:

<service uuid="8fbfa190-1af2-427c-a22b-3da71b6b7166" advertise="true">
  <description>Table</description>
  <include id="manufacturer" />
  <characteristic uuid="8fbfa190-1af2-427c-a22b-3da61b6b7162" id="xgatt_table">
      <properties read="true" write="true" />
      <value length="2" />
  </characteristic>
</service>

-Сценарий успешно соединяется с адаптером иУстройство.-Я могу читать характеристику очень хорошо, и при записи в нее никаких ошибок не возникает, но при повторном чтении характеристики значение не изменилось.-Я включил ведение журнала и просмотрел вывод, но все там показывает успешные процессы.-Я могу написать характеристику, используя стороннее приложение BLE, а также приложение blegui

Я почти уверен, что проблема связана со скриптом pygatt, но я не знаю, что может бытьпроблема.

Подводя итог, что я использую: Pygatt с python 3 для подключения к BLE112A через BLE112D в Windows 10.

1 Ответ

0 голосов
/ 27 ноября 2018

Эта проблема была решена путем добавления wait_for_response=True в качестве параметра в функцию char_write.Итак, новый вызов функции записи:

device.char_write(characteristic, bytearray([0x00, 0xFF]), wait_for_response=True)

Я не совсем уверен, почему это так, но я считаю, что сценарий считывал характеристику перед новым значениембыло написано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...