关于 BT_GATT 错误 和 BT_HCI 警告 提示

workhard10
Posts: 18
Joined: Tue Sep 17, 2019 11:38 am

关于 BT_GATT 错误 和 BT_HCI 警告 提示

Postby workhard10 » Thu Mar 09, 2023 7:41 pm

我使用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 2927 times
虽然不影响程序运行,但是有点影响程序里面Event的相应速度。

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

workhard10
Posts: 18
Joined: Tue Sep 17, 2019 11:38 am

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

Postby workhard10 » Tue Mar 14, 2023 2:41 pm

没有人知道么?或者一点提示也好呀。

ESP_zhanghaipeng
Posts: 41
Joined: Thu May 04, 2023 3:49 am

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

Postby ESP_zhanghaipeng » Thu May 04, 2023 8:15 am

“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 2690 times

Who is online

Users browsing this forum: Google [Bot] and 41 guests