ble_mesh: Fix typos

This commit is contained in:
lly 2020-05-12 15:31:26 +08:00
parent 56c1646e2a
commit b929611d5d
25 changed files with 66 additions and 66 deletions

View file

@ -806,9 +806,9 @@ if BLE_MESH
Enable support for Generic Default Transition Time client model.
config BLE_MESH_GENERIC_POWER_ONOFF_CLI
bool "Generic Power Onoff Client Model"
bool "Generic Power OnOff Client Model"
help
Enable support for Generic Power Onoff client model.
Enable support for Generic Power OnOff client model.
config BLE_MESH_GENERIC_POWER_LEVEL_CLI
bool "Generic Power Level Client Model"
@ -909,7 +909,7 @@ if BLE_MESH
bool "Use white list to filter mesh advertising packets"
default n
help
With this option enabled, users can use whilte list to filter mesh
With this option enabled, users can use white list to filter mesh
advertising packets while scanning.
endif # BLE_MESH_SELF_TEST

View file

@ -614,7 +614,7 @@ static bool bt_mesh_is_adv_flags_valid(struct net_buf_simple *buf)
BT_DBG("Received adv pkt with flags: 0x%02x", flags);
/* Flags context will not be checked curently */
/* Flags context will not be checked currently */
((void) flags);
return true;

View file

@ -39,7 +39,7 @@ struct bt_mesh_dev bt_mesh_dev;
#define BLE_MESH_GATT_GET_CONN_ID(conn_id) (((u16_t)(conn_id)) >> 8)
#define BLE_MESH_GATT_CREATE_CONN_ID(gatt_if, conn_id) ((u16_t)((((u8_t)(conn_id)) << 8) | ((u8_t)(gatt_if))))
/* We don't need to manage the BLE_MESH_DEV_ADVERTISING flags in the version of bluedriod,
/* We don't need to manage the BLE_MESH_DEV_ADVERTISING flags in the version of Bluedroid,
* it will manage it in the BTM layer.
*/
#define BLE_MESH_DEV 0
@ -638,7 +638,7 @@ static void bt_mesh_bta_gatts_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
/* This is for EspBleMesh Android app. When it tries to connect with the
* device at the first time and it fails due to some reason. And after
* the second connection, the device needs to send GATT service change
* indication to the phone manually to notify it dicovering service again.
* indication to the phone manually to notify it discovering service again.
*/
BTA_GATTS_SendServiceChangeIndication(bt_mesh_gatts_if, bt_mesh_gatts_addr);
}
@ -973,10 +973,10 @@ int bt_mesh_gatts_service_register(struct bt_mesh_gatt_service *svc)
bta_uuid_to_bt_mesh_uuid(&bta_uuid, gatts_chrc->uuid);
BTA_GATTS_AddCharacteristic(svc_handle, &bta_uuid, bt_mesh_perm_to_bta_perm(svc->attrs[i + 1].perm), gatts_chrc->properties, NULL, NULL);
if (future_await(future_mesh) == FUTURE_FAIL) {
BT_ERR("%s, Failed to add characristic", __func__);
BT_ERR("%s, Failed to add characteristic", __func__);
return ESP_FAIL;
}
/* All the characristic should have two handle: the declaration handle and the value handle */
/* All the characteristic should have two handles: the declaration handle and the value handle */
svc->attrs[i].handle = char_handle - 1;
svc->attrs[i + 1].handle = char_handle;
BT_DBG("Add characteristic: char_uuid = %x, char_handle = %d, perm = %d, char_pro = %d", BLE_MESH_UUID_16(gatts_chrc->uuid)->val, char_handle, svc->attrs[i + 1].perm, gatts_chrc->properties);
@ -1194,7 +1194,7 @@ int bt_mesh_gattc_conn_create(const bt_mesh_addr_t *addr, u16_t service_uuid)
(bt_mesh_gattc_info[i].service_uuid == 0x0000)) {
memcpy(bt_mesh_gattc_info[i].addr.val, addr->val, BLE_MESH_ADDR_LEN);
bt_mesh_gattc_info[i].addr.type = addr->type;
/* Service to be found after exhanging mtu size */
/* Service to be found after exchanging mtu size */
bt_mesh_gattc_info[i].service_uuid = service_uuid;
break;
}

View file

@ -3459,7 +3459,7 @@ void bt_mesh_heartbeat(u16_t src, u16_t dst, u8_t hops, u16_t feat)
struct bt_mesh_cfg_srv *cfg = conf;
if (!cfg) {
BT_WARN("No configuaration server context available");
BT_WARN("No configuration server context available");
return;
}

View file

@ -444,7 +444,7 @@ static int unseg_app_sdu_prepare(struct bt_mesh_friend *frnd,
return err;
}
/* No need to reencrypt the message if the sequence number is
/* No need to re-encrypt the message if the sequence number is
* unchanged.
*/
if (meta.net.seq == bt_mesh.seq) {
@ -1426,7 +1426,7 @@ static void friend_lpn_enqueue_tx(struct bt_mesh_friend *frnd,
}
if (type == BLE_MESH_FRIEND_PDU_SINGLE && !info.ctl) {
/* Unsegmented application packets may be reencrypted later,
/* Unsegmented application packets may be re-encrypted later,
* as they depend on the the sequence number being the same
* when encrypting in transport and network.
*/

View file

@ -313,7 +313,7 @@ struct bt_mesh_model_op {
/** @def BLE_MESH_PUB_TRANSMIT_COUNT
*
* @brief Decode Pubhlish Retransmit count from a given value.
* @brief Decode Publish Retransmit count from a given value.
*
* @param transmit Encoded Publish Retransmit count & interval value.
*
@ -370,7 +370,7 @@ struct bt_mesh_model_pub {
* If the callback returns non-zero, the publication is skipped
* and will resume on the next periodic publishing interval.
*
* @param mod The Model the Publication Context belogs to.
* @param mod The Model the Publication Context belongs to.
*
* @return Zero on success or (negative) error code otherwise.
*/

View file

@ -6,8 +6,8 @@
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _BLE_MESH_BEARER_ADRPT_H_
#define _BLE_MESH_BEARER_ADRPT_H_
#ifndef _BLE_MESH_BEARER_ADAPT_H_
#define _BLE_MESH_BEARER_ADAPT_H_
#include <sys/types.h>
#include "mesh_types.h"
@ -809,5 +809,5 @@ int bt_mesh_update_exceptional_list(u8_t sub_code, u8_t type, void *info);
}
#endif
#endif /* _BLE_MESH_BEARER_ADRPT_H_ */
#endif /* _BLE_MESH_BEARER_ADAPT_H_ */

View file

@ -492,7 +492,7 @@ void bt_mesh_lpn_msg_received(struct bt_mesh_net_rx *rx)
}
if (lpn->sent_req != TRANS_CTL_OP_FRIEND_POLL) {
BT_WARN("Unexpected message withouth a preceding Poll");
BT_WARN("Unexpected message without a preceding Poll");
return;
}

View file

@ -189,7 +189,7 @@ int bt_mesh_prov_enable(bt_mesh_prov_bearer_t bearers)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(bearers & BLE_MESH_PROV_ADV)) {
/* Make sure we're scanning for provisioning inviations */
/* Make sure we're scanning for provisioning invitations */
bt_mesh_scan_enable();
/* Enable unprovisioned beacon sending */
bt_mesh_beacon_enable();

View file

@ -778,7 +778,7 @@ int bt_mesh_net_resend(struct bt_mesh_subnet *sub, struct net_buf *buf,
err = bt_mesh_net_obfuscate(buf->data, BLE_MESH_NET_IVI_TX, priv);
if (err) {
BT_ERR("%s, Deobfuscate failed (err %d)", __func__, err);
BT_ERR("%s, De-obfuscate failed (err %d)", __func__, err);
return err;
}

View file

@ -46,11 +46,11 @@ struct bt_mesh_app_key {
struct bt_mesh_subnet {
u32_t beacon_sent; /* Timestamp of last sent beacon */
u8_t beacons_last; /* Number of beacons during last
* observation window
*/
u8_t beacons_cur; /* Number of beaconds observed during
* currently ongoing window.
*/
* observation window
*/
u8_t beacons_cur; /* Number of beacons observed during
* currently ongoing window.
*/
u8_t beacon_cache[21]; /* Cached last authenticated beacon */

View file

@ -643,7 +643,7 @@ static int gap_event_cb(struct ble_gap_event *event, void *arg)
/* This is for EspBleMesh Android app. When it tries to connect with the
* device at the first time and it fails due to some reason. And after
* the second connection, the device needs to send GATT service change
* indication to the phone manually to notify it dicovering service again.
* indication to the phone manually to notify it discovering service again.
*/
ble_svc_gatt_changed(prov_svc_start_handle, 0xffff);
@ -1411,7 +1411,7 @@ int bt_mesh_gattc_conn_create(const bt_mesh_addr_t *addr, u16_t service_uuid)
(bt_mesh_gattc_info[i].service_uuid == 0x0000)) {
memcpy(bt_mesh_gattc_info[i].addr.val, addr->val, BLE_MESH_ADDR_LEN);
bt_mesh_gattc_info[i].addr.type = addr->type;
/* Service to be found after exhanging mtu size */
/* Service to be found after exchanging mtu size */
bt_mesh_gattc_info[i].service_uuid = service_uuid;
break;
}

View file

@ -111,7 +111,7 @@ enum {
LOCAL_PUB_KEY, /* Local public key is available */
LINK_ACTIVE, /* Link has been opened */
WAIT_GEN_DHKEY, /* Waiting for remote public key to generate DHKey */
HAVE_DHKEY, /* DHKey has been calcualted */
HAVE_DHKEY, /* DHKey has been calculated */
SEND_CONFIRM, /* Waiting to send Confirm value */
WAIT_NUMBER, /* Waiting for number input from user */
WAIT_STRING, /* Waiting for string input from user */
@ -132,9 +132,9 @@ struct prov_link {
u8_t element_num; /* element num of device */
u8_t ki_flags; /* Key refresh flag and iv update flag */
u32_t iv_index; /* IV Index */
u8_t auth_method; /* choosed authentication method */
u8_t auth_action; /* choosed authentication action */
u8_t auth_size; /* choosed authentication size */
u8_t auth_method; /* Choosen authentication method */
u8_t auth_action; /* Choosen authentication action */
u8_t auth_size; /* Choosen authentication size */
u16_t assign_addr; /* Application assigned address for the device */
u16_t unicast_addr; /* unicast address allocated for device */
bt_mesh_addr_t addr; /* Device address */
@ -474,7 +474,7 @@ const struct bt_mesh_prov *bt_mesh_provisioner_get_prov_info(void)
return prov;
}
void bt_mesh_provisoner_restore_prov_info(u16_t primary_addr, u16_t alloc_addr)
void bt_mesh_provisioner_restore_prov_info(u16_t primary_addr, u16_t alloc_addr)
{
prov_ctx.primary_addr = primary_addr;
prov_ctx.curr_alloc_addr = alloc_addr;
@ -675,7 +675,7 @@ static int provisioner_start_prov_pb_adv(const u8_t uuid[16], const bt_mesh_addr
}
send_link_open(i);
/* If the application layer assigned a specific unicast address for the device,
* then Provisioner will use this address in the Provisoning Data PDU.
* then Provisioner will use this address in the Provisioning Data PDU.
*/
if (BLE_MESH_ADDR_IS_UNICAST(assign_addr)) {
link[i].assign_addr = assign_addr;
@ -740,7 +740,7 @@ static int provisioner_start_prov_pb_gatt(const u8_t uuid[16], const bt_mesh_add
return -EIO;
}
/* If the application layer assigned a specific unicast address for the device,
* then Provisioner will use this address in the Provisoning Data PDU.
* then Provisioner will use this address in the Provisioning Data PDU.
*/
if (BLE_MESH_ADDR_IS_UNICAST(assign_addr)) {
link[i].assign_addr = assign_addr;
@ -785,7 +785,7 @@ int bt_mesh_provisioner_add_unprov_dev(struct bt_mesh_unprov_dev_add *add_dev, u
if ((add_dev->bearer & BLE_MESH_PROV_ADV) && (add_dev->bearer & BLE_MESH_PROV_GATT) &&
(flags & START_PROV_NOW)) {
BT_ERR("%s, Can not start PB-ADV & PB-GATT simultaneouly", __func__);
BT_ERR("%s, Can not start PB-ADV & PB-GATT simultaneously", __func__);
return -EINVAL;
}
@ -950,7 +950,7 @@ int bt_mesh_provisioner_prov_device_with_addr(const u8_t uuid[16], const u8_t ad
}
/* Here we will not check if the assigned unicast address is overlapped
* with the unicast addresses of other nodes or Provisioner, beacuse:
* with the unicast addresses of other nodes or Provisioner, because:
* 1. At this moment, the element number of the device is unknown
* 2. If the node is a reprovisioned device, then the original allocated
* unicast address will be used.
@ -1134,7 +1134,7 @@ int bt_mesh_provisioner_set_prov_info(void)
if (prov_ctx.primary_addr == BLE_MESH_ADDR_UNASSIGNED) {
/* If unicast address of primary element of Provisioner has not been set
* before, then the following initilization procedure will be used.
* before, then the following initialization procedure will be used.
*/
if (!BLE_MESH_ADDR_IS_UNICAST(prov->prov_unicast_addr) ||
!BLE_MESH_ADDR_IS_UNICAST(prov->prov_start_address)) {
@ -1325,7 +1325,7 @@ u8_t bt_mesh_set_fast_prov_unicast_addr_range(u16_t min, u16_t max)
void bt_mesh_set_fast_prov_flags_iv_index(u8_t flags, u32_t iv_index)
{
/* BIT0: Key Refreash flag, BIT1: IV Update flag */
/* BIT0: Key Refresh flag, BIT1: IV Update flag */
prov_ctx.fast_prov.flags = flags & BIT_MASK(2);
prov_ctx.fast_prov.iv_index = iv_index;
}
@ -1892,7 +1892,7 @@ static void prov_capabilities(const u8_t idx, const u8_t *data)
}
}
/* Store provisioning capbilities value in conf_inputs */
/* Store provisioning capabilities value in conf_inputs */
memcpy(&link[idx].conf_inputs[1], data, 11);
prov_buf_init(&buf, PROV_START);
@ -2020,7 +2020,7 @@ static int prov_auth(const u8_t idx, u8_t method, u8_t action, u8_t size)
return -EINVAL;
}
/* Provisioner ouputs number/string and wait for device's Provisioning Input Complete PDU */
/* Provisioner ouput number/string and wait for device's Provisioning Input Complete PDU */
link[idx].expect = PROV_INPUT_COMPLETE;
if (input == BLE_MESH_ENTER_STRING) {
@ -2492,7 +2492,7 @@ static void send_prov_data(const u8_t idx)
if (link[idx].element_num <= node->element_num) {
/**
* If the device is provisioned before, but the element number of
* the device is bigger now, then we treate it as a new device.
* the device is bigger now, then we treat it as a new device.
*/
prev_addr = node->unicast_addr;
}

View file

@ -143,7 +143,7 @@ int bt_mesh_provisioner_pb_gatt_recv(struct bt_mesh_conn *conn, struct net_buf_s
int bt_mesh_provisioner_prov_init(const struct bt_mesh_prov *prov_info);
/**
* @brief This function deinitializes provisioner's PB-GATT and PB-ADV
* @brief This function de-initializes provisioner's PB-GATT and PB-ADV
* related information.
*
* @param[in] erase: Indicate if erasing provisioning information from flash.
@ -173,7 +173,7 @@ void bt_mesh_provisioner_prov_adv_ind_recv(struct net_buf_simple *buf, const bt_
*/
const struct bt_mesh_prov *bt_mesh_provisioner_get_prov_info(void);
void bt_mesh_provisoner_restore_prov_info(u16_t primary_addr, u16_t alloc_addr);
void bt_mesh_provisioner_restore_prov_info(u16_t primary_addr, u16_t alloc_addr);
/* The following APIs are for primary provisioner application use */

View file

@ -559,7 +559,7 @@ static ssize_t proxy_recv_ntf(struct bt_mesh_conn *conn, u8_t *data, u16_t len)
}
/**
* Currently proxy client does't need bt_mesh_proxy_client_enable() and
* Currently proxy client doesn't need bt_mesh_proxy_client_enable() and
* bt_mesh_proxy_client_disable() functions, and once they are used,
* proxy client can be enabled to parse node_id_adv and net_id_adv in
* order to support proxy client role.
@ -580,7 +580,7 @@ int bt_mesh_proxy_client_enable(void)
/**
* TODO:
* Once at leat one device has been provisioned, proxy client can be
* Once at least one device has been provisioned, proxy client can be
* set to allow receiving and parsing node_id & net_id adv packets,
* and we may use a global flag to indicate this.
*/
@ -683,7 +683,7 @@ void bt_mesh_proxy_client_adv_ind_recv(struct net_buf_simple *buf, const bt_mesh
*/
return;
default:
BT_DBG("%s, Unknwon Mesh Proxy adv type 0x%02x", __func__, type);
BT_DBG("%s, Unknown Mesh Proxy adv type 0x%02x", __func__, type);
return;
}

View file

@ -86,7 +86,7 @@ struct hb_pub_val {
indefinite: 1;
};
/* Miscelaneous configuration server model states */
/* Miscellaneous configuration server model states */
struct cfg_val {
u8_t net_transmit;
u8_t relay;
@ -817,7 +817,7 @@ static int p_prov_set(const char *name)
return 0;
}
bt_mesh_provisoner_restore_prov_info(val.primary_addr, val.alloc_addr);
bt_mesh_provisioner_restore_prov_info(val.primary_addr, val.alloc_addr);
BT_INFO("Restored Primary Address 0x%04x, next address allocation 0x%04x",
val.primary_addr, val.alloc_addr);

View file

@ -1603,7 +1603,7 @@ static int trans_seg(struct net_buf_simple *buf, struct bt_mesh_net_rx *net_rx,
/* Look for free slot for a new RX session */
rx = seg_rx_alloc(net_rx, hdr, seq_auth, seg_n);
if (!rx) {
/* Warn but don't cancel since the existing slots willl
/* Warn but don't cancel since the existing slots will
* eventually be freed up and we'll be able to process
* this one.
*/

View file

@ -1191,7 +1191,7 @@ static void gen_power_default_set(struct bt_mesh_model *model,
/* Callback the received message to the application layer */
if (srv->rsp_ctrl.set_auto_rsp == BLE_MESH_SERVER_RSP_BY_APP) {
bt_mesh_gen_server_recv_set_msg_t set = {
.power_default_set.power = power, /* Just callback the actual recived value */
.power_default_set.power = power, /* Just callback the actual received value */
};
bt_mesh_generic_server_cb_evt_to_btc(
BTC_BLE_MESH_EVT_GENERIC_SERVER_RECV_SET_MSG, model, ctx, (const u8_t *)&set, sizeof(set));
@ -2213,7 +2213,7 @@ const struct bt_mesh_model_op gen_onoff_srv_op[] = {
BLE_MESH_MODEL_OP_END,
};
/* Mapping of message handlers for Generic Levl Server (0x1002) */
/* Mapping of message handlers for Generic Level Server (0x1002) */
const struct bt_mesh_model_op gen_level_srv_op[] = {
{ BLE_MESH_MODEL_OP_GEN_LEVEL_GET, 0, gen_level_get },
{ BLE_MESH_MODEL_OP_GEN_LEVEL_SET, 3, gen_level_set },

View file

@ -561,7 +561,7 @@ typedef struct __packed average_current {
} bt_mesh_average_current_t;
/* This characteristic aggregates the Voltage characteristic and instance of the Time
* Exponential 8 characateristic.
* Exponential 8 characteristic.
*/
typedef struct __packed average_voltage {
bt_mesh_voltage_t voltage;

View file

@ -21,7 +21,7 @@ extern "C" {
void bt_mesh_server_calc_remain_time(struct bt_mesh_state_transition *transition);
/* APIs used to get server model transtion time values */
/* APIs used to get server model transition time values */
void generic_onoff_tt_values(struct bt_mesh_gen_onoff_srv *srv,
u8_t trans_time, u8_t delay);
@ -61,7 +61,7 @@ void light_lc_tt_values(struct bt_mesh_light_lc_srv *srv,
void scene_tt_values(struct bt_mesh_scene_srv *srv, u8_t trans_time, u8_t delay);
/* Server model transtion timer handlers */
/* Server model transition timer handlers */
void generic_onoff_work_handler(struct k_work *work);

View file

@ -34,7 +34,7 @@ extern "C" {
#define UNKNOWN_TAI_SECONDS 0x0000000000
#define UNKNOWN_TAI_ZONE_CHANGE 0x0000000000
#define UNKNOWN_TAI_DELTA_CHANGE 0x0000000000
#define TAI_UTC_DELAT_MAX_VALUE 0x7FFF
#define TAI_UTC_DELTA_MAX_VALUE 0x7FFF
#define TAI_SECONDS_LEN 0x05
#define TAI_OF_ZONE_CHANGE_LEN 0x05
#define TAI_OF_DELTA_CHANGE_LEN 0x05

View file

@ -17,7 +17,7 @@ This demo has only one element, in which the following two models are implemente
## 2. Code Analysis
### 2.1 Foler Structure
### 2.1 Folder Structure
The folder `ble_mesh_node` contains the following files and subfolders:
@ -261,7 +261,7 @@ The block above shows a specific implementation of the model structure. Although
- `pub`: structure that needs to be defined if the Model structure supports the Publish function.
- `user_data`: optional variable for storing the application layer data.
The other structures and variables (keys, group, element) get their values through the BLE Mesh stack during the initialization or configuration stages. You are not reqiured to initialize them.
The other structures and variables (keys, group, element) get their values through the BLE Mesh stack during the initialization or configuration stages. You are not required to initialize them.
The next code block presents the definition of the model structure, and the `root_models[]` array. This array is used for indicating the number of the existing model structures. A model is implemented by using a macro.
@ -274,7 +274,7 @@ static esp_ble_mesh_model_t root_models[] = {
};
```
Different models require different macros. The exisitng types of models and their respective macros needed for implementation are given in the table below.
Different models require different macros. The existing types of models and their respective macros needed for implementation are given in the table below.
| | Model Name | Macro Required for its Definition |
| --------------- | ---- | ----------------------------- |
@ -385,9 +385,9 @@ The list of configuration options in BLE Mesh menuconfig is stored in `Component
```
—— Bluetooth Mesh support
[*] Suppoft for BLE Mesh Node
[ ] Support for BLE lqesh Provisioner
[*] Provisiosing support using the advertising bearer (PB-ADV)
[*] Support for BLE Mesh Node
[ ] Support for BLE Mesh Provisioner
[*] Provisioning support using the advertising bearer (PB-ADV)
[*] net buffer pool usage
[*] Provisioning support using GATT (PB-GATT)
[*] GATT Proxy Service

View file

@ -161,7 +161,7 @@ static void example_ble_mesh_custom_model_cb(esp_ble_mesh_model_cb_event_t event
param->model_operation.ctx, ESP_BLE_MESH_VND_MODEL_OP_STATUS,
sizeof(tid), (uint8_t *)&tid);
if (err) {
ESP_LOGE(TAG, "Faild to send message 0x%06x", ESP_BLE_MESH_VND_MODEL_OP_STATUS);
ESP_LOGE(TAG, "Failed to send message 0x%06x", ESP_BLE_MESH_VND_MODEL_OP_STATUS);
}
}
break;

View file

@ -518,7 +518,7 @@ static void example_ble_mesh_custom_model_cb(esp_ble_mesh_model_cb_event_t event
param->client_send_timeout.model,
param->client_send_timeout.ctx);
if (err != ESP_OK) {
ESP_LOGE(TAG, "%s: Faield to resend fast prov client message", __func__);
ESP_LOGE(TAG, "%s: Failed to resend fast prov client message", __func__);
return;
}
break;

View file

@ -13,7 +13,7 @@ This demo demonstrates the Wi-Fi and Bluetooth (BLE/BR/EDR) coexistence feature
Download and flash the `ble_mesh_wifi_coexist` project to your ESP32 development board and then use the following commands to get started with this demo.
1. Connect your development board to the Wi-Fi network by entering the `sta ssid password` command in your serial port tool.
- For example, you should enter `sta tset_wifi 12345678` if you want to connect your board to a network with a SSID of `tset_wifi` and a password of `12345678`.
- For example, you should enter `sta test_wifi 12345678` if you want to connect your board to a network with a SSID of `test_wifi` and a password of `12345678`.
2. Start a TCP server by entering the `iperf -s -i 3 -t 1000` command in your serial port tool, which prints the current transfer rate of the Wi-Fi network the board connects to.
@ -48,7 +48,7 @@ $ tree examples/bluetooth/esp_ble_mesh/ble_mesh/ble_mesh_wifi_coexist
The `main` folder mainly implements the BLE Mesh feature. Details can be seen in `ble_mesh_fast_prov_server`.
The `components` folder mainly implements the Wi-Fi feature, which allows some basic commands and `iperf-relared` test commands.
The `components` folder mainly implements the Wi-Fi feature, which allows some basic commands and `iperf-related` test commands.
> Note:
>
@ -205,7 +205,7 @@ static esp_err_t ble_mesh_init(void)
return ESP_OK;
}
```
2. Rregister the provisioning callback function in the BLE Mesh stack with `esp_ble_mesh_register_prov_callback(esp_ble_mesh_prov_cb)`, among which `esp_ble_mesh_prov_cb` is used to handle events thrown by protocol stations. This requires the user to implement it himself, and also needs to know the meaning of the event and how to trigger it. For example: The `ESP_BLE_MESH_PROVISIONER_PROV_LINK_OPEN_EVT` event is triggered when the provisioner starts provisioning unprovisioned device, and is handled in the `example_ble_mesh_provisioning_cb` function. Note that you need to register this function with the BLE Mesh protocol stack by calling the `esp_ble_mesh_register_prov_callback` API.
2. Register the provisioning callback function in the BLE Mesh stack with `esp_ble_mesh_register_prov_callback(esp_ble_mesh_prov_cb)`, among which `esp_ble_mesh_prov_cb` is used to handle events thrown by protocol stations. This requires the user to implement it himself, and also needs to know the meaning of the event and how to trigger it. For example: The `ESP_BLE_MESH_PROVISIONER_PROV_LINK_OPEN_EVT` event is triggered when the provisioner starts provisioning unprovisioned device, and is handled in the `example_ble_mesh_provisioning_cb` function. Note that you need to register this function with the BLE Mesh protocol stack by calling the `esp_ble_mesh_register_prov_callback` API.
```c
ESP_BLE_MESH_PROVISIONER_PROV_LINK_OPEN_EVT, /*!< Provisioner establish a BLE Mesh link event */