BLE错误码全面解析&连接失败原因错误码解析&BLE Disconnect Reason

错误代码用于指示错误的原因,当出现一些异常情况时会出现一些对应的错误码。错误代码的大小为8个字节。

未知HCI命令(0x01)

未知HCI命令错误代码表示控制器不理解主机发送的HCI命令数据包操作码。所给出的操作码可能不对应于本文档中指定的任何操作码,也不对应于任何特定于供应商的操作码,或者该命令可能尚未实现。

未知连接标识符(0x02)

未知连接标识符错误代码表示从主机发送了一个命令,该命令应该识别一个连接,但该连接不存在或没有识别正确的连接类型。

硬件故障(0x03)

硬件故障错误代码向主机表明,控制器中的某些故障的方式无法用任何其他错误代码来描述。此错误代码所隐含的含义依赖于实现。

PAGE超时(0x04)

页面超时错误代码表示由于页面超时配置参数而导致页面超时。此错误代码可能只出现在HCI_Remote_Name_Request和HCI_Create_Connection命令中。

身份验证失败(0x05)

身份验证失败错误代码表示由于配对或身份验证过程中的结果不正确,导致配对或身份验证失败。这可能是由于一个错误的密码或链接键。

PIN或密钥丢失(0x06)

当配对因PIN丢失而失败,或认证因密钥丢失而失败时,将使用PIN或密钥丢失的错误代码。

内存容量超过(0x07)

内存容量超过错误代码向主机表明控制器内存不足,无法存储新参数。

连接超时(0x08)

连接超时错误代码表示给定连接的链路监视超时已超时,或者给定广播的同步超时已过期。

超过连接限制(0x09)

连接限制超过错误代码表示尝试创建另一个连接失败,因为控制器已经达到其可以支持的连接数量的限制。设备可以支持的连接数取决于实现。

对设备的同步连接限制超过(0x0A)

对设备的同步连接限制超过错误代码表示控制器已达到可以达到对设备的同步连接数量的限制。设备可以支持的同步连接数取决于实现。

连接已存在(0x0B)

连接已存在错误代码表明,当已经连接到该设备,且不允许对同一设备进行多个连接时,已尝试创建到该设备的新连接。

不允许命令(0x0C)

不允许命令的错误代码表示无法执行所请求的命令,因为控制器目前处于此时无法处理此命令的状态。错误代码未知HCI命令有效的命令操作码。

由于有限的资源而被拒绝的连接(0x0D)

由于资源有限而被拒绝的连接错误代码表明一个连接由于资源有限而被拒绝。

由于安全原因而被拒绝的连接(0x0E)

由于安全原因而被拒绝的连接错误代码表明一个连接由于未满足安全要求而被拒绝,如身份验证或配对。

连接被拒绝是由于不可接受的BD_ADDR(0x0F)

由于不可接受的BD_ADDR错误代码而被拒绝的连接表明一个连接被拒绝了,因为该设备不接受BD_ADDR。这可能是因为该设备将只接受来自特定BD_ADDRs的连接。

连接接受超时超过(0x10)

连接接受超时超过错误代码表明此连接尝试已超过连接接受超时。

不支持的特性或参数值(0x11)

不支持的特性或参数值错误代码表示不支持HCI命令中的特性或参数值。此错误代码不得在LMP中用于PDU。

无效的HCI命令参数(0x12)

无效的HCI命令参数错误代码表明至少有一个HCI命令参数无效。
当参数总长度无效时,应使用。
•一个命令参数的类型无效。
•中的一个连接标识符与对应的事件不匹配。
•当一个参数需要为偶数时,它是奇数的。
•中的一个参数超出了指定的范围。
•中的两个或多个参数值的值不一致。
注意:例如,当需要ACL连接句柄时,使用SCO连接句柄时,可能是无效的类型。

远程用户终止连接(0x13)

远程用户终止连接错误代码表示远程设备上的用户要么终止了连接,要么停止了广播数据包。

