2#ifndef __DSY_LOGGER_H__
3#define __DSY_LOGGER_H__
29#define LOGGER_NEWLINE "\r\n"
30#define LOGGER_BUFFER 128
35#define PPCAT_NX(A, B) A##B
36#define PPCAT(A, B) PPCAT_NX(A, B)
37#define STRINGIZE_NX(A) #A
38#define STRINGIZE(A) STRINGIZE_NX(A)
44#define FLT_FMT(_n) STRINGIZE(PPCAT(PPCAT(%c%d.%0, _n), d))
50#define FLT_VAR(_n, _x) \
51 (_x < 0 ? '-' : ' '), (int)(abs(_x)), \
52 (int)(((abs(_x)) - (int)(abs(_x))) * pow(10, (_n)))
56#define FLT_FMT3 FLT_FMT(3)
59#define FLT_VAR3(_x) FLT_VAR(3, _x)
71template <LoggerDestination dest = LOGGER_INTERNAL>
81 static void Print(
const char* format, ...);
91 static void StartLog(
bool wait_for_pc =
false);
95 static void PrintV(
const char* format, va_list va);
104 template <LoggerDestination D = dest>
105 static std::enable_if_t<D == LOGGER_UART>
108 impl_.Configure(cfg);
126 while(
false ==
impl_.Transmit(buffer, bytes)) {}
143 while(nl[len] !=
'\0')
166template <LoggerDestination dest>
171template <LoggerDestination dest>
174template <LoggerDestination dest>
177template <LoggerDestination dest>
189 static void Print(
const char* format, ...) {}
192 static void PrintV(
const char* format, va_list va) {}
static void PrintLineV(const char *format, va_list va)
Definition logger.h:193
Logger()
Definition logger.h:188
static void Print(const char *format,...)
Definition logger.h:189
static void StartLog(bool wait_for_pc=false)
Definition logger.h:191
static void PrintV(const char *format, va_list va)
Definition logger.h:192
static void PrintLine(const char *format,...)
Definition logger.h:190
Interface for simple USB logging.
Definition logger.h:73
static void AppendNewLine()
static void PrintLineV(const char *format, va_list va)
static std::enable_if_t< D==LOGGER_UART > Configure(const LoggerImpl< LOGGER_UART >::Config cfg)
Definition logger.h:106
Logger()
Definition logger.h:77
static void TransmitBuf()
static constexpr size_t NewLineSeqLength()
Definition logger.h:139
static void PrintV(const char *format, va_list va)
static void StartLog(bool wait_for_pc=false)
static void Print(const char *format,...)
LoggerConsts
Definition logger.h:116
@ LOGGER_SYNC_OUT
Definition logger.h:117
@ LOGGER_SYNC_IN
Definition logger.h:118
static void PrintLine(const char *format,...)
static void TransmitSync(const void *buffer, size_t bytes)
Definition logger.h:124
Logging I/O underlying implementation.
Definition logger_impl.h:32
static size_t tx_ptr_
Definition logger.h:154
static LoggerImpl< dest > impl_
Definition logger.h:156
static size_t pc_sync_
Definition logger.h:155
static char tx_buff_[128]
Definition logger.h:153
#define LOGGER_NEWLINE
Definition logger.h:29
#define LOGGER_BUFFER
Definition logger.h:30
Hardware defines and helpers for daisy field platform.
Definition index.h:2
@ LOGGER_NONE
Definition logger_impl.h:19