优化整定一版

This commit is contained in:
冯佳
2025-12-18 23:56:36 +08:00
parent e5eaf2172f
commit e36b4e0e27
16 changed files with 2619 additions and 504 deletions

View File

@ -26,13 +26,32 @@
#define MENU_ASSERT(condition) ((void)0)
#endif
/**
* @brief 日志级别定义
*/
typedef enum {
MENU_LOG_LEVEL_DEBUG, ///< 调试信息
MENU_LOG_LEVEL_INFO, ///< 普通信息
MENU_LOG_LEVEL_WARN, ///< 警告信息
MENU_LOG_LEVEL_ERROR, ///< 错误信息
MENU_LOG_LEVEL_CRITICAL, ///< 严重错误
} MenuLogLevel;
/**
* @brief 调试打印宏(工业级:集中控制调试输出)
*/
#if MENU_CONFIG_ENABLE_DEBUG
#define MENU_DEBUG(fmt, ...) menu_utils_printf("[MENU DEBUG] " fmt "\r\n", ##__VA_ARGS__)
#define MENU_DEBUG(fmt, ...) menu_utils_log(MENU_LOG_LEVEL_DEBUG, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define MENU_INFO(fmt, ...) menu_utils_log(MENU_LOG_LEVEL_INFO, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define MENU_WARN(fmt, ...) menu_utils_log(MENU_LOG_LEVEL_WARN, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define MENU_ERROR(fmt, ...) menu_utils_log(MENU_LOG_LEVEL_ERROR, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define MENU_CRITICAL(fmt, ...) menu_utils_log(MENU_LOG_LEVEL_CRITICAL, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#else
#define MENU_DEBUG(fmt, ...) ((void)0)
#define MENU_INFO(fmt, ...) ((void)0)
#define MENU_WARN(fmt, ...) ((void)0)
#define MENU_ERROR(fmt, ...) ((void)0)
#define MENU_CRITICAL(fmt, ...) ((void)0)
#endif
/**
@ -45,6 +64,18 @@
*/
#define MENU_INVALID_ID ((MenuNodeId)0xFFFF)
/**
* @brief 错误处理宏(简化错误检查和返回)
*/
#define MENU_CHECK_ERR(expr) \
do { \
MenuErrCode err = (expr); \
if (err != MENU_OK) { \
MENU_ERROR("Error at %s:%d: %s", __FILE__, __LINE__, menu_err_code_to_str(err)); \
return err; \
} \
} while (0)
/************************** 内部辅助函数声明 **************************/
/**
* @brief 断言失败处理函数
@ -54,11 +85,14 @@
void menu_utils_assert_failed(const char* file, uint32_t line);
/**
* @brief 调试打印函数对接port层的硬件打印接口
* @brief 通用日志函数对接port层的硬件打印接口
* @param level 日志级别
* @param file 文件名
* @param line 行号
* @param fmt 格式化字符串
* @param ... 可变参数
*/
void menu_utils_printf(const char* fmt, ...);
void menu_utils_log(MenuLogLevel level, const char* file, uint32_t line, const char* fmt, ...);
/**
* @brief 获取系统滴答时间ms对接port层
@ -66,4 +100,11 @@ void menu_utils_printf(const char* fmt, ...);
*/
uint32_t menu_utils_get_tick(void);
/**
* @brief 错误码转换为字符串
* @param err_code 错误码
* @return 错误信息字符串
*/
const char* menu_err_code_to_str(MenuErrCode err_code);
#endif // MENU_DEF_H