Page 1 of 1

关于 BT_GATT 错误 和 BT_HCI 警告 提示

Posted: Thu Mar 09, 2023 7:41 pm
by workhard10
我使用Gatt Server 这个例程, 实现了 与一个 NUKI FOB的连接,也正常工作了,但是在Terminal 里老是有如下的报错和警告:


W (154441) BT_HCI: hcif disc complete: hdl 0x1, rsn 0x13
E (154171) BT_GATT: unexpected handle value confirmation


BT_GATT.JPG
BT_GATT.JPG (15.49 KiB) Viewed 2995 times
虽然不影响程序运行,但是有点影响程序里面Event的相应速度。

这是什么错误? 我找不到 这个 BT_GATT 和 BT_HCI 从哪里冒出来的? 怎么解决他们? 我毫无思路,请求帮助,谢谢大家!

Re: 关于 BT_GATT 错误 和 BT_HCI 警告 提示

Posted: Tue Mar 14, 2023 2:41 pm
by workhard10
没有人知道么?或者一点提示也好呀。

Re: 关于 BT_GATT 错误 和 BT_HCI 警告 提示

Posted: Thu May 04, 2023 8:15 am
by ESP_zhanghaipeng
“unexpected handle value confirmation” 的 打印位置在 “components/bt/host/bluedroid/stack/gatt/gatt_sr.c”的“gatts_process_value_conf” 函数中,该函数用于处理 GATT client 发送来的 "Handle Value Confirmation" 消息。
从该函数中可以看出只有 “GATT_HANDLE_IS_VALID”的时候才会出现该问题,即 handle 为 0。
结合 “ BT_HCI: hcif disc complete: hdl 0x1, rsn 0x13” 可以看出 client 主动断开了连接,因此,可以推测:在 client 断开后 handle 被复位成了 0,但是还有 "Handle Value Confirmation" 消息没有完成,所以出现了这种错误。

这个错误只是打印,不会报任何事件到上层,因此应该不会影响程序里面Event的相应速度。可以通过下面的2中方式之一解决:
1-client 不要在收到 server 信息后立即断开。
2-直接注释掉该打印。
gatts_procss_value_conf.png
gatts_procss_value_conf.png (44.17 KiB) Viewed 2758 times