b_mod_param
数据结构
注意:使用此功能模块,需要同时使能shell功能模块
//size:变量的大小Byte name:变量名 addr:变量地址
typedef struct
{
uint8_t size;
char* name;
void* addr;
} bParamStruct_t;
typedef bParamStruct_t bParamInstance_t;
#define _PARAM2STR(n) (#n)
//注册实例,指定需要调整的变量名和变量大小
#define bPARAM_REG_INSTANCE(param, param_size) \
bSECTION_ITEM_REGISTER_FLASH(b_mod_param, bParamInstance_t, CONCAT_2(do_, param)) = { \
.size = param_size, .name = _PARAM2STR(param), .addr = &(param)};
接口介绍
//通过 #define bPARAM_REG_INSTANCE(param, param_size) 注册实例后,通过shell操作
//例如变量名 i
//param i 查询变量值
//param i 8 设置变量名值为8
使用例子
static uint32_t TestTick = 0;
//为了测试,变量值每秒增加1
void TestParamF()
{
TestTick += 1;
}
//通过指令查询和调整TestTick的值
bPARAM_REG_INSTANCE(TestTick, 4);
int main()
{
...
bInit();
bShellInit();
...
while (1)
{
bExec();
BOS_PERIODIC_TASK(TestParamF, 1000);
}
}
/*
nr@bos:bos -v
Version:7.4.0
nr@bos:param TestTick //查询变量值
TestTick:19
nr@bosparam TestTick //查询变量值
TestTick:23
nr@bosparam TestTick 0 //设置变量值为0
nr@bosparam TestTick //再次查询
TestTick:4
nr@bos:*/