72 struct BackgroundFlushState;
75 void printLoggerDisabledError(
const char* category_name,
const char* define_name)
FL_NO_EXCEPT;
79 template<
typename InfoProv
ider>
81 if (!InfoProvider::isEnabled()) {
82 static bool error_printed =
false;
96 #ifdef FASTLED_LOG_PARLIO_ENABLED
108 #ifdef FASTLED_LOG_RMT_ENABLED
120 #ifdef FASTLED_LOG_SPI_ENABLED
132 #ifdef FASTLED_LOG_AUDIO_ENABLED
144 #ifdef FASTLED_LOG_INTERRUPT_ENABLED
156 #ifdef FASTLED_LOG_FLEXIO_ENABLED
168 #ifdef FASTLED_LOG_OBJECTFLED_ENABLED
196 template<
typename Func>
221 void setMessagesPerTick(fl::size messages_per_tick)
FL_NO_EXCEPT;
248template<
fl::size N, typename InfoProvider>
High-performance ISR-safe async logging queue (SPSC ring buffer) - declarations only.
High-performance SPSC async log queue.
bool isBackgroundFlushEnabled() const FL_NO_EXCEPT
Check if background flushing is enabled.
bool enableBackgroundFlush(fl::u32 interval_ms, fl::size messages_per_tick=5) FL_NO_EXCEPT
Enable background timer-based flushing (opt-in)
AsyncLogger() FL_NO_EXCEPT
fl::size flushN(fl::size maxMessages) FL_NO_EXCEPT
Flush up to N messages from queue (bounded flush)
fl::u32 droppedCount() const FL_NO_EXCEPT
AsyncLogQueue< 128, 4096 > mQueue
bool empty() const FL_NO_EXCEPT
void push(const fl::string &msg) FL_NO_EXCEPT
void disableBackgroundFlush() FL_NO_EXCEPT
Disable background flushing.
~AsyncLogger() FL_NO_EXCEPT=default
fl::size size() const FL_NO_EXCEPT
void clear() FL_NO_EXCEPT
void flush() FL_NO_EXCEPT
ISR-safe async logger wrapper (zero heap allocation) Uses embedded AsyncLogQueue instead of heap-allo...
static T & instance() FL_NO_EXCEPT
void setInterval(u32 interval_ms) FL_NO_EXCEPT
Change the service interval (default 16ms)
fl::size getMessagesPerTick() const FL_NO_EXCEPT
Get messages per tick.
u32 getInterval() const FL_NO_EXCEPT
Get current service interval.
fl::size mMessagesPerTick
void serviceLoggers() FL_NO_EXCEPT
Service all registered loggers (called by task)
AsyncLoggerServiceTask() FL_NO_EXCEPT
static AsyncLoggerServiceTask & instance() FL_NO_EXCEPT
void printLoggerDisabledError(const char *category_name, const char *define_name) FL_NO_EXCEPT
Print error message for disabled logger (non-template helper) Called from checkLoggerEnabled template...
void checkLoggerEnabled() FL_NO_EXCEPT
Check if logger is enabled and print error once if not.
@ SPI_ISR
Use ISR-based software (Async)
u8 u8 fract8 blur_amount FL_NO_EXCEPT
AsyncLogger & get_parlio_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_flexio_async_logger_main() FL_NO_EXCEPT
LogCategory
Logger category identifiers for registry-based access Each category has separate ISR and main thread ...
AsyncLogger & get_objectfled_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_audio_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_audio_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_spi_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_rmt_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_flexio_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_parlio_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_rmt_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_interrupt_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_objectfled_async_logger_main() FL_NO_EXCEPT
AsyncLogger & get_interrupt_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_spi_async_logger_isr() FL_NO_EXCEPT
AsyncLogger & get_async_logger_by_index() FL_NO_EXCEPT
Template-based logger accessor with auto-registration and enablement check.
FixedVector< T, INLINED_SIZE > vector_fixed
Base definition for an LED controller.
fl::vector_fixed< AsyncLogger *, 16 > mActiveLoggers
static ActiveLoggerRegistry & instance() FL_NO_EXCEPT
void forEach(Func func) FL_NO_EXCEPT
void registerLogger(AsyncLogger *logger) FL_NO_EXCEPT
Active logger registry for iteration (flush operations) Only tracks loggers that have been instantiat...
static const char * defineName() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT
Info providers for each logger category Used to supply category name, define name,...
static const char * categoryName() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static bool isEnabled() FL_NO_EXCEPT
static const char * categoryName() FL_NO_EXCEPT
static const char * defineName() FL_NO_EXCEPT