|
查看: 7|回复: 0

[BLE SDK] pushNotify返回GATT_ERR_DATA_PENDING_DUE_TO_SERVICE_DISCOVERY_BUSY(0x88)是什么原因?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 7 小时前 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
手机在完成服务发现后,应用层 push notify 数据偶尔会失败,返回错误码 0x88(GATT_ERR_DATA_PENDING_DUE_TO_SERVICE_DISCOVERY_BUSY),是什么原因?如何规避?

回答:

1、原因:在 SDP(服务发现)过程中,底层限制不能进行 notify/indicate 操作。某些手机在读完服务之后,偶尔还会下发一些读 ATT 操作,此时 push notify 就会失败并返回 0x88;等待限制时间结束后,就可以正常 push notify。

2、默认限制时间是 300ms(自收到 client 命令后开始计时),可以通过 API 调整:
  1. extern void blc_att_setServerDataPendingTime_upon_ClientCmd(u8 num_10ms);
复制代码

在初始化时调用
  1. blc_att_setServerDataPendingTime_upon_ClientCmd(0);
复制代码
即表示不限制。

3、另外,错误码 0x84(ATT_ERR_PREVIOUS_INDICATE_DATA_HAS_NOT_CONFIRMED)表示上一条 indicate 数据尚未收到 confirmation,需要先处理确认,才能发送下一条。

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部