通过遵循Bluez Examples中的"example_advertisement“和"example-gatt-server”,我能够宣传BLE并设置关贸总协定的服务和特征。使用类似的Python DBUS绑定,我如何从DBUS知道BLE客户端何时连接以及何时断开?我应该查看哪个DBUS API?
发布于 2020-07-18 01:28:40
您还可以查看另一个示例:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/test-discovery
当BlueZ/DBus获知有新的远程设备时,就会发送InterfacesAdded信号。当远程设备从断开连接变为已连接时。然后这是设备上的属性更改,并发送PropertiesChanged信号。这就是为什么在上面的示例中有代码,他们使用add_signal_receiver为两个信号添加回调。
bus.add_signal_receiver(interfaces_added,
dbus_interface = "org.freedesktop.DBus.ObjectManager",
signal_name = "InterfacesAdded")
bus.add_signal_receiver(properties_changed,
dbus_interface = "org.freedesktop.DBus.Properties",
signal_name = "PropertiesChanged",
arg0 = "org.bluez.Device1",
path_keyword = "path")顺便说一句,Buez示例中使用的DBus绑定并不是唯一可用的:https://www.freedesktop.org/wiki/Software/DBusBindings/
https://stackoverflow.com/questions/62955442
复制相似问题