首页 文章

通过HCI套接字连接L2CAP?

提问于
浏览
2

访问L2CAP的常用方法是创建一个L2CAP套接字,只需在其上调用 connect() 即可连接到您要访问的蓝牙设备 . 这通常完全正常 . 但是,我有多个L2CAP连接,而且所有数据都没有丢失,而且最后创建了一个通道 . (即如果我连接到带有2个l2cap插槽的2个蓝牙传感器,两个设备的所有通知都通过最后打开的插座进入,并且套接字首先打开没有任何东西 . )但是,如果我在HCI插座上设置过滤器,我可以看到ACL数据是通过正确的连接句柄来完成的,所以我可以在那里正确地获取数据 .

所以...我想改变我的代码只使用HCI套接字 .

我的问题是,我不确定如何(或者甚至可能) . 在HCI中有一个“创建逻辑链接命令”,它似乎会创建一个L2CAP连接,但这些参数对我来说毫无意义 . 在我通过LE进行HCI连接后,我得到一个“连接完成事件”,它给了我一个2个八位字节的“Connection_Handle” . 然而,“创建逻辑链接命令”占用1个八位字节“Physical_Link_Handle” .

2 回答

  • 0

    在BLE中,无论何时 Build 连接,L2CAP都可以使用 .

    你不需要 connect 或其他任何东西 . 收到LE连接完成事件后,您就可以开始通过L2CAP进行通信了 .

    您提到的其他命令和数据不是LE,它们仅适用于BR / EDR .

  • 1

    “创建逻辑链接命令”适用于AMP控制器,与L2CAP无关 . 使用LE,您可以通过固定通道自动进行“连接”,并且可以在CID 4上简单地将ATT命令作为ACL数据包发送.ACL数据包利用从HCI LE连接事件返回的连接句柄 .

    (在#bluez IRC Channels 上回答礼貌的人;我不记得是谁)

相关问题