Bluez 自动重新连接设备

     2023-04-14     220

关键词:

【中文标题】Bluez 自动重新连接设备【英文标题】:Bluez auto reconnect devices 【发布时间】:2015-11-24 03:43:45 【问题描述】:

我正在为蓝牙低功耗设备编写 C/C++ 库。到目前为止,我一直在使用 Bluez 公开的 D-Bus 接口,并且能够发现、连接和与设备通信。

但是,当设备由于链路故障或超出范围而断开连接时,重新连接并非易事。理想情况下,我希望能够为所有断开连接的设备创建挂起的连接,但 Bluez 似乎不支持这一点。 Bluez 似乎只支持一个同时连接调用,在 15-20 秒后超时。

因此,一种解决方案是监听广告包,并在检测到已知设备时连接。 #bluez 上的好心人告诉我,这已经实现了,方法是用 GattManager1 RegisterProfile 方法注册一个实现 GattProfile1 的对象。尝试这个没有结果,设备在链接失败后保持断开连接。它的文档也很差,所以我很可能错过了一些东西。

我的问题是:这是正确的解决方案吗?它会提供无缝且快速的重新连接吗?如果是,有什么问题?

【问题讨论】:

【参考方案1】:

如果您想重新连接单个蓝牙设备,您可以通过接收org.freedesktop.DBus.Properties.PropertiesChanged来监控连接状态,并在必要时调用org.bluez.Device1.Connect重新连接。由于这会超时,您可以将Connect() 放入一个循环中,只有当org.bluez.Device1.Connected 属性为真时您才会退出。

原作者是否已经通过实现 GattProfile1 为多个设备做到了这一点?

【讨论】:

通过 Bluez DBus API 的设备连接/断开通知

】通过BluezDBusAPI的设备连接/断开通知【英文标题】:Deviceconnect/disconnectnotificationviaBluezDBusAPI【发布时间】:2019-05-0821:39:02【问题描述】:如何在通过bluezdbusAPI创建或销毁连接时接收信号或通知?在/org/bluez/hci0下的所有设备中轮... 查看详情

从 Bluez 5.48 开始,iPhone 在连接 BLE GAP 外围设备时需要配对,为啥?

】从Bluez5.48开始,iPhone在连接BLEGAP外围设备时需要配对,为啥?【英文标题】:SinceBluez5.48,iPhonesrequirepairingwhenconnectingonaBLEGAPperipheral,why?从Bluez5.48开始,iPhone在连接BLEGAP外围设备时需要配对,为什么?【发布时间】:2020-03-3112:41:... 查看详情

[bluez]2使用bluetoothctl搜索连接配对读写使能notify蓝牙低功耗设备(代码片段)

星期三,05.九月201802:03上午-beautifulzzzz1、前言上一篇讲了如何编译安装BlueZ-5,本篇主要在于玩BlueZ,用命令行去操作BLE设备:[BlueZ]1、DownloadinstallandusetheBlueZandhcitoolonPI3B+2、gatttool——老工具趟坑刚开始跟着GetStartedwithBluetoothLowEnergy... 查看详情

Bluez 5 未知连接标识符

】Bluez5未知连接标识符【英文标题】:Bluez5UnknownConnectionIdentifier【发布时间】:2017-09-1716:00:21【问题描述】:我有一个运行最新Raspbian的RaspberryPi3,并且我有从5.23升级bluez。到5.43。我正在尝试连接到BLE以2秒间隔发布广告的设备... 查看详情

使用 DBus 和 Bluez 将数据写入蓝牙设备

...ondbus库通过DBus和Bluez将数据写入蓝牙设备。但只知道如何连接和断开设备:importdbussystem_bus=dbus.SystemBus()device=system_bus.get_object 查看详情

BlueZ 中连接和配对的区别

】BlueZ中连接和配对的区别【英文标题】:DifferencebetweenConnectingandPairinginBlueZ【发布时间】:2017-12-2402:55:27【问题描述】:我正在查看BlueZ5.44中的DeviceAPI,对连接和配对设备之间的区别有点困惑。我看到连接是基于配置文件的,... 查看详情

