简介
D-Bus是针对桌面环境优化的IPC(interprocess communication )机制,用于进程间的通信(会话总线)或进程与内核的通信(系统总线)。
安装python-dbus开发环境
# wget https:
//pypi
.python.org
/packages/source/d/dbus-python/dbus-python-0
.84.0.
tar
.gz
# ./congigure
# make &sudo make install
观察系统中的dbus
# sudo apt-get install d-feet
# d-feet
图 1
名词解释
Bus Name:
可以把Bus Name理解为连接的名称,一个Bus Name总是代表一个应用和消息总线的连接。有两种作用不同的Bus Name,一个叫公共名(well-known names,起别名,格式是反域名的点分字符串,主要是方面其他程序访问),还有一个叫唯一名(Unique Connection Name)。
Object Paths
Bus Name确定了一个应用到消息总线的连接。在一个应用中可以有多个提供服务的对象。这些对象按照树状结构组织起来。每个对象都有一个唯一的路径(Object Paths)。或者说,在一个应用中,一个对象路径标志着一个唯一的对象。
“org.fmddlmyy.Test”只有一个叫作“/TestObj”的对象。Interfaces
通过对象路径,我们找到应用中的一个对象。每个对象可以实现多个接口。例如:“org.fmddlmyy.Test”的“/TestObj”实现了以下接口:
- org.fmddlmyy.Test.Basic
- org.freedesktop.DBus.Introspectable
- org.freedesktop.DBus.Properties
后面讲代码时会看到,我们在代码中其实只实现了“org.fmddlmyy.Test.Basic”这个接口。接口“org.freedesktop.DBus.Introspectable”和“org.freedesktop.DBus.Properties”是消息总线提供的标准接口。
Methods和Signals
接口包括方法和信号。例如“org.fmddlmyy.Test”的“/TestObj”对象的“org.fmddlmyy.Test.Basic”接口有一个Add方法。后面的例子中我们会介绍信号。
标准接口“org.freedesktop.DBus.Introspectable”的Introspect方法是个很有用的方法。类似于Java的反射接口,调用Introspect方法可以返回接口的xml描述。我们双击 “org.fmddlmyy.Test”->“/TestObj”->“org.fmddlmyy.Test.Basic”->“org.freedesktop.DBus.Introspectable”的Introspect方法。这个方法没有输入参数,我们直接点击“Execute”按钮,你在“Output”窗口看到了什么?
来源:CSDN
作者:那棵树好像真的生气了
链接:https://blog.csdn.net/qq_25773973/article/details/52083107