python - 声明在 DBus 上订阅了哪些信号?

标签 python dbus

有没有办法声明 Python 应用程序通过 DBus 订阅了哪些信号?

换句话说,有没有办法通过订阅信号的“Introspectable”接口(interface)做广告。我使用“D-Feet D-Bus 调试器”。

例如应用程序订阅信号 X(在 bus 对象上使用 add_signal_receiver 方法)。

最佳答案

D-Bus 客户端调用总线守护进程上的 AddMatch 来注册他们对匹配特定模式的消息的兴趣;当您创建代理对象时,大多数绑定(bind)会为特定服务和对象路径上的所有信号或该服务和对象路径上的特定接口(interface)上的信号添加匹配规则。

使用 dbus-monitor 您可以看到正在添加的匹配规则:尝试运行 dbus-monitor member=AddMatch 然后运行一个使用 D-Bus 的应用程序。同样,您可以窃听对 RemoveMatch 的调用。但是,目前无法向守护进程询问当前有效的匹配规则集。考虑到守护进程已经知道,添加一种询问该问题的方法比添加一种让客户端重新通告该问题的方法更有意义。

关于python - 声明在 DBus 上订阅了哪些信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2240562/

相关文章:

c++ - 如何使用 CMake 配置 DBus 依赖项

dbus - BlueZ 5.4 DBus API ConnectProfile GATT 服务 UUID

node.js - Node dbus-native

python - 在python中向dbus对象添加方法

python - 在 pip 安装期间检查包的哈希值

python - 如何在 Python3 中找到 os.scandir 的源代码?

python - cx_Oracle 使用 CLOB 执行many

python - 如何在 matplotlib/seaborn 上使用 LaTex 符号设置轴标签的字体大小?

python - 使用 fixture 返回值作为 mark.parametrize() 中的值

python - 在 linux 中获得有关 "Ethernet cable plugged in"事件的通知