我正在使用BlueZ提供的示例gatt服务器,并添加了一个信号处理程序来检测连接和断开连接,如下所示:
bus.add_signal_receiver(PropertiesChangedHandler,
dbus_interface = "org.freedesktop.DBus.Properties",
signal_name = "PropertiesChanged",
arg0 = "org.bluez.Device1",
path_keyword = "path")
我的信号处理程序只是打印出一些信息:
def PropertiesChangedHandler(interface, changed, invalidated, path):
if 'Connected' in changed:
print("---- Connected Property Changed ----")
print('Interface: ', interface)
print('Changed: ', changed['Connected'])
print('Path: ', path)
if 'ServicesResolved' in changed:
print("---- ServicesResolved Property Changed ----")
print('Interface: ', interface)
print('Changed: ', changed['ServicesResolved'])
print('Path: ', path)
但是,在运行服务器时,我只能检测到断开连接。我从来没有收到任何连接信号。我在正在处理的信号中添加了“ServicesResolved”,它似乎按预期工作。当我连接和断开连接时,我的日志如下所示:
----ServicesResolved属性已更改----
界面:org.bluez.Device1
更改:1
路径:/org/bluez/hci0/dev\u 42\u 36\u D9\u 11\u CA\u 4B
----已更改连接的属性----
界面:org.bluez.Device1
更改:0
路径:/org/bluez/hci0/dev\u 42\u 36\u D9\u 11\u CA\u 4B
----ServicesResolved属性已更改----
界面:org.bluez.Device1
更改:0
路径:/org/bluez/hci0/dev\u 42\u 36\u D9\u 11\u CA\u 4B
这种奇怪的行为有什么原因?我用的是bluez5.46,如果这很重要的话
目前没有回答
相关问题 更多 >
编程相关推荐