蓝牙学习之Provision(6)Provison Complete

Provision Complete 之后会上报设备的节点信息和provision状态。

cpp 复制代码
<0030>10:05:42:626 [INFO]:(GATEWAY)HCI_GATEWAY_CMD_SEND_NODE_INFO : 91 8d 02 00 02 ff 89 8d d2 4e ff 54 a3 c4 84 55 87 a6 82 95 b4 21 
provision完成后会上报设备的节点信息(NODE_INFO)。
格式为:TSCRIPT_GATEWAY_DIR_RSP+ HCI_GATEWAY_CMD_SEND_NODE_INFO+ VC_node_info_t。即:91 + 89 + gateway_prov_event_t
typedef struct{
    u16 node_adr;    // primary address → 02 00 → 设备的地址:0x0002
    u8 element_cnt;  // → 02 → 2个element
    u8 rsv;          // → FF
    u8 dev_key[16];  // → 89 8d d2 4e ff 54 a3 c4 84 55 87 a6 82 95 b4 21 → Device Key
}VC_node_info_t;
🔐 Device Key 作用:
用于加密 Configuration 消息(如绑定 AppKey、设置模型等),只有 Provisioner(网关)和该设备知道,保证配置安全。

<0031>10:05:42:642 [INFO]:(GATEWAY)HCI_GATEWAY_CMD_PROVISION_EVT : 91 89 01 02 00 20 19 11 22 ff 11 d8 1e 92 20 c3 d0 f2 3f 9b f2 3c 5c 43 7e 75 cf 
Provision完成后会上报 Provisioning 成功事件。
格式为:TSCRIPT_GATEWAY_DIR_RSP+HCI_GATEWAY_CMD_PROVISION_EVT+ gateway_prov_event_t。即:91 + 89 + gateway_prov_event_t。
gateway_prov_event_t → 01 02 00 20 19 11 22 ff 11 d8 1e 92 20 c3 d0 f2 3f 9b f2 3c 5c 43 7e 75 cf 
typedef struct{
    u8 eve;        // → 01 → 1 表示成功
    u16 adr;       // → 02 00  → 设备的地址:0x0002
    u8 mac[6];     // → 20 19 11 22 ff 11 → 设备的MAC地址
    u8 uuid[16];   // → d8 1e 92 20 c3 d0 f2 3f 9b f2 3c 5c 43 7e 75 cf → 设备唯一 UUID(128-bit)
 }gateway_prov_event_t;
🆔 UUID 作用:
在 Provisioning 过程中由设备广播,Provisioner 用它识别待配网设备,全局唯一,用于防止重复配网

<0032>10:05:42:658 [INFO]:(log_win32)json_add_net_info_doc
表示网关正在将网络信息(NetKey、AppKey、设备列表等)打包成 JSON 格式,准备通过串口/USB/网络上报给上位机。通常包含:NetKey 列表,AppKey 列表,已配网设备列表(含地址、UUID、MAC、Models 等),当前网关状态,这是 配置工具(如 Telink 的 PC Tool)显示设备列表的来源。

从工具目录下找到了json文件,如下图:

json文件里存储了刚刚加入网络的设备信息:

python 复制代码
...
 
  "UUID": "d81e9220c3d0f23f9bf23c5c437e75cf",
            "macAddress": "11ff22111920",
            "name": "",
            "deviceKey": "898dd24eff54a3c4845587a68295b421",
            "unicastAddress": "0002",
            "sno": "00000000",
            "security": "secure",
            "cid": "0211",
            "pid": "0001",
            "vid": "3333",
            "crpl": "0069",
            "features": {
                "relay": 1,
                "proxy": 1,
                "friend": 1,
                "lowPower": 0
            },
            "relayRetransmit": {
                "count": 5,
                "interval": 30
            },
            "networkTransmit": {
                "count": 5,
                "interval": 30
            },
            "netKeys": [
                {
                    "index": 0,
                    "updated": false
                }
            ],
            "appKeys": [
                {
                    "index": 0,
                    "updated": false
                }
            ],
            "elements": [

...
相关推荐
秦哈哈3 小时前
【HelloAgents】学习笔记(四)
学习·ai·agent
j7~3 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
日拱一卒的小田3 小时前
ZYNQ学习笔记4-ZYNQ的SD卡控制器2
笔记·学习
外收内放4 小时前
Python与AI应用(项目开发实战:AI智能伴侣第一版)
python·学习·ai编程
へ蟲児.4 小时前
幼儿英语启蒙APP怎么选,专业性、适配性、实用性三大角度解读
学习
动词ing4 小时前
【学习笔记】动态规划+背包问题
笔记·学习
Hhy_11074 小时前
《C++深度解构04》类和对象(下)——类型转换、static、友元与编译器优化
c语言·c++·学习·类和对象·visual studio
传奇开心果编程4 小时前
【Flutter入门练中学】第1课:从零开始
学习·flutter·ui
小弥儿14 小时前
GitHub今日热榜 | 2026-09-18:腾讯双项目上榜
学习·开源
知识分享小能手16 小时前
深度学习学习教程,从入门到精通,深度生成模型 —— 知识点详解与代码实现(20)
人工智能·深度学习·学习