Bluez DBus API设置重复过滤器以禁用

时间:2016-05-13 10:08:18

标签: bluetooth dbus bluez discovery

如何设置扫描参数并禁用过滤器重复项,以便我可以从控制器接收所有广告? 每当识别出新设备但我想将过滤器副本设置为禁用时,StartDiscovery API才会通知,以便我可以从控制器接收每个广告? 但我没有找到任何DBus API来设置扫描参数,也没有设置扫描启用API。

我的目标很简单我需要将控制器上收到的每个广告通知我的客户端应用程序,我该如何使用Bluez?

注意:我可能会遗漏一些基本要点,因为蓝牙和蓝色是新手。

1 个答案:

答案 0 :(得分:0)

在下面的输出中,您可以看到设备“Parthiban”已经出现在 / org / bluez / hci0 / dev_44_D8_84_02_A3_17 下。我已经开始扫描,然后触发“StartDiscovery()”方法,并使用RSSI值更新相同的设备。

root@mx6q:~# bluetoothctl 
[NEW] Controller 5C:F3:70:6E:26:02 Adapter [default]
**[NEW] Device 44:D8:84:02:A3:17 Parthiban**
[NEW] Device 2C:F0:A2:26:D7:F5 iPhone tteam
[NEW] Device 78:F8:82:10:E7:0C Nexus 5X
[bluetooth]# scan on
Discovery started
[CHG] Controller 5C:F3:70:6E:26:02 Discovering: yes
**[CHG] Device 44:D8:84:02:A3:17 RSSI: -52**

因此,您可以在“org.freedesktop.DBus.Properties”接口上使用“g_dbus_connection_signal_subscribe”作为“PropertiesChanged”信号。

while(g_variant_iter_loop(&iter, "{sv}", &property, &value)) {
    if(strcasecmp(property, "RSSI") == 0) {
        /*
         * - Extract the device address from object path
         *  /org/bluez/hci0/dev_44_D8_84_02_A3_17
         *  - Play with the device
         */
    }