Я могу просматривать службы и характеристики моего устройства BLE в bluepy, но я не могу получить асинхронные указания для печати.Я посмотрел на предложения в этом вопросе , но не могу заставить его работать.
Он работает при использовании gattool:
$ sudo gatttool -b "DF:01:93:A9:86:FF" -t random --char-write-req --handle=0x002c --value=0200 --listen
Characteristic value was written successfully
Indication handle = 0x002b value: 00 8a 00
Indication handle = 0x002b value: 00 8a 00
Indication handle = 0x002b value: 30 30 2d
Но яне может заставить bluepy сделать то же самое:
from bluepy.btle import Scanner, DefaultDelegate, Peripheral, ADDR_TYPE_RANDOM
class ReadCharacteristicDelegate(DefaultDelegate):
def __init__(self):
DefaultDelegate.__init__(self)
def handleNotification(self, cHandle, data):
print " got data: 0x%x" % data
periph = Peripheral('df:01:93:a9:86:ff', addrType=ADDR_TYPE_RANDOM)
periph.setDelegate(ReadCharacteristicDelegate())
periph.writeCharacteristic(0x002c, "\0x02\0x00")
print "Enabled indications"
while True:
if periph.waitForNotifications(3.0):
# handleNotification() was called
continue
print("Waiting")
Он работает, но никаких указаний не выводится:
$ sudo python simple.py
Enabled indications
Waiting
Waiting