我正在寻找一种调试来自 BlueZ 的信号的方法。目前,我正在尝试调试我在使用框架(Iotivity)时遇到的问题,并且正在寻找一种方法来调试代理 dbus 对象及其信号。
问题是我有一个方法可以连接到一个特性 (GATT) 代理对象的 g-properties-changed 信号,当我从我的设备接收数据时应该触发该信号。这是我正在谈论的代码行。我可以看到来自 btmon 和 hcidump 工具的数据,但该回调永远不会被调用。
所以主要的问题是,是否有调试 dbus 信号和代理对象的工具。我可以用来触发信号或查看正在触发的信号的工具?
以下是一些可能有用的日志。(BlueZ、Iotivity 和 hcidump 日志) http://pastebin.com/FWcRE3Uz
编辑:
我让 dbus 监视器开始工作。经过更多阅读后,我了解到有两种类型的总线,我必须指定我想要系统总线:dbus-monitor --system "type='signal',sender='org.bluez'"
现在的问题是找出为什么即使信号是有问题的方法也没有被触发,正如您在我从 dbus-monitor 获得的日志中看到的那样:
signal sender=:1.5 -> dest=(null destination) serial=273 path=/org/bluez/hci0/dev_C7_6A_A9_0B_DD_5F/service000c/char000f; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.bluez.GattCharacteristic1"
array [
dict entry(
string "Value"
variant array of bytes [
d8 c6 45 48 8a 23 f3 c4 9f a2 77 b3 6f 69 63 03 72 65 73 11
]
)
]
array [
]