如何解决BlueZ:在“通用属性1801”中添加“服务更改指示2A05”时出错
我需要在“通用属性(1801)”中添加“服务更改指示(2A05)”。有一个 nRF Connect 的 UI 示例,它显示“服务更改指示”位于“通用属性”(http://forum.espruino.com/conversations/357737/) 下。我们使用的是 BlueZ 5.48。但是没有关于如何执行此操作的文档或 Python 代码示例(请参阅 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test)。我尝试通过修改 example-gatt-server 来添加它:
class ServiceChangedChrc(Characteristic):
SCI_UUID = '00002a05-0000-1000-8000-00805f9b34fb'
def __init__(self,bus,index,service):
Characteristic.__init__(
self,self.SCI_UUID,['indicate'],service)
def IndicateValue(self,options):
# This function doesn't exist. Just list it here.
pass
class ServiceChangedService(Service):
MY_UUID = '00001801-0000-1000-8000-00805f9b34fb'
def __init__(self,index):
Service.__init__(self,self.MY_UUID,True)
self.add_characteristic(ServiceChangedChrc(bus,self))
class Application(dbus.service.Object):
"""
org.bluez.GattApplication1 interface implementation
"""
def __init__(self,bus):
self.path = '/'
self.services = []
dbus.service.Object.__init__(self,self.path)
self.add_service(HeartRateService(bus,0))
self.add_service(BatteryService(bus,1))
self.add_service(TestService(bus,2))
self.add_service(ServiceChangedService(bus,3))
当我运行它时,出现“无法注册应用程序:org.bluez.Error.Failed:无法在数据库中创建条目”。那是在 BlueZ 代码中 gatt-database.c 中的函数 client_ready_cb() 中。有大佬知道怎么解决吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。