默认情况下,发送到 gdbus 的参数被视为 Int32 类型。我需要发送混合类型的参数,如 uint16、uint32 等。如何为 gdbus 构造相同的参数不幸的是,网络上没有太多此类用例的示例。我正在尝试使用上述类型的参数构造 gdbus 发射信号。
下面是我正在尝试的示例
gdbus emit -y -o /myservice/serverInstance -s com.mimo.myservice.touch "(2,1)"
以下是输出
signal sender=:1.5 -> dest=(null destination) serial=6606 path=/myservice/serverInstance; interface=com.mimo.myservice; member=touch
struct {
int32 2
int32 1
}
在上述情况下,我需要将第二个参数作为 uint16 发送。如何做到这一点。
答案1
以下命令工作参数应遵循 GVariant 标准: https://developer.gnome.org/glib/stable/gvariant-text.html
gdbus emit -y -o /myservice/serverInstance -s com.mimo.myservice.touch "(2, unit16 1)"