Provisioner的作用是发现与配网。
配网阶段 分配地址和增加netkey等。连接后转为节点。配置阶段增加appkey绑定模型。
1、初始化流程,存储初始化,nvs擦除, board_init();初始化LED。
2、bluetooth_init();ble协议栈初始化,开启储存命名用与恢复存储ble_mesh_nvs_open(&NVS_HANDLE);
3、ble_mesh_get_dev_uuid(dev_uuid);//获取设备uuid加载到mac,后两位dev uuid
4、ble_mesh_init();//ble mesh协议栈初始化。?
? 4.1配置网络钥匙,索引,赋值16个钥匙。?? ?
? 4.2注册配网回调esp_ble_mesh_register_prov_callback(example_ble_mesh_provisioning_cb);
? 4.3客户端配置回调esp_ble_mesh_register_config_client_callback(example_ble_mesh_config_client_cb);
? 4.4/vendor模型回调esp_ble_mesh_register_custom_model_callback(example_ble_mesh_custom_model_cb);
? 4.5配网初始化.节点配置esp_ble_mesh_init(&provision, &composition);
? 4.6初始化模型esp_ble_mesh_client_model_init(&vnd_models[0]);
? 4.7匹配device uuid前两位esp_ble_mesh_provisioner_set_dev_uuid_match(match, sizeof(match), 0, false);
? 4.8开启节点使能ADV与GATT广播esp_ble_mesh_node_prov_enable(ESP_BLE_MESH_PROV_ADV | ESP_BLE_MESH_PROV_GATT);
? 4.9添加应用key/sp_ble_mesh_provisioner_add_local_app_key(prov_key.app_key, prov_key.net_idx, prov_key.app_idx);
??