#ifndef STA_CORE_DEBUGGING_HPP #define STA_CORE_DEBUGGING_HPP #include #ifdef STA_DEBUGGING_ENABLED #include namespace sta { extern Printable * Debug; } // namespace sta /** * @brief Debug print message. * * @param ... See @ref sta::PrintableUART::print * * @ingroup sta_core_debug */ # define STA_DEBUG_PRINT(...) sta::Debug->print(__VA_ARGS__) /** * @brief Debug print message followed by new-line to UART. * * @param ... See @ref sta::PrintableUART::println * * @ingroup sta_core_debug */ # define STA_DEBUG_PRINTLN(...) sta::Debug->println(__VA_ARGS__) /** * @brief Formatted debug printing with new-line. * * @param fmt See @ref sta::PrintableUART::printf * @param ... See @ref sta::PrintableUART::printf */ # define STA_DEBUG_PRINTF(fmt, ...) sta::Debug->printf(fmt, __VA_ARGS__) # define STA_DEBUG_READ(buffer, length) sta::Debug->read(buffer, length) #else // !STA_DEBUGGING_ENABLED # define STA_DEBUG_PRINT(...) ((void)0) # define STA_DEBUG_PRINTLN(...) ((void)0) # define STA_DEBUG_PRINTF(fmt, ...) ((void)0) # define STA_DEBUG_READ(buffer, length) ((void)0) #endif // STA_DEBUGGING_ENABLED #endif // STA_CORE_DEBUGGING_HPP