D-Bus 信号和 D-Bus 属性有啥区别

Posted

技术标签:

【中文标题】D-Bus 信号和 D-Bus 属性有啥区别【英文标题】:What is the difference between a D-Bus signal and a D-Bus propertyD-Bus 信号和 D-Bus 属性有什么区别 【发布时间】:2015-08-17 22:13:12 【问题描述】:

D-Bus 信号和 D-Bus 属性的基本区别。 这两个一样吗。 什么时候必须使用 D-Bus 信号和 D-Bus 属性?

【问题讨论】:

【参考方案1】:

DBus 属性代表一个状态,您需要询问它的值。 DBus 信号就像“事件”,您可以注册到它们,您将在信号处理程序上收到更改通知。有关详细信息,请参阅规范:http://dbus.freedesktop.org/doc/dbus-specification.html

【讨论】:

确实,这些概念与许多面向对象编程语言中的概念相同。【参考方案2】:

如果您必须通知应用程序已发生的事件,请使用 DBus 信号。

如果您想让应用程序随时获取某个属性的值,请使用 DBus 属性。此外,您可以拥有一个属性更改处理程序,以通知您特定属性的值更改。

【讨论】:

以上是关于D-Bus 信号和 D-Bus 属性有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

如何在 d-bus 上定义参数信号?

检测 D-Bus 上的禁止关闭

如何在 Qt 中模拟消息总线?

使用 gdbus-codegen 骨架时如何验证 D-Bus 属性

DBus 与其他进程间通信方式的区别

Python+D-Bus+BlueZ 5:无法读取对象的属性?