diff --git a/Demo/cmd_shell/demo.c b/Demo/cmd_shell/demo.c index 90a0bd0..a49a12b 100644 --- a/Demo/cmd_shell/demo.c +++ b/Demo/cmd_shell/demo.c @@ -2,24 +2,24 @@ #include "param.h" #include -PARAM_DEFINE (test, PARAM_INT16, 10, -100, 100); -PARAM_DEFINE (test_2, PARAM_UINT16, 20, 0, 100); -PARAM_DEFINE (test_3, PARAM_DOUBLE, 3.15, -10, 10); +PARAM_DEFINE_DAT (test, PARAM_INT16, 10, -100, 100); +PARAM_DEFINE_DAT (test_2, PARAM_UINT16, 20, 0, 100); +PARAM_DEFINE_DAT (test_3, PARAM_DOUBLE, 3.15, -10, 10); PARAM_DEFINE_STR (test_str, 10, "abcdef"); -PARAM_DEFINE (test_4, PARAM_INT8, 8, -10, 10); -PARAM_DEFINE (test_5, PARAM_UINT32, 620, 500, 10000); -PARAM_DEFINE (test_6, PARAM_UINT8, 4, 5, 100); -PARAM_DEFINE (test_7, PARAM_INT64, 5, -542, 5450); +PARAM_DEFINE_DAT (test_4, PARAM_INT8, 8, -10, 10); +PARAM_DEFINE_DAT (test_5, PARAM_UINT32, 620, 500, 10000); +PARAM_DEFINE_DAT (test_6, PARAM_UINT8, 4, 5, 100); +PARAM_DEFINE_DAT (test_7, PARAM_INT64, 5, -542, 5450); ParamInfo_t sg_ParamTable[] = { - PARAM_REG(1, test, PARAM_INT16, PARAM_ATTR_ALL), - PARAM_REG(2, test_2, PARAM_UINT16, PARAM_ATTR_READ), - PARAM_REG(3, test_3, PARAM_DOUBLE, PARAM_ATTR_READ | PARAM_ATTR_WRITE), - PARAM_STR_REG(4, test_str, PARAM_ATTR_READ | PARAM_ATTR_WRITE), - PARAM_REG(5, test_4, PARAM_INT8, PARAM_ATTR_READ), - PARAM_REG(6, test_5, PARAM_UINT32, PARAM_ATTR_READ), - PARAM_REG(7, test_6, PARAM_UINT8, PARAM_ATTR_READ), - PARAM_REG(8, test_7, PARAM_INT64, PARAM_ATTR_WRITE), + PARAM_ITEM_DAT(1, test, PARAM_ATTR_ALL), + PARAM_ITEM_DAT(2, test_2, PARAM_ATTR_READ), + PARAM_ITEM_DAT(3, test_3, PARAM_ATTR_READ | PARAM_ATTR_WRITE), + PARAM_ITEM_STR(4, test_str, PARAM_ATTR_READ | PARAM_ATTR_WRITE), + PARAM_ITEM_DAT(5, test_4, PARAM_ATTR_READ), + PARAM_ITEM_DAT(6, test_5, PARAM_ATTR_READ), + PARAM_ITEM_DAT(7, test_6, PARAM_ATTR_READ), + PARAM_ITEM_DAT(8, test_7, PARAM_ATTR_WRITE), }; #define ATTR(x) ((x & (PARAM_ATTR_READ | PARAM_ATTR_WRITE)) == (PARAM_ATTR_READ | PARAM_ATTR_WRITE) ? \ @@ -53,7 +53,7 @@ void ShowAllParam(const ParamInfo_t *paramTable, uint16_t num) VIEW(PARAM_INT32, paramTable[i].pMinValue), VIEW(PARAM_INT32, paramTable[i].pMaxValue)); break; case PARAM_INT64: - printf(" %-4d %-15s %-10s %-6d %-8s %-10ld %-10ld %-10ld %-10ld\n", + printf(" %-4d %-15s %-10s %-6d %-8s %-10lld %-10lld %-10lld %-10lld\n", paramTable[i].id, paramTable[i].pszName, "int64_t", paramTable[i].length, ATTR(paramTable[i].attr), VIEW(PARAM_INT64, paramTable[i].pCurValue), VIEW(PARAM_INT64, paramTable[i].pDefValue), VIEW(PARAM_INT64, paramTable[i].pMinValue), VIEW(PARAM_INT64, paramTable[i].pMaxValue)); @@ -77,7 +77,7 @@ void ShowAllParam(const ParamInfo_t *paramTable, uint16_t num) VIEW(PARAM_UINT32, paramTable[i].pMinValue), VIEW(PARAM_UINT32, paramTable[i].pMaxValue)); break; case PARAM_UINT64: - printf(" %-4d %-15s %-10s %-6d %-8s %-10lu %-10lu %-10lu %-10lu\n", + printf(" %-4d %-15s %-10s %-6d %-8s %-10llu %-10llu %-10llu %-10llu\n", paramTable[i].id, paramTable[i].pszName, "uint64_t", paramTable[i].length, ATTR(paramTable[i].attr), VIEW(PARAM_UINT64, paramTable[i].pCurValue), VIEW(PARAM_UINT64, paramTable[i].pDefValue), VIEW(PARAM_UINT64, paramTable[i].pMinValue), VIEW(PARAM_UINT64, paramTable[i].pMaxValue)); diff --git a/Demo/cmd_shell/makefile b/Demo/cmd_shell/makefile index e7e84a4..4c17bf3 100644 --- a/Demo/cmd_shell/makefile +++ b/Demo/cmd_shell/makefile @@ -15,7 +15,7 @@ AIM_NAME:=demo .PHONY:all all: - ${GCC} ${INC} ${SRC} -o ${CURR_DIR_PATH}/${AIM_NAME} + ${GCC} ${INC} ${SRC} -o ${CURR_DIR_PATH}/${AIM_NAME} -std=c99 .PHONY:clean clean: diff --git a/Param/inc/param.h b/Param/inc/param.h index a179be5..4aee52f 100644 --- a/Param/inc/param.h +++ b/Param/inc/param.h @@ -24,7 +24,7 @@ /** - * @brief 定义参数 + * @brief 定义普通参数 * * @param name 参数名(变量名) * @param type 参数类型 @enum ParamType_e 取值 @@ -32,8 +32,8 @@ * @param minVal 最小值 * @param maxVal 最大值 */ -#define PARAM_DEFINE(name, type, defVal, minVal, maxVal) \ - typedef type##_T type##_##name##_T; \ +#define PARAM_DEFINE_DAT(name, type, defVal, minVal, maxVal) \ + enum {TYPE_##name = type};\ type##_T name = defVal;\ const type##_T def_##name = defVal;\ const type##_T min_##name = minVal;\ @@ -51,13 +51,14 @@ const char def_##name[] = {defVal}; /** - * @brief 参数注册 + * @brief 普通参数注册 * * @param id 参数唯一 ID * @param name 参数名(变量名) - * @param type 参数类型 @enum ParamType_e 取值 + * @param attr 参数属性 */ -#define PARAM_REG(id, name, type, attr) { #name, id, type, sizeof(name), attr, &name, (void *)&def_##name, (void *)&min_##name, (void *)&max_##name } +#define PARAM_ITEM_DAT(id, name, attr) { #name, id, TYPE_##name, sizeof(name), attr, &name, \ + (void *)&def_##name, (void *)&min_##name, (void *)&max_##name } /** * @brief 字符串参数注册 @@ -65,7 +66,8 @@ * @param id 参数唯一 ID * @param name 参数名(变量名) */ -#define PARAM_STR_REG(id, name, attr) { #name, id, PARAM_STARING, sizeof(name), attr, name, (void *)def_##name, NULL, NULL } +#define PARAM_ITEM_STR(id, name, attr) { #name, id, PARAM_STARING, sizeof(name), attr, name, \ + (void *)def_##name, NULL, NULL } /** * @brief 参数声明 @@ -73,12 +75,7 @@ * @param name 参数名(变量名) * @param type 参数类型 @enum ParamType_e 取值 */ -#define PARAM_EXTERN(name, type) \ - typedef type##_T type##_##name##_T; \ - extern type##_T name;\ - extern type##_T def_##name;\ - extern type##_T min_##name;\ - extern type##_T max_##name; +#define PARAM_EXTERN_DAT(name, type) extern type##_T name; /** * @brief 字符串参数声明 @@ -86,9 +83,7 @@ * @param name 参数名(变量名) * @param length 字符串预留最大长度 */ -#define PARAM_STR_EXTERN(name, length) \ - extern char name[length];\ - extern char def_##name[]; +#define PARAM_EXTERN_STR(name, length) extern char name[length]; extern size_t Param_MultiSerialize(uint8_t *pBuf, const ParamInfo_t *paramTable, uint16_t num, uint8_t opt);