我现在基于Bluez的HCI库编程,用的是USB蓝牙适配器,能够发送广播包,且手机nRF Connect可以找到我发的广播。 但是我手机试图连接USB蓝牙时,发现USB这边的HCI并没有收到HCI_Connection_Request事件(我有开一个线程持续监听), 所以想问一下,这个事件应当用什么连接才能够被触发呢,nRF Connect使用的GATT连接难道不用通过HCI连接吗?
这是手机连接USB蓝牙时的LOG
Wireless-Tech 时隔几天了,问题已经解决。 你说的是对的,APP在上图其实已经建立完gatt端连接了,连接参数更新是为了获取gatt服务端的属性,但是此时我没有建立gatt服务,所以app搜索不到属性就自动断开了。 但从这样看,gatt连接和hci的连接或许不是一回事,不然我也不会获取不到HCI连接事件,但却能获取GATT连接事件,这部分还得再做研究。
你通过HCI指令发送命令,实际就是在做Host层的工作,而GATT连接本质上也是在做Host层,它最终还是会传送到Controller层中去的,不是简单地发送一条HCI连接指令就可以了。