BT (蓝牙) 指令
对应源码:
components/airlink/src/luat_airlink_cmds.c启用宏:
LUAT_USE_AIRLINK_EXEC_BLUETOOTH(主指令),LUAT_USE_AIRLINK_EXEC_BLUETOOTH_RESP(异步响应)
蓝牙指令用于主机控制从机的蓝牙模块. 当前为通用 opcode 透传模式, 详细 BLE/GAP/GATT 协议由从机解析.
通用 payload 头
所有 driver 指令的 data 字段前 8 字节是 seq_id (uint64_t, 小端, 单调递增), 用于匹配 cmd 0x08 result 回调. 详见 指令层描述.
指令列表
| cmd | 名称 | 方向 | 说明 |
|---|---|---|---|
| 0x500 | bt_request | 主→从 | 蓝牙通用请求 |
| 0x510 | bt_resp_cb | 从→主 | 蓝牙异步数据回调 |
| 0x511 | bt_resp_result_cb | 从→主 | 蓝牙操作结果回调 |
各指令详细定义
bt_request (0x500)
蓝牙通用请求, opcode 透传.
| 字段 | 长度 | 含义 |
|---|---|---|
| seq_id | 8B | 序列号 |
| opcode | 2B | 蓝牙操作码 (自定义) |
| data | NB | 操作参数, 由 opcode 决定解析方式 |
opcode 的具体含义由对端蓝牙协议栈决定. 当前版本主要用作命令透传, 复杂的 BLE/GAP/GATT 协议在从机侧处理.
bt_resp_cb (0x510)
蓝牙异步数据回调. 从机主动发送, 用于推送通知类数据 (例如扫描结果、连接状态变化).
| 字段 | 长度 | 含义 |
|---|---|---|
| opcode | 2B | 对应的请求 opcode |
| data | NB | 回调数据 |
bt_resp_result_cb (0x511)
蓝牙操作结果回调. 从机主动发送, 用于返回 bt_request 的同步结果.
| 字段 | 长度 | 含义 |
|---|---|---|
| req_pkgid | 8B | 对应 bt_request 的 seq_id |
| result_code | 2B | 0 = 成功, 负值 = 错误 |
| data | NB | 结果数据 (可选) |
典型用法
蓝牙的操作通常分两类:
- 命令-响应模式: 主机发
bt_request (0x500), 从机通过bt_resp_result_cb (0x511)异步回送结果 - 事件订阅模式: 主机发
bt_request (0x500)订阅事件, 从机通过bt_resp_cb (0x510)持续推送
具体的 opcode 编号、data 格式由从机侧蓝牙协议栈定义. 建议在主机 SDK 层封装, 不直接使用裸 opcode.