我需要从 shell 发送一个带有 DBus 的方法调用
当我从外壳发送此代码时:
dbus-send --print-reply --system --type=method_call \
--dest=vehicle.network.service /Diag \
vehicle.network.service.Diag.setVariantCoding
我收到了这个回复:
错误 org.freedesktop.DBus.Error.InvalidArgs:消息类型“()”与预期类型“(uay)”不匹配
我怎样才能将消息类型设为(uay)?
我知道它有 6 个字节长。
类型是根据您提供的参数(参数)自动确定的。
(uay)
意味着您需要为此特定方法提供一个 uint32 (u
) 和一个字节数组 ( )。ay
(D-Bus 规范解释了类型符号的含义。)例如,如果您想调用
setVariantCoding(12345, "\xAB\xCD\xEF")
,请使用:与
gdbus
:与
busctl
:(在 busctl 中,数组长度是明确指定的,
3
在本例中使用。)