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