1# Chang log 2 320210514 41. 新增Mesh Controlled Relay特性(根据周围邻居节点Relay状态决策是否开启自身Relay功能,以达到消减网络泛洪的目的)。 52. 修改RPL机制,当队列满时覆盖最早写入队列的元素,即最近有消息的节点优先留在队列中。 63. 修复Genie Service中genie OTA bug。 7 8# 概述 9 10Bluetooth Mesh Profile是一种基于BLE(Bluetooth low energy)的Mesh网络解决方案。它使用了一种称为managed-flood-based的技术,Bluetooth Mesh 使用BLE广播信道传输消息,任意一个节点都可以接收或者转发相同网络里的数据,这样大大扩大了消息的传输范围,使能大规模的网络部署成为可能。 11 12本组件实现了Bluetooth Mesh Profile 1.0版本定义的规范,提供自bearer layer 到 Model layer各个层级的功能。特性支持如下 13 14- Bluetooth Mesh配网,PB-ADV,PB-GATT 15- relay特性 16- proxy特性 17- friend特性 18- LPN特性 19- Configuration Client Model & Configuration Server Model 20- Mesh Controlled Relay特性 21 22 23## 组件安装 24 25```bash 26yoc init 27yoc install ble_mesh 28``` 29 30# 配置 31 32本组件的默认配置位于configs\ble_mesh_default_config.h文件中,对于开发者,不需要修改默认值,如果有修改的需求,需要将新的定义配置到相应Solution中的package.yaml文件,新的配置将覆盖默认值。 33 34下面是本组件的一些配置选项 35 36| 配置 | 默认值 | 说明 | 37| -------------------------------- | ------ | ------------------------------------------------------------ | 38| CONFIG_BT_MESH | 1 | 本组件功能宏,引入该组件后默认定义 | 39| CONFIG_BT_MESH_PB_ADV | 1 | 启用PB-ADV配网功能,启用后支持通过蓝牙广播进行配网 | 40| CONFIG_BT_MESH_PB_GATT | 0 | 启用PB-GATT配网功能,启用后支持BLE GATT进行配网,通常需要支持手机来配网时,需要启用该功能 | 41| CONFIG_BT_MESH_SUBNET_COUNT | 1 | 默认子网数量为1 | 42| CONFIG_BT_MESH_APP_KEY_COUNT | 1 | 默认应用密钥数量为1 | 43| CONFIG_BT_MESH_MODEL_KEY_COUNT | 1 | 默认Model可绑定密钥数量为1 | 44| CONFIG_BT_MESH_MODEL_GROUP_COUNT | 1 | 默认Model可绑定组地址数量为1 | 45| CONFIG_BT_MESH_CRPL | 10 | 默认RPL缓存数量为10条 | 46| CONFIG_BT_MESH_MSG_CACHE_SIZE | 10 | 默认底层消息缓存数量为10条 | 47| CONFIG_BT_MESH_ADV_BUF_COUNT | 9 | 默认Mesh广播可用资源数为10 | 48| CONFIG_BT_MESH_TX_SEG_MSG_COUNT | 1 | 默认并发消息发送数为1。如果同时发送消息超过该配置,将会返回错误。 | 49| CONFIG_BT_MESH_RX_SEG_MSG_COUNT | 1 | 默认并发消息接收数为1。 | 50| CONFIG_BT_MESH_RX_SDU_MAX | 72 | 默认最大消息收包长度72字节 | 51| CONFIG_BT_MESH_TX_SEG_MAX | 6 | 默认消息可分包数位6。注意CONFIG_BT_MESH_TX_SEG_MAX 至少需要比 CONFIG_BT_MESH_ADV_BUF_COUNT 小3 | 52| CONFIG_BT_MESH_RELAY | 0 | 启用Mesh Relay特性 | 53| CONFIG_BT_MESH_CTRL_RELAY | 0 | 启用Mesh Controlled Relay特性 | 54| CONFIG_BT_MESH_LOW_POWER | 0 | 启用Mesh LPN特性 | 55| CONFIG_BT_MESH_FRIEND | 0 | 启用Mesh Friend特性 | 56| CONFIG_BT_MESH_CFG_CLI | 0 | 启用Mesh Configuration Client Model | 57| CONFIG_BT_MESH_HEALTH_CLI | 0 | 启用Mesh Health Client Model | 58| CONFIG_BT_MESH_SHELL | 0 | 启用Mesh Shell调试命令 | 59| CONFIG_BT_MESH_DEBUG | 0 | 启用Mesh调试功能,该配置打开后,下面的调试宏才有效 | 60| CONFIG_BT_MESH_DEBUG_NET | 0 | 启用Mesh Network层调试 | 61| CONFIG_BT_MESH_DEBUG_BEACON | 0 | 启用Mesh Beacon层调试 | 62| CONFIG_BT_MESH_DEBUG_CRYPTO | 0 | 启用Mesh 加密层调试 | 63| CONFIG_BT_MESH_DEBUG_PROV | 0 | 启用Mesh 配网层调试 | 64| CONFIG_BT_MESH_DEBUG_ACCESS | 0 | 启用Mesh 接入层调试 | 65| CONFIG_BT_MESH_DEBUG_MODEL | 0 | 启用Mesh Beacon层调试 | 66| CONFIG_BT_MESH_DEBUG_ADV | 0 | 启用Mesh 广播层调试 | 67| CONFIG_BT_MESH_DEBUG_LOW_POWER | 0 | 启用Mesh LPN层调试 | 68| CONFIG_BT_MESH_DEBUG_FRIEND | 0 | 启用Mesh Friend层调试 | 69| CONFIG_BT_MESH_DEBUG_PROXY | 0 | 启用Mesh 代理层调试 | 70| CONFIG_BT_MESH_DEBUG_SETTINGS | 0 | 启用Mesh 存储调试 | 71 72# 接口 73 74本组件对外头文件位于components\ble_mesh\bt_mesh\core\inc\目录,通过#include <api/mesh.h>进行引用。其中API相关说明,参考《[MESH API](docs/mesh_api/MESH_Module_API.md)》文档 75 76# 示例 77 78应用示例参考Solutions中mesh_xxx相关示例程序。 79 80# 错误码 81 82MESH协议栈错误请参考 bt_errno.h 中定义 83 84HCI底层返回错误码参考 hci_err.h 中定义 BT_HCI_ERR_XXX 85 86# 运行资源 87 88不同方案下资源消耗参考 89 90| Solution | Code size/Bytes | Ro data/Bytes | RW Data/Bytes | BSS/Bytes | 91| ---------------------------- | --------------- | ------------- | ------------- | --------- | 92| mesh_light_node_demo | 55606 | 7605 | 2361 | 7128 | 93| mesh_switch_node_demo | 42196 | 4150 | 1837 | 4498 | 94| mesh_shell | 53638 | 10412 | 1752 | 4242 | 95| genie_mesh_light_ctl | 38438 | 3004 | 1277 | 2970 | 96| genie_mesh_node_ctl | 38498 | 3032 | 1277 | 2970 | 97| genie_mesh_switches | 38442 | 3004 | 1277 | 2970 | 98 99# 依赖资源 100 101- ble_host 102