AceUtils  0.5.0
Useful Arduino utilties which are too small as separate libraries, but complex enough to be shared among multiple projects, and often have external dependencies to other libraries.
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 Cace_utils::cli::CommandHandlerSignature for a command handler
 CCoroutine
 Cace_utils::cli::CommandDispatcherA coroutine that reads lines from the Serial port, tokenizes the line on whitespace boundaries, and calls the appropriate command handler to handle the command
 Cace_utils::cli::CommandManager< BUF_SIZE, ARGV_SIZE >A convenience wrapper around a CommandDispatcher that hides complexity of creating, initializing and injecting the resources needed by the CommandDispatcher
 Cace_utils::cli::StreamLineReaderAn AceRoutine coroutine that reads lines (terminated by '\n' or '\r' from the Stream device, and write the InputLine message into the provided Channel
 Cace_utils::crc_eeprom::CrcEepromThin wrapper around the EEPROM object (from the the built-in EEPROM library) to read and write a given block of data along with its CRC check
 Cace_utils::crc_eeprom::IEepromAdapterThe base EEPROM API used by CrcEeprom class
 Cace_utils::crc_eeprom::AvrEepromAdapter< E >A wrapper class around an EEPROM class that follows the AVR-style API
 Cace_utils::crc_eeprom::EspEepromAdapter< E >A wrapper class around an EEPROM class that follows the ESP-style API
 Cace_utils::cli::InputLineMessage sent from StreamLineReader to CommandDispatcher coroutines through Channel<InputLine> channel
 Cace_utils::mode_group::ModeGroupA data structure that captures the group of sibliing clock modes which can be cycled through using the "Mode" button
 Cace_utils::mode_group::ModeNavigatorA class that helps navigate the hierarchical ModeGroup tree defined by the rootModeGroup