[英]Cannot read value of BlueZ characteristic
我遇到了一个问题,我无法读取 GATT 服务器中的特征值。 TxCharacteristic 中的 ReadValue() 方法(如下所示)似乎根本没有被调用,即使我为返回插入一个测试值,也没有任何返回。
我想知道的是; 为什么即使我几乎可以肯定我没有改变以前的工作代码,它也不再工作了,如何解决这个问题?
这是我的代码中 TxCharacteristic 的 class。 这是在 Raspberry Pi 3B 上运行的。 我正在使用 LightBlue 的 BLE 扫描仪。 完整代码可在“Firmware.py”文件中找到
class TxCharacteristic(Characteristic):
"""
Transmit characteristic, sends data to the client
"""
TX_CHRC_UUID = '0x0002'
def __init__(self, bus, index, service):
Characteristic.__init__(
self, bus, index,
self.TX_CHRC_UUID,
['read', 'notify'],
service)
self.notifying = False
self.value = ""
def StartNotify(self):
if self.notifying:
print('Already notifying, nothing to do')
return
self.notifying = True
def StopNotify(self):
if not self.notifying:
print('Not notifying, nothing to do')
return
self.notifying = False
def ReadValue(self):
print("Tx read: " + bytes(self.value).decode)
self.value = Comms.TxRead(Comms)
return self.value
另外,作为一个附带问题,我认为我没有正确实施通知,所以那里的任何帮助也会很棒。
TIA,奥里
因此,事实证明 ReadValue() 的返回值需要是 dbus.Byte 对象的数组。 一旦我改变了我的代码以适应这个,事情就奏效了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.