dbus-python tutorial 学习

Dbus是IPC进程间调用的简称。目前很多linux版本都支持dbus。可以方便的调用已经注册的service的方法实现自己的应用。尤其是蓝牙应用Bluez编程使用较多。

A:  dbus种类:

1:session bus 2:system bus

B: dbus调用其他service的方法:

主要分两步:

1:获取对象(需要知道对应对象的busname和路径)

2:获取对象的接口(需要知道对象和接口名)(dbus上接口是对象方法的集合所以要获取对象的接口)

代码如下:

  bus = dbus.SessionBus()
  client = dbus.Interface(bus.get_object("org.openobex.client", "/"),"org.openobex.Client")

分析:

   获取对象 bus.get_object("org.openobex.client",  "/") 

  "org.openobex.Client" 是接口名,下面就可以利用接口调用方法啦。

         可以结合工具d-fee看各个service暴漏的接口。

C:  向dbus export 方法

      1: 自己的类首先继承dbus.service.Object.  class DBusService(dbus.service.Object) 

      2:导出对象:

                  1:告诉dbus-demon自己的名字 .  bus_name = dbus.service.BusName('org.me.test', bus=dbus.SessionBus())

                  2: 告诉dbus-demon自己的路径.    dbus.service.Object.__init__(self, bus_name, '/org/me/test')

      3: 导出方法:

       使用特殊标示符@dbus.service.method(dbus_interface='com.example.Sample',in_signature='v', out_signature='s')

       主要告诉方法所属的interface名和输入输出数据类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值