@@ -13,29 +13,55 @@ extern "C" {
1313
1414typedef unsigned char byte ;
1515
16- //#define HOMEKIT_DEBUG
16+ #define HOMEKIT_NO_LOG 0
17+ #define HOMEKIT_LOG_ERROR 1
18+ #define HOMEKIT_LOG_INFO 2
19+ #define HOMEKIT_LOG_DEBUG 3
20+
21+ #ifndef HOMEKIT_LOG_LEVEL
22+ #define HOMEKIT_LOG_LEVEL HOMEKIT_LOG_INFO
23+ #endif
1724
1825#define HOMEKIT_PRINTF XPGM_PRINTF
1926
20- #ifdef HOMEKIT_DEBUG
27+ #if HOMEKIT_LOG_LEVEL >= HOMEKIT_LOG_DEBUG
2128
2229#define DEBUG (message , ...) HOMEKIT_PRINTF(">>> %s: " message "\n", __func__, ##__VA_ARGS__)
2330static uint32_t start_time = 0 ;
2431#define DEBUG_TIME_BEGIN () start_time=millis();
2532#define DEBUG_TIME_END (func_name ) HOMEKIT_PRINTF("### [%7d] %s took %6dms\n", millis(), func_name, (millis() - start_time));
33+ #define DEBUG_HEAP () DEBUG("Free heap: %d", system_get_free_heap_size());
2634
2735#else
2836
2937#define DEBUG (message , ...)
3038#define DEBUG_TIME_BEGIN ()
3139#define DEBUG_TIME_END (func_name )
40+ #define DEBUG_HEAP ()
3241
3342#endif
3443
35- #define INFO (message , ...) HOMEKIT_PRINTF(">>> [%7d] HomeKit: " message "\n", millis(), ##__VA_ARGS__)
44+ #if HOMEKIT_LOG_LEVEL >= HOMEKIT_LOG_ERROR
45+
3646#define ERROR (message , ...) HOMEKIT_PRINTF("!!! [%7d] HomeKit: " message "\n", millis(), ##__VA_ARGS__)
47+
48+ #else
49+
50+ #define ERROR (message , ...)
51+
52+ #endif
53+
54+ #if HOMEKIT_LOG_LEVEL >= HOMEKIT_LOG_INFO
55+
56+ #define INFO (message , ...) HOMEKIT_PRINTF(">>> [%7d] HomeKit: " message "\n", millis(), ##__VA_ARGS__)
3757#define INFO_HEAP () INFO("Free heap: %d", system_get_free_heap_size());
38- #define DEBUG_HEAP () DEBUG("Free heap: %d", system_get_free_heap_size());
58+
59+ #else
60+
61+ #define INFO (message , ...)
62+ #define INFO_HEAP ()
63+
64+ #endif
3965
4066char * binary_to_string (const byte * data , size_t size );
4167void print_binary (const char * prompt , const byte * data , size_t size );
0 commit comments