由于低资源而导致的远程设备终止连接(0x14)

由于资源不足导致的远程设备终止连接错误代码表明远程设备由于资源不足而终止了连接。

远程设备终止连接(0x15)

由于关机错误而导致的远程设备终止连接代码表明远程设备由于设备即将关机而终止连接。

由本地主机终止的连接(0x16)

由本地主机终止的连接错误代码表示本地设备终止连接、终止与广播器的同步,或终止广播数据包。

重复尝试(0x17)

重复尝试错误代码表明控制器不允许身份验证或配对过程,因为自上次身份验证或配对尝试失败后经过的时间太少。

不允许配对(0x18)

不允许配对的错误代码表示设备不允许配对。例如,当一个设备只允许在某些用户输入允许配对后的某个时间窗口内允许配对时。

未知LMP PDU(0x19)

未知LMP PDU错误代码表示控制器接收到未知的LMP操作码。

不支持的远程功能(0x1A)

不支持的远程功能错误代码表明远程设备不支持与发出的命令、LMP PDU或链接层控制PDU关联的功能。

SCO偏移被拒绝(0x1B)

SCO偏移被拒绝的错误代码表示在LMP_SCO_LINK_REQ PDU中请求的偏移已被拒绝。

SCO时间间隔被拒绝(0x1C)

SCO时间间隔被拒绝的错误代码表示在LMP_SCO_LINK_REQ PDU中请求的时间间隔已被拒绝。

SCO空气模式被拒绝(0x1D)

SCO空气模式被拒绝的错误代码表示在LMP_SCO_LINK_REQ PDU中请求的空气模式已被拒绝。

无效的LMP参数/无效的LL参数(0x1E)

无效的LMP参数/无效的LL参数错误代码表明某些LMP PDU/LL控制PDU参数无效。
当PDU长度无效时,应使用。
•当一个参数需要为偶数时,它是奇数的。
•中的一个参数超出了指定的范围。
•的两个或多个参数的值不一致。

未指定的错误(0x1F)

未指定的错误错误代码表示没有指定的其他错误代码适合使用。

不受支持的LMP参数值/不受支持的LL参数值(0x20)

不受支持的LMP参数值/不受支持的LL参数值错误代码表示LMP PDU或LL控制PDU包含至少一个此时控制器不支持的参数值。这通常是在长时间的协商过程之后使用的,例如在LMP_HOLD_REQ、LMP_SNIFF_REQ和LMP_ENCRYPTION_KEY_SIZE_-REQPDU交换期间。这可以被链路层使用,例如在连接参数请求链路层控制过程中。

不允许角色更改(0x21)

不允许角色更改的错误代码表示控制器此时不允许角色更改。

LMP响应超时/LL响应超时(0x22)

LMP响应超时/LL响应超时错误代码表示LMP事务在LMP响应超时内未响应,或LL事务在LL响应超时内未响应。

LMP PDU不允许(0x24)

LMP PDU不允许的错误代码表示控制器发送了一个具有不允许的操作码的LMP PDU。

加密模式不可接受(0x25)

加密模式不可接受的错误代码表示此时所请求的加密模式不可接受。

无法更改链接键(0x26)

无法更改链接密钥错误代码表示无法更改链接键,因为使用了固定的单位密钥。

请求的QoS不支持(0x27)

请求的QoS不支持的错误代码表明不支持请求的服务质量。

即时传递(0x28)

即时传递的错误代码表示无法执行包含瞬间的LMP PDU或LL PDU,因为这将发生的瞬间已经传递。

不支持单元密钥配对(0x29)

不支持单元密钥配对错误代码表示无法请求单元密钥配对,不支持。

不同的事务冲突(0x2A)

不同的事务冲突错误代码表示已启动了与正在进行的事务发生冲突的LMP事务或LL的过程。

QoS不可接受参数(0x2C)

QoS不可接受参数错误码表示此时不能接受指定的服务质量参数,但其他参数也可以接受。

QoS拒绝(0x2D)

QoS拒绝错误代码表示不能接受指定的服务质量参数,应终止QoS协商。

不支持通道评估(0x2E)

不支持通道评估的错误代码表明控制器无法执行通道评估,因为不支持它。

安全不足(0x2F)

安全不足错误代码表示所发送的HCI命令或LMP PDU仅可在加密的链路上执行。

参数超出强制范围(0x30)

参数超出强制范围错误代码表示请求的参数值超出了给定HCI命令或LMP PDU的强制参数范围,并且收件人不接受该值。

ROLE切换挂起(0x32)

角色切换挂起错误代码表明角色切换正在挂起。当HCI命令或LMP PDU因角色切换而不能被接受时,可以使用此命令。这也可用于通知对等设备关于挂起的角色切换。

保留SLOT冲突(0x34)

保留插槽冲突错误代码表示当前同步协商已终止,协商状态设置为保留插槽冲突。 

ROLE开关失败(0x35)

角色开关失败的错误代码表示已经尝试了一个角色开关,但它失败了,并恢复了原始的图片网结构。开关可能已经故障,因为TDD开关或图片开关故障。

扩展查询响应太大(0x36)

扩展查询响应太大的错误代码表明,扩展查询响应的要求太大,无法适应控制器支持的任何数据包类型。

主机不支持的安全简单配对(0x37)

主机不支持的安全简单配对错误代码表明IO功能请求或响应被拒绝,因为发送主机不支持安全简单配对,即使接收链接管理器不支持。

主机Busy-配对(0x38)

主机忙配对错误代码表示主机忙于另一个配对操作,无法支持所请求的配对。接收设备稍后应再次重试配对。

连接拒绝到未找到合适的通道(0x39)

由于未找到合适的通道而拒绝的连接错误代码表明控制器无法计算通道选择操作的适当值。

控制器BUSY(0x3A)

控制器繁忙的错误代码表示操作被拒绝,因为控制器繁忙,无法处理请求。

不可接受的连接参数(0x3B)

不可接受的连接参数错误代码表示远程设备由于一个或多个不可接受的连接参数而终止了连接或拒绝了一个请求。

广播超时(0x3C)

广播超时错误代码表示固定时间的广告完成,或者对于定向广播,广播在没有创建连接的情况下完成。

由于MIC故障而终止的连接终止(0x3D)

由于MIC故障而终止的连接错误代码表明,由于接收到的数据包上的消息完整性检查(MIC)失败,连接或同步已终止。

连接未能被建立起/同步超时(0x3E)

连接未能建立/同步超时错误代码表明,LL启动了连接或启动了对定期广播的同步,但连接未能建立,或链接层未能与第一次尝试的6个周期广播事件内的定期广播同步。

粗时钟调整被拒绝,但将尝试使用时钟拖动(0x40)

粗时钟调整被拒绝,但将尝试使用时钟拖动错误代码表明,此时无法使用提供的参数对微型时钟进行粗调整。相反,中央系统将尝试使用时钟拖动来移动时钟。

未定义类型0 SUBMAP(0x41)

类型0子映射未定义的错误代码表示LMP PDU被拒绝,因为类型0子映射当前未定义。

未知广播标识符(0x42)

未知广播标识符错误代码表示从主机发送了一个应该标识广播或同步句柄的命令,但广播或同步句柄不存在。

达到限制(0x43)

达到限制的错误代码表示已达到请求的操作数量,并表示活动已完成(例如,广播或扫描)。

被主机取消的操作(0x44)

被主机取消的操作错误代码表示主机向控制器发出的且仍未完成的请求已成功取消。

包太长(0x45)

包太长的错误代码表示试图发送或接收超过允许的最大包长度的包。

你可能感兴趣的:(BLE&BLE,MESH,BLE,蓝牙断开原因,BLE错误码)