set/get 属性 使用 dbus 发送

set/get property using dbus-send

我制作了以下示例 xml,需要一些帮助来形成 dbus-send 命令到 set/get propoerty "Status"。我知道如何调用方法,但无法使用 dbus-send read/write 属性。

xml:

<node>
    <interface name="com.pgaur.GDBUS">
        <method name="HelloWorld">
            <arg name="greeting" direction="in" type="s"/>
            <arg name="response" direction="out" type="s"/>
        </method>
        <signal name="Notification">
            <arg name="roll_number" type="i"/>
            <arg name="name" type="s"/>
        </signal>
        <property name="Status" type="u" access="readwrite"/>
    </interface>
</node>

您可以使用以下 dbus-send 命令为您的 DBus 接口 Get/Set DBus 属性。将 $BUS_NAME 和 $OBJECT_PATH 替换为各自的名称。

获取属性:

dbus-send --system --dest=$BUS_NAME --print-reply $OBJECT_PATH \
org.freedesktop.DBus.Properties.Get string:com.pgaur.GDBUS string:Status

设置属性:

dbus-send --system --dest=$BUS_NAME --print-reply $OBJECT_PATH \
 org.freedesktop.DBus.Properties.Set string:com.pgaur.GDBUS string:Status variant:uint32:10

您可以阅读 DBus specification 以了解有关 DBus 属性的更多信息。

dbus-send --system --print-reply --type=method_call --dest=org.ofono /gemalto_0 org.ofono.Modem.SetProperty 字符串:"Powered" variant:boolean:false