蓝牙学习之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": [

...
相关推荐
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意2 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码2 天前
嵌入式学习路线
学习
毛小茛2 天前
计算机系统概论——校验码
学习
babe小鑫2 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms2 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下2 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。2 天前
2026.2.25监控学习
学习
im_AMBER2 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J2 天前
从“Hello World“ 开始 C++
c语言·c++·学习