dbus-send与dbus-monitor是常用的dbus命令行测试、监听工具
下面举一些例子
1、利用dbus-send调用远程服务器的method,由于命令过长分为三行。
dbus-send --session --dest=com.123.display --type=method_call --print-reply
/com/123/display com.123.display.setDisplay
byte:0x01 byte:0x01 byte:0x01 byte:0x01 byte:0x01
指定发送的类型是session,远程服务器名字用–dest指定,–type指定是signal还是method_call ,–print-replay表示打印接收到的消息,/com/123/display为dbus服务器的path,com.123.display.setDisplay为interface.name,interface的名字是com.123.display,method函数名为setDisplay,一共传送了5个字节。在dbus-send中byte即uchar。
2、利用dbus-send发送signal
dbus-send --session --type=signal /com/123/camera com.123.camera.onCamera byte:0x01
可以不指定服务器名字,如果没有返回参数不需要添加–print-reply
3、dbus-send还可以传字节数组
dbus-send --session --type=signal /com/123/camera com.123.display.pasStateData
array:byte:0x01,0x01,0x01,0x01,0x01,0x01,0x01
4、利用dbus-monitor监听消息
dbus-monitor interface=com.123.display
这里指定了监听的interface为com.123.display