如何使用 Bluez5.50 使用 BLE 连接加密数据

】如何使用Bluez5.50使用BLE连接加密数据【英文标题】:HowtoencryptdatausingBLEconnectionusingBluez5.50【发布时间】:2019-06-1912:26:40【问题描述】:我正在开发一个处理数据传输的C++项目。我的系统由两个不同的设备组成,它们必须以受信... 查看详情

Linux BlueZ dbus 通信

...序中实现读/写特征功能。我正在使用BlueZ测试脚本来建立连接:“测试发现”,然后是“测试设备连接”。问题是我没有看到DBus(org.bluez)中显示任何服务。使用d-feet应用程序我只能 查看详情

自动将蓝牙连接到最后连接的设备

】自动将蓝牙连接到最后连接的设备【英文标题】:autoconnectbluetoothtolastconnecteddevice【发布时间】:2013-06-1423:48:33【问题描述】:我正在使用蓝牙聊天示例,它非常适合配对设备并将文本从一个设备发送到另一个设备,但有时它... 查看详情

dbus 上 C 上的 Bluez 编程

...单的代理应用程序。我可以配对我的设备,但是当我尝试连接时(点击连接选项)它失败并显示以下dbus日志我们将非常感谢您的帮助。methodcalltime=1537417845.746765sender=:1.0->destination=:1.25seria 查看详情

bluez5.50+pulseaudio实现蓝牙音响音频播放(代码片段)

...音频播放环境介绍执行流程蓝牙服务配置和启动流程蓝牙连接音频播放问题记录环境介绍硬件环境:开发板使用全志T507作为主控芯片WiFi蓝牙模块采用移远FC21、AP6236,操作方式一样,实现结果相同。(区别是不同... 查看详情

BlueZ 5.4 DBus API ConnectProfile GATT 服务 UUID

...:2013-04-1208:28:23【问题描述】:如何使用带有BlueZ的DBusAPI连接到GATT服务?我已使用BlueZDBUSAPI发现设备、连接并发现GATT服务UUID。但是,当我尝试为GATT服务UUID之一连接配置文件时,我收到 查看详情

我们可以使用蓝牙重新连接断开的外围设备而无需再次扫描 ios

...如果硬件超出范围或连接出现任何问题,则iOS应用程序将自动重新检 查看详情

使用 org.bluez.Adapter.CreateDevice 连接到 BT LE 设备失败并出现 org.bluez.Error.Failed:操作取消错误

】使用org.bluez.Adapter.CreateDevice连接到BTLE设备失败并出现org.bluez.Error.Failed:操作取消错误【英文标题】:ConnectingtoBTLEdeviceusingorg.bluez.Adapter.CreateDevicefailswithorg.bluez.Error.Failed:OperationcanceledError【发布时间】:2014-08-2414:19:57【 查看详情

外围设备未连接到 iOS

】外围设备未连接到iOS【英文标题】:PeripheralnotconnectingtoiOS【发布时间】:2016-02-0207:31:33【问题描述】:我正在尝试将bluez外围设备连接到iOS设备;它不工作。请在外围设备端找到以下日志。我正在使用hciconfighci0leadv做广告,但... 查看详情

树莓派蓝牙连接

使用以下命令#进入蓝牙控制模式bluetoothctl#扫描设备scanon#信任设备truct<MAC>#连接设备connect<MAC>连接失败,报错如下:Failedtoconnect:org.bluez.Error.Failed解决方法:重启pluseaudiopulseaudio-kpulseaudio--start连接成功。 查看详情

BlueZ DBUS API - GATT 接口对 BLE 设备不可用

】BlueZDBUSAPI-GATT接口对BLE设备不可用【英文标题】:BlueZDBUSAPI-GATTinterfacesunavailableforBLEdevice【发布时间】:2016-08-2516:27:21【问题描述】:我有一个BLE设备,上面运行着一堆GATT服务。我的目标是从Linux计算机(BlueZ版本为5.37)访问... 查看详情

Linux over BlueZ下的C++蓝牙耳机

...hon。现在我可以成功查询设备并与它们配对。但几秒钟后连接丢失。据我了解-配对后应该 查看详情