【问题标题】:How is the “car.xml” file from dbus example called “D-Bus remote controlled car example” generated?dbus 示例中名为“D-Bus 遥控车示例”的“car.xml”文件是如何生成的?
【发布时间】:2014-05-30 12:12:53
【问题描述】:

我正在尝试创建利用 D-Bus 的程序。我也研究了 Qt 提供的示例。在其中一个名为“D-Bus 遥控车示例”的文件中,有一个名为“car.xml”的文件,其内容如下:

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/com/trollech/examples/car">
 <interface name="org.example.Examples.CarInterface">
  <method name="accelerate"/>
  <method name="decelerate"/>
  <method name="turnLeft"/>
  <method name="turnRight"/>
  <signal name="crashed"/>
 </interface>
</node>

如果我没记错的话,应该使用名为“qdbuscpp2xml”的工具生成此文件。当我使用此命令生成 xml 时:

$ qdbuscpp2xml -A car.h -o car2.xml

我在生成的 XML 文件中得到以下内容:

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
  <interface name="local.Car">
    <signal name="crashed">
    </signal>
    <method name="accelerate">
    </method>
    <method name="decelerate">
    </method>
    <method name="turnLeft">
    </method>
    <method name="turnRight">
    </method>
  </interface>
</node>

与 car.xml 的不同之处在于以下几行:

<node name="/com/trollech/examples/car">
 <interface name="org.example.Examples.CarInterface">

为什么我得到一个不同的文件?包含的文件 (car.xml) 是手动创建的示例吗?

【问题讨论】:

    标签: qt dbus qtdbus


    【解决方案1】:

    我自己想通了。该工具即qdbuscpp2xml,目前尚未将name 属性分配给&lt;node&gt;。如果希望为其分配name 属性,她必须自己输入,但对于&lt;interface&gt; 节点,可以通过将宏Q_CLASSINFO 放入类中,让上述工具自动完成想曝光。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      相关资源
      最近更新 更多