我正在使用linux板上bluez附带的example-gatt-server.py脚本。我想为我的一个自定义特征添加通知。为此,我需要定义客户端特性配置描述符并将其添加到我的自定义特性中。我是这样做的 -
class ClientCharacteristicConfigurationDescriptor(Descriptor):
CCCD_UUID = '2902'
def __init__(self, bus, index, characteristic):
self.value = array.array('B')
self.value = self.value.tolist()
#self.value = []
Descriptor.__init__(
self, bus, index,
self.CCCD_UUID,
['read', 'write'],
characteristic)
def ReadValue(self):
print("I am reading CCCD value")
print(self.value)
return self.value
def WriteValue(self, value):
print("I am writing CCCD value")
print type(value)
#self.value = value
print(value)
此代码的灵感来自已在example-gatt-server文件中定义的CharacteristicsUserDescriptionDescriptor类。 上面的代码在阅读或写作时给出了错误。它甚至不打印“我正在阅读CCCD值”声明。我在这里缺少什么?
谢谢!
答案 0 :(得分:0)
Bluez处理客户端特征配置描述符(CCCD)。您不需要在代码中自己定义它 如果您已为相应的特征定义了“通知”标志,则Bluez将透明地处理通知支持。
您注意到example-gatt-server
定义了特征用户描述(CUD)而非CCCD。