bluez5 ble广告在第一次连接后停止

时间:2014-07-11 20:29:20

标签: raspberry-pi bluetooth-lowenergy bluez

我们不清楚bluez5中leadv命令的功能。 连接到设备并再次断开连接后,无法重新连接到同一设备。只有在再次调用leadv之后才可以重新连接。

我们已经使用各种平台(raspberrypi,x86)和各种版本的bluez5(5.15,5.16,5.18,5.21)和来自broadcom和csr的bt加密狗重现了这种行为。

是否可以在没有广告的情况下多次重新连接?

蓝牙与gatt服务器正在运行

我们发出了以下命令

hciconfig hci0 up
hciconfig hci0 noscan
hciconfig hci0 name foo
hciconfig hci0 leadv 0

2 个答案:

答案 0 :(得分:3)

我遇到了完全相同的问题。

有趣的是,在断开连接期间' hcidump'没有显示bluez向蓝牙控制器发出的任何命令,这表明它关闭了广告。

我正在使用此解决方法在设备断开连接时重新启用广告:​​

sudo dbus-monitor --system --profile | grep --line-buffered --only-matching InterfacesRemoved | xargs -n1 -I % sudo /home/pi/bluez/bluez-5.25/tools/hciconfig hci0 leadv 0

说明:

  • ' - 行缓冲'需要dbus-monitor不刷新其输出
  • ' -I%'使xargs不附加grep' d" InterfaceRemoved"执行命令

答案 1 :(得分:0)

事实证明,实际上可以自动重新启用广告,但它似乎只适用于选定的bluez /内核组合。我们最终使用bluez 5.21和raspberry pi内核3.16 for broadcom和csr加密狗。我们还没有尝试过其他组合,因为我们之后不久就切换到自定义硬件(TI CC2451)。