Bluetooth HCI插座上的L2CAP连接?

Bluetooth HCI插座上的L2CAP连接?,bluetooth,bluetooth-lowenergy,bluez,hci,l2cap,Bluetooth,Bluetooth Lowenergy,Bluez,Hci,L2cap,访问L2CAP的常用方法是创建L2CAP套接字,然后在其上调用connect(),以连接到您要访问的蓝牙设备。这通常效果很好。然而,我正试图在一个使用Linux内核3.0的ARM设备上实现这一点,似乎存在一个严重的错误,在这个错误中,如果没有所有数据,就不能有多个L2CAP连接,而最后创建的是哪个通道。(也就是说,如果我用2个l2cap插座连接到2个蓝牙传感器,两个设备的所有通知都是最后一个通过打开的插座发出的,而没有任何东西首先通过打开的插座发出。),如果我在HCI套接字上设置了正确的过滤器,

访问L2CAP的常用方法是创建L2CAP套接字,然后在其上调用
connect()
,以连接到您要访问的蓝牙设备。这通常效果很好。然而,我正试图在一个使用Linux内核3.0的ARM设备上实现这一点,似乎存在一个严重的错误,在这个错误中,如果没有所有数据,就不能有多个L2CAP连接,而最后创建的是哪个通道。(也就是说,如果我用2个l2cap插座连接到2个蓝牙传感器,两个设备的所有通知都是最后一个通过打开的插座发出的,而没有任何东西首先通过打开的插座发出。),如果我在HCI套接字上设置了正确的过滤器,我可以看到ACL数据通过正确的连接句柄通过,这样我就可以在那里正确地获取数据

所以。。。我想更改我的代码以仅使用HCI套接字

我的问题是,我不知道怎么做(甚至不知道是否可能)。在HCI中有一个“createlogicallink命令”,它似乎可以创建L2CAP连接,但这些参数对我来说毫无意义。在我通过LE建立HCI连接之后,我得到一个“连接完成事件”,它给我一个2个八位组的“连接句柄”。“创建逻辑链接命令”采用1个八位字节的“物理链接句柄”。

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


(礼貌地回答#bluez IRC频道上的某人;我不记得是谁)

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

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

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