diff --git a/df_datalink/src/include/common.h b/df_datalink/src/include/common.h index cfa7614..8e1a8b5 100644 --- a/df_datalink/src/include/common.h +++ b/df_datalink/src/include/common.h @@ -1,28 +1,13 @@ /*****************************************************************************/ -/** - * Description: A brief description of this file - * - * Author: Fan Hao - * Date: 2022-10-21 18:59 - * LastEditors: Fan Hao - * LastEditTime: 2023-02-13 10:01 - * Revisions: Rev x.x - * History: - * [YYYY-MM-DD]: Description of modification. - * - * Copyright(c) 2023 Beijing Institute of Technology. - * Lab of Communication and Networking - * -******************************************************************************/ -/*****************************************************************************/ /** * Description: Common definitions * - * Date: 2021-12-04 16:32 + * Date: 2023-12-21 16:32 * LastEditors: Fan Hao * LastEditTime: 2022-07-16 17:13 * Revisions: Rev 0.1 * History: + * [2023-12-21]: Ensure the code conform ISO C11 standard. * [2022-07-16]: New branch for Dijian. * [2021-11-16]: Initial version. * @@ -40,49 +25,59 @@ #include "util.h" #include "error.h" #include "../config/app_config.h" + /************************** Constant Definitions *****************************/ /***************** Macros (Inline Functions) Definitions *********************/ -//#define ASSERT(exp) assert(exp) -#define ASSERT(exp) ((exp) ? 0 : AppAssert(__FILE__, __LINE__)) -#define _nop_() asm("nop") +#define __PRINT_BLOCK(block) do {\ + block\ +} while(0) -#define HALT_IF_ERR(status, msg, ...) \ - if (SUCCESS != status) { \ - printf("ERROR: #%d " msg, status, ##__VA_ARGS__); \ - exit(status); \ - } +#define ASSERT(exp) ((exp) ? (void)0 : AppAssert(__FILE__, __LINE__)) +#define _nop_() __asm__("nop") /* Stringify */ #define STR(x) #x -// #define _DEBUG_LEVEL 3 +#define _814_DEBUG_LEVEL 3 -#if _DEBUG_LEVEL == 1 -#define DBG_ERROR(MSG, ...) printf("in"__FILE__" #%4d [error] "MSG,__LINE__, ##__VA_ARGS__) -#define DBG_WARNING(MSG, ...) {} -#define DBG_INFO(MSG, ...) {} -#define DBG_PRINT(MSG, ...) printf(MSG, ##__VA_ARGS__) -#elif _DEBUG_LEVEL == 2 -#define DBG_ERROR(MSG, ...) printf("in"__FILE__" #%4d [error] "MSG,__LINE__, ##__VA_ARGS__) -#define DBG_WARNING(MSG, ...) printf("[warning] "MSG, ##__VA_ARGS__) -#define DBG_INFO(MSG, ...) {} -#define DBG_PRINT(MSG, ...) printf(MSG, ##__VA_ARGS__) -#elif _DEBUG_LEVEL == 3 -#define DBG_ERROR(MSG, ...) printf("in"__FILE__" #%4d [error] "MSG,__LINE__, ##__VA_ARGS__) -#define DBG_WARNING(MSG, ...) printf("[warning] "MSG, ##__VA_ARGS__) -#define DBG_INFO(MSG, ...) printf("[Info] "MSG, ##__VA_ARGS__) -#define DBG_PRINT(MSG, ...) printf(MSG, ##__VA_ARGS__) -#else -#define DBG_ERROR(MSG, ...) {} -#define DBG_WARNING(MSG, ...) {} -#define DBG_INFO(MSG, ...) {} -#define DBG_PRINT(MSG, ...) {} +#if _814_DEBUG_LEVEL > 0 +#define DBG_PRINT(...) printf(__VA_ARGS__) +#endif +#if _814_DEBUG_LEVEL >= 1 +#define DBG_ERROR(...) __PRINT_BLOCK( \ + printf("in"__FILE__" #%4d [error]\t",__LINE__); \ + printf(__VA_ARGS__); \ +) +#endif +#if _814_DEBUG_LEVEL >= 2 +#define DBG_WARNING(...) __PRINT_BLOCK( \ + printf("[warning]\t"); \ + printf(__VA_ARGS__); \ +) +#endif +#if _814_DEBUG_LEVEL >= 3 +#define DBG_INFO(...) __PRINT_BLOCK( \ + printf("[Info]\t"); \ + printf(__VA_ARGS__); \ +) #endif +#ifndef DBG_ERROR +#define DBG_ERROR(...) {} +#endif +#ifndef DBG_WARNING +#define DBG_WARNING(...) {} +#endif +#ifndef DBG_INFO +#define DBG_INFO(...) {} +#endif +#ifndef DBG_PRINT +#define DBG_PRINT(...) {} +#endif /**************************** Type Definitions *******************************/ /************************** Variable Definitions *****************************/ /************************** Function Prototypes ******************************/ void AppAssert(const char * file, int line); -#endif /* COMMON_H_ */ +#endif /* __COMMON_H_ */ diff --git a/df_datalink/src/util/common.c b/df_datalink/src/util/common.c index e26ecbb..7be9b03 100644 --- a/df_datalink/src/util/common.c +++ b/df_datalink/src/util/common.c @@ -30,14 +30,15 @@ /*****************************************************************************/ /** - * @brief + * @brief Throw an assert. * - * @param + * @param file indicate the filename of the assertion + * @param line indicate which line the assertion occurs * - * @return + * @return NONE. * ******************************************************************************/ void AppAssert(const char * file, int line){ - DBG_ERROR("Assert: %s, #%d.\n", file, line); + DBG_PRINT("in %s #%4d [assert] ",file, line); while(1); -}; +}