Установить / получить свойство с помощью dbus-send

Я сделал ниже пример xml и мне нужна помощь в формировании команды dbus-send для установки / получения propoerty "Status". Я знаю, как вызывать методы, но не умеет читать / записывать свойства с помощью dbus-send.

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>

1 ответ

Решение

Вы можете получить / установить свойства DBus для вашего интерфейса DBus, используя приведенные ниже команды dbus-send. Замените $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, чтобы узнать больше о свойствах DBus.

Dbus -send --system --print-reply --type=method_call --dest=org.ofono /gemalto_0 org.ofono.Modem.SetProperty string:"Powered" variant:boolean:false

Другие вопросы по тегам