NimBLE 返回值与蓝牙技术规范手册上的对应情况
NimBLE 的返回值在蓝牙技术规范的基础上又分为六类,并且可以通过查看返回值的第三个字节快速得知,是蓝牙协议栈的那一层出现问题,方便了 nimble 的开发者定位问题。
错误类型 | 说明 | 不同层的错误返回值 (X 值代表具体细分的错误类型) |
---|---|---|
NimBLE Core | NimBLE 自己定义的错误码 | (X) |
ATT | 属性协议层错误码 | 0x100+(X) |
HCI | 主机控制器接口层错误码 | 0x200+(X) |
L2CAP | 逻辑链路控制与适配层协议层错误码 | 0x300+(X) |
Security manager (us) | 安全管理层错误码(本地设备) | 0x400+(X) |
Security manager (peer) | 安全管理层错误码(远端设备) | 0x500+(X) |
hardware errors | 硬件层的错误码 | 0x600+(X) |
这些错误汇总在 nimble/host/include/host/ble_hs.h
文件中。
1 | /** Error base for ATT errors */ |
nimble 的详细错误码说明可以查看官方网站说明: https://mynewt.apache.org/latest/network/ble_hs/ble_hs_return_codes.html
推荐跟 蓝牙技术规范《core_v5.2.pdf》 的内容结合起来看。
ATT 层返回值
在蓝牙技术规范:BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part F (3.4.1 Error handling)
章节中。
HCI 层返回值
在蓝牙技术规范:BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 1, Part F
章节中。
L2CAP 层返回值
在蓝牙技术规范:BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part A (4.1 L2CAP_COMMAND_REJECT_RSP)
章节中。
Security manager 层返回值
在蓝牙技术规范:BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part H (3.5.5 Pairing Failed)
章节中。