问题描述
我需要在“通用属性(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 (将#修改为@)