0

我想知道这里是否有人知道是否可以在两个设备之间同时建立两个活动连接。

设备 A 将是一个连接中的中心角色,而同一设备将在另一个活动连接中扮演外围设备的角色。另一个设备,设备 B,然后将分别承担外围和中心角色。设备 B 是 iOS 手机,设备 A 是树莓派。两个连接都使用 L2CAP 通道,或者一个连接使用 GATT/ATT,另一个连接是 L2CAP 通道。 

如果这不可能,是否有可能在设备 A 中有 2 个应用程序,每个应用程序都使用 btstack 宣传自己独特的服务,然后让设备 B 作为中心并连接/订阅设备上的两个应用程序所宣传的服务同时一个? 

下面关于 Stack Overflow 的帖子似乎得出结论,它可能是可能的,但在技术上不在蓝牙规范范围内。 单个 BLE 中央可以通过低功耗蓝牙连接多个 BLE 外设吗? 该组的另一篇文章(https://groups.google.com/g/btstack-dev/c/FjEhludeL6U)似乎提出了类似的问题,但使用了 SPP。 

4

1 回答 1

0

如果我们谈论 BLE,那么两个设备之间只能有一个链路层连接。每个设备也只有一个 GATT 数据库。

但是,这两个 GATT 角色可以同时处于活动状态,这意味着您可以在每台设备上同时独立运行一个 GATT 服务器软件和一个 GATT 客户端软件。我所知道的所有操作系统也可以将多个想要充当 GATT 客户端的应用程序“多路复用”到单个 GATT 链路上。当充当 GATT 服务器时,每个应用程序都可以在通用 GATT 数据库中注册自己的服务。

对于具有基于信用的流量控制的 L2CAP 连接导向通道,您可以在同一个 BLE 连接上运行多个此类连接。

所以是的,你试图实现的目标似乎绝对是可能的。

于 2021-12-03T23:31:29.367 回答