代码之家  ›  专栏  ›  技术社区  ›  Thern

多个同时连接的链路层状态

  •  1
  • Thern  · 技术社区  · 7 年前

    如果我正确理解了链接层,那么它总是处于“待机”、“广告”、“扫描”、“启动”或“连接”五种状态之一。那么,我怎么可能同时连接到两个设备呢?当我连接到一个设备时,链路层处于“已连接”状态。要连接到另一个设备,它必须切换到“启动”或“广告”状态(取决于其间隙角色),同时保持已连接设备的“连接”状态。但是它同时处于两种状态,这是被禁止的。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Youssif Saeed    7 年前

    您对链接层状态的理解是正确的;核心规范(1)中的图对此进行了说明:-

    enter image description here

    然而,该规范还规定,链路层可选择性地支持多状态机,如下所示(2):-

    • 处于连接状态的链路层可以同时在主角色和从角色中操作。
    • 处于连接状态并在从属角色中运行的链路层可能具有多个连接。
    • 处于连接状态并在主角色中运行的链路层可能有多个连接。
    • 还可以支持状态和角色的所有其他组合。
    • 处于连接状态的链路层最多应与处于连接状态的另一链路层进行一次连接。

    下表列出了链路层状态的几种可能组合(3):-

    enter image description here

    我希望这有帮助。

    1. 蓝牙规范,5.0版,第6卷,B部分,一般说明,第2554页
    2. 蓝牙规范,5.0版,第6卷,B部分,一般说明,第2555页