链接断开错误码
下面分别介绍常见的断开链接错误码以及对应的处理措施。
ERR_CODE 含义
0x08 链接因为握手超时导致断开。
解决办法:
1 该 ERR_CODE 表明,链接因为握手连续失败,达到链接超时断开时间,底层主动断开链接。握手失败的可能原因是:a 链接参数设置的链接间隔时间太长,超过 1 秒,应用层软件通过链接参数更新 API 减少握手间隔。b 硬件天线的频偏与匹配参数没有调试过,需要咨询 FAE 人员如何调试这两个天线性能参数。c SDK 版本太旧,射频参数没有更新。
ERR_CODE 含义
0x13 链接被对端设备断开。
解决办法:
1 该 ERR_CODE 表明,某个链接被对端设备主动断开。
ERR_CODE 含义
0x16 链接被对本地设备自己主动断开。
解决办法:
1 该 ERR_CODE 表明,某个链接被本地设备主动断开,在应用层调用了 void gap_disconnect_req(uint8_t conidx) API断开某个链接后,会打印该 log 信息。
ERR_CODE 含义
0x1F 握手接收失败,导致开窗过大,底层主动断开链接。
解决办法:
1 该 ERR_CODE 表明,链接被底层主动断开,原因是握手失败导致开窗过大。解决办法参考 ERR_CODE:0x08 的解决办法
ERR_CODE 含义
0x22 发送的控制包未收到对端回复超时(默认是 40 秒),主动断开。或发送断开链接包之后,链接超时时间内没有收到对端的 ack。
解决办法:
1 该 ERR_CODE 表明,对端在规定时间 40s 内没有回复控制包,或者链接超时时间没有 ack 本地主动断开链接的包。
ERR_CODE 含义
0x28 收到更新参数的时候,发现参数更新时刻已经过去了,主动断开。
解决办法:
1 该 ERR_CODE 表明,在收到下面这些控制包时,发现需要启动更新的时刻已经过去了,造成不能与对端设备同步更新,主动断开链接。解决办法参考 ERR_CODE:0x08 的解决办法。
a 对端申请链接参数更新的请求
b 对端申请 phy 更新的请求
c 对端申请 channel_map 更新的请求
ERR_CODE 含义
0x3D 执行加密操作时,发现密码不对,主动断开
解决办法:
1 该 ERR_CODE 表明,对链接进行加密操作时,对端的密码不对,底层主动断开链接。查看
a) 做为主机有没有针对未绑定设备直接进行加密链接操作,做为主机有没有调用绑定管理的绑定信息删除函数,
删掉绑定信息。有没有更改绑定信息存储 flash 的起始地址。
b) 做为从机时,有没有调用绑定管理的绑定信息删除函数,删掉绑定信息。有没有更改绑定信息存储 flash 的起始地址。
ERR_CODE 含义
建立链接时,没有收到第一包数据,建立链接失败,主动断开。
解决办法:
1 该 ERR_CODE 表明,在链接建立时,未收到对端设备第一包的数据,导致链接没有建立起来。此种问题很可能跟天线射频性能有关系,参考 ERR_CODE:0x08 的处理办法,调试天线频偏和匹配参数,同时更新 SDK 到最新版本。