// -----------------------------------------------------------------------------
|
|
// printf-like debug methods
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
void debugSendImpl(const char*);
|
|
|
|
void _debugSend(const char * format, va_list args) {
|
|
|
|
char temp[64];
|
|
int len = ets_vsnprintf(temp, sizeof(temp), format, args);
|
|
if (len < 64) { debugSendImpl(temp); return; }
|
|
|
|
auto buffer = new char[len + 1];
|
|
ets_vsnprintf(buffer, len + 1, format, args);
|
|
|
|
debugSendImpl(buffer);
|
|
|
|
delete[] buffer;
|
|
|
|
}
|
|
|
|
void debugSend(const char* format, ...) {
|
|
|
|
va_list args;
|
|
va_start(args, format);
|
|
|
|
_debugSend(format, args);
|
|
|
|
va_end(args);
|
|
|
|
}
|
|
|
|
void debugSend_P(PGM_P format_P, ...) {
|
|
|
|
char format[strlen_P(format_P) + 1];
|
|
memcpy_P(format, format_P, sizeof(format));
|
|
|
|
va_list args;
|
|
va_start(args, format_P);
|
|
|
|
_debugSend(format, args);
|
|
|
|
va_end(args);
|
|
|
|
}
|