本文将讲叙如何使用EtherMind提供的蓝牙mesh堆栈和模型(Mesh Stack & Model)的API。
配置Mesh Stack & Model
提供两种最重要的配置选项:
1)编译标志(开关) Compilation Flags;
2)调优常量参数 Tunable Constants;
一,编译标志 Compilation Flags
相关定义见头文件MS_features.h,主要有4方面作用:
- 启用或禁用堆栈模块;
- 启用、禁用或控制所选模块的相关特性;
- 选择编译目标cpu平台和操作系统;
- To choose the compliance to specific architectural design, 或兼容蓝牙Mesh 特定版本。
一个例子
/*
* MS_RELAY_SUPPORT
*
* This flag is used to enable support for Relay feature.
*
* Dependency: None.
*/
#define MS_RELAY_SUPPORT
使用注意点
- 编译控制设置决定最终生成可执行程序大小,也就决定运行硬件的ROM需求;
- 只有在编译Mesh Stack & Model源代码时,才需要编辑MS_features.h;
- 若直接使用预编译的对象(DLL or Library or Object module),则需要引用对应配置的头文件MS_features.h;
二、调优常量参数 Tunable Constants
Tunable Constants决定Mesh实现栈中有关的队列、缓存的大小,因此影响最终程序运行时对RAM的需求。可以在实现栈编译时配置,具体见头文件MS_limits.h
在MS_limits.h文件中,为每个参数提供了如下说明信息:
- 名称,用途,说明和相关背景信息;
- 参数的相互依赖;
- 最小,最大推荐值。
一个例子
/*
* Maximum number of subnets the device can store information about.
*
* Minimum Value: 1
* Maximum Value: can be anything.
*/
#define MS_MAX_SUBNETS
二次开发中可修改的调优参数
对于手头只有预编译库的应用开发者,有个重要编译开关‘MS_HAVE_DYNAMIC_CONFIG’决定着是否能修改库的调优常量参数。只有在定义了‘MS_HAVE_DYNAMIC_CONFIG’时,才能修改包含在MS_CONFIG结构体中的调优常量参数,该结构定义在头文件MS_common.h中。
三、头文件说明
头文件列表
1)基础头文件 MS_common.h,必须包含。内含其他头文件
- EM_os.h – EtherMind OS Abstraction
- MS_common_pl.h – EtherMind Mesh Platform Abstraction
- MS_limits.h – EtherMind Mesh Tunable Constants
- MS_assigned_numbers.h – Bluetooth SIG defined Assigned Numbers
- MS_error.h – EtherMind Mesh API/Callback Result/Error Code Definitions
2)Mesh Core API头文件
- MS_brr_api.h
- MS_prov_api.h
- MS_net_api.h
- MS_access_api.h
3)Mesh Model API头文件
- MS_config_api.h
- MS_health_server_api.h
- MS_health_client_api.h
- MS_generic_onoff_api.h
头文件路径
- 基础头文件路径:mesh/export/include
- 平台和操作系统特定头文件路径:
osal/src/
platforms