|
FastLED 3.9.15
|
ISR-safe logging using ring buffers for deferred output.
Async logging enables safe logging from interrupt service routines (ISRs) by queueing messages in a ring buffer and draining them later from the main thread. This prevents watchdog timeouts caused by slow Serial I/O operations inside ISRs.
Automatic Servicing (Recommended): Async loggers are automatically serviced by fl::task system when using fl::delay(). No manual service calls required!
Manual Control (Optional): For fine-grained control, you can still manually service or flush loggers:
Custom Configuration (Optional): Configure service interval and messages-per-tick BEFORE first logger access:
Memory Footprint (Zero Heap Allocation):
Thread Safety:
Namespaces | |
| namespace | fl |
| Base definition for an LED controller. | |
Macros | |
| #define | FL_LOG_ASYNC(logger, X) |
| Generic async logging macro (captures stream expression into string) | |
| #define | FL_LOG_ASYNC_ISR(logger, msg) |
| #define | FL_LOG_AUDIO_ASYNC_FLUSH() |
| #define | FL_LOG_AUDIO_ASYNC_ISR(X) |
| #define | FL_LOG_AUDIO_ASYNC_MAIN(X) |
| #define | FL_LOG_FLEXIO_ASYNC_FLUSH() |
| #define | FL_LOG_FLEXIO_ASYNC_ISR(X) |
| #define | FL_LOG_FLEXIO_ASYNC_MAIN(X) |
| #define | FL_LOG_INTERRUPT_ASYNC_FLUSH() |
| #define | FL_LOG_INTERRUPT_ASYNC_ISR(X) |
| #define | FL_LOG_INTERRUPT_ASYNC_MAIN(X) |
| #define | FL_LOG_OBJECTFLED_ASYNC_FLUSH() |
| #define | FL_LOG_OBJECTFLED_ASYNC_ISR(X) |
| #define | FL_LOG_OBJECTFLED_ASYNC_MAIN(X) |
| #define | FL_LOG_PARLIO_ASYNC_FLUSH() |
| #define | FL_LOG_PARLIO_ASYNC_ISR(X) |
| #define | FL_LOG_PARLIO_ASYNC_MAIN(X) |
| #define | FL_LOG_RMT_ASYNC_FLUSH() |
| #define | FL_LOG_RMT_ASYNC_ISR(X) |
| #define | FL_LOG_RMT_ASYNC_MAIN(X) |
| #define | FL_LOG_SPI_ASYNC_FLUSH() |
| #define | FL_LOG_SPI_ASYNC_ISR(X) |
| #define | FL_LOG_SPI_ASYNC_MAIN(X) |