2个设备之间的并发L2CAP和/或GATT连接



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

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

如果这不可能,是否有可能在设备A中有两个应用程序,每个应用程序都使用btstack广告自己的独特服务,然后让设备B充当中心,同时连接/订阅设备A中两个应用软件广告的服务?

下面关于Stack Overflow的帖子似乎得出结论,这可能是可能的,但在技术上不符合蓝牙规范。一个BLE中央设备可以通过蓝牙低能耗连接多个BLE外围设备吗?此群上的另一个帖子(https://groups.google.com/g/btstack-dev/c/FjEhludeL6U(似乎提出了类似的问题,但与SPP.

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

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

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

所以,是的,你想要达到的目标似乎是绝对可能的。

最新更新