打印D-Bus内省树

时间:2011-10-13 15:41:56

标签: python dbus

如何在D-Bus上打印出所有可用信息的树?

*Bus Name
    * Interface
        *Method
            *Signature
    * Interface
        *Method
            *Signature
        *Method
            *Signature
*Bus Name
    * Interface
        *Method
            *Signature

3 个答案:

答案 0 :(得分:2)

您可以使用dbus调试工具(如DFeet)以结构化的方式查看通过DBus公开的所有内容。

答案 1 :(得分:0)

我创建了一个git存储库来演示如何解决这个问题: https://github.com/smokedice/PyDBusTree

代码相当慢,因为它不使用回调。如果有人想改进代码,请在此处发布,或推送到存储库。

答案 2 :(得分:0)

除了D-Feet(在前面的回答中提到),gdbus command line tool将允许对给定的唯一或众所周知的总线名称上的特定对象路径进行内省:

$ gdbus introspect --session --dest org.gnome.Contacts --object-path /org/gnome/Contacts
node /org/gnome/Contacts {
  interface org.freedesktop.DBus.Properties {
    methods:
      Get(in  s interface_name,
          in  s property_name,
          out v value);
      …
    signals:
      PropertiesChanged(s interface_name,
                        a{sv} changed_properties,
                        as invalidated_properties);
    properties:
  };
  …
}