1#ifndef VITROIO_SDK_DEBUG_H
2#define VITROIO_SDK_DEBUG_H
26#if defined(VITROIO_DEBUG_HINFO_LEVEL) || \
27 defined(VITROIO_DEBUG_INFO_LEVEL) || \
28 defined(VITROIO_DEBUG_WARNING_LEVEL) || \
29 defined(VITROIO_DEBUG_ERROR_LEVEL)
31 #define _VITROIO_DEBUG_PRINTF_(serial, level, module, format, ...) printf("[%s][%s]: " format "\n\r", level, module, ##__VA_ARGS__);
35#if defined(VITROIO_DEBUG_HINFO_LEVEL)
37 extern BufferedSerial VITROIO_DEBUG_HINFO_LEVEL;
39 #define VITROIO_DEBUG_HINFO(module, format, ...) _VITROIO_DEBUG_PRINTF_(VITROIO_DEBUG_HINFO_LEVEL, "INFO", module, format, ##__VA_ARGS__)
41 #define VITROIO_DEBUG_INFO_LEVEL VITROIO_DEBUG_HINFO_LEVEL
45 #define VITROIO_DEBUG_HINFO(module, format, ...)
49#if defined(VITROIO_DEBUG_INFO_LEVEL)
51 #ifndef VITROIO_DEBUG_HINFO_LEVEL
52 extern BufferedSerial VITROIO_DEBUG_INFO_LEVEL;
55 #define VITROIO_DEBUG_INFO(module, format, ...) _VITROIO_DEBUG_PRINTF_(VITROIO_DEBUG_INFO_LEVEL, "INFO", module, format, ##__VA_ARGS__)
57 #define VITROIO_DEBUG_WARNING_LEVEL VITROIO_DEBUG_INFO_LEVEL
61 #define VITROIO_DEBUG_INFO(module, format, ...)
65#if defined(VITROIO_DEBUG_WARNING_LEVEL)
67 #ifndef VITROIO_DEBUG_INFO_LEVEL
68 extern BufferedSerial VITROIO_DEBUG_WARNING_LEVEL;
71 #define VITROIO_DEBUG_WARNING(module, format, ...) _VITROIO_DEBUG_PRINTF_(VITROIO_DEBUG_WARNING_LEVEL, "WARNING", module, format, ##__VA_ARGS__)
73 #define VITROIO_DEBUG_ERROR_LEVEL VITROIO_DEBUG_WARNING_LEVEL
77 #define VITROIO_DEBUG_WARNING(module, format, ...)
81#if defined(VITROIO_DEBUG_ERROR_LEVEL)
83 #ifndef VITROIO_DEBUG_WARNING_LEVEL
84 extern BufferedSerial VITROIO_DEBUG_ERROR_LEVEL;
87 #define VITROIO_DEBUG_ERROR(module, format, ...) _VITROIO_DEBUG_PRINTF_(VITROIO_DEBUG_ERROR_LEVEL, "ERROR", module, format, ##__VA_ARGS__)
91 #define VITROIO_DEBUG_ERROR(module, format, ...)