|
|
- // -----------------------------------------------------------------------------
- // 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);
-
- }
|