#ifndef _LOGGER_H_ #define _LOGGER_H_ #include #include // Disabling this option is preferred. However, when debugging system hangs // this option needs to be enabled. // #define LOGGER_OUTPUT_BY_INTERRUPT typedef enum { LOG_NORMAL, LOG_HIGH, LOG_RED, LOG_GREEN, LOG_BLUE, LOG_YELLOW } t_logColor; // initialize the logger, creates a ringbuffer void logInit(); // de-initialize the logger, free the ringbuffer void logFree(); // log a message, make sure it is a null-terminated string // return value can be ignored, it is only used in test int logMsg(const char *format, ...); int coloredMsg(const t_logColor color, bool syslogToo, const char *format, ...); #ifdef LOGGER_OUTPUT_BY_INTERRUPT void debugTxCpltCallback(UART_HandleTypeDef *huart); #endif #ifndef LOGGER_OUTPUT_BY_INTERRUPT int logExec(); #endif #endif // _LOGGER_H_