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

...
相关推荐
词却6 分钟前
OpenCV学习:MediaPipe 人脸网格检测
opencv·学习
李日华大战鸡红12 分钟前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
AI职业加油站28 分钟前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展
陈年老古董1 小时前
Hive 函数学习笔记(上):单行函数与炸裂函数
hive·笔记·学习
喜欢打篮球的普通人2 小时前
MiniMind 学习笔记(十八):速通强化学习——从 MDP 到 PPO 的概念与算法地图
笔记·深度学习·学习
老王爱玩车3 小时前
动态内存管理
c语言·开发语言·学习·面试
lvqinglou4 小时前
学习Sql-part1 for婷姐
sql·学习·性能优化
扶风ff5 小时前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
SatanII5 小时前
MySQL 数据库学习总结|理论 + SQL 实训完整笔记
数据库·学习·mysql
~kiss~6 小时前
LangGraph 之 Human-in-the-loop,人机协作/在环
学习