如何将不同的参数传递给 gdbus,例如 unit16、uint32

如何将不同的参数传递给 gdbus,例如 unit16、uint32

默认情况下,发送到 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)"

相关内容