Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: bxparks/AceUtils

0.6 - buffered_eeprom_stm32; crc_eeprom; cli library

04 Mar 21:47
556521c

Choose a tag to compare

  • 0.6.0 (2023-03-04)
    • AceUtils/buffered_eeprom_stm32
      • Rename AceUtilsStm32BufferedEeprom.h to
        buffered_eeprom_stm32/buffered_eeprom_stm32.h
    • AceUtils/crc_eeprom
      • CrcEeprom: Recommend using a 32-bit random number for the
        contextId instead of using toContextId() helper function.
      • Rename IEepromAdapter to EepromInterface; EspEepromAdapter to
        EspStyleEeprom; AvrEepromAdapter to AvrStyleEeprom.
      • Rename EpoxyPromAvr to EpoxyEepromAvr; EpoxyPromEsp to
        EpoxyEepromEsp; tracks the changes in EpoxyDuino library.
      • Convert CrcEeprom into a template class, templatized on
        EspStyleEeprom and AvrStyleEeprom. Seems to save between 150-950
        bytes of flash memory by avoiding virtual function calls and class
        hierarchies.
    • AceUtils/freemem
      • Move freeMemory() function from examples/CommandLineShell.ino
        into freemem/freemem.h so that it can be used elsewhere.
      • Add support for STM32, and clean up header imports.
    • AceUtils/cli
      • Move AceUtilsCli.h to cli/cli.h.
      • Split CommandDispatcher from ChannelDispatcher so that it can be
        used without using an AceRoutine Channel.
      • Rename CommandManager to ChannelProcessorManager.
      • Rename ChannelDispatcher to ChannelProcessorCoroutine.
      • Rename StreamLineReader to StreamReaderCoroutine.
      • Add StreamProcessorCoroutine and StreamProcessorManager.
      • Add DirectProcessor and DirectProcessorManager.
      • Split examples/CommandLineShell.ino into 3 versions:
        • ChannelCommandLineShell
        • StreamCommandLineShell
        • DirectCommandLineShell
    • AceUtils/mode_group
      • Add ModeRecord to keep the modeId and its ModeGroup* pointer
        together in a single data structure.
      • Add some notes to mode_group/README.md
        because I had a hard time understanding my own code.
      • Deprecated: This code is deprecated before it is released. See
        notes at the top of src/mode_group. I'll
        keep it around for historical reference.

v0.5 - add contextId to CrcEeprom, create IEepromAdapter, add BufferedEEPROM for STM32

08 Mar 23:08
eb3320f

Choose a tag to compare

  • 0.5.0 (2021-03-08)
    • Add unit tests for CrcEeprom using EpoxyPromAvr and EpoxyPromEsp
      libraries from EpoxyDuino.
    • Change default CRC32 calculator to crc32_nibblem for the ESP8266
      only, since it is 2.7X faster than crc32_nibble on the ESP8266 platform.
    • Add an optional contextId to CrcEeprom() constructor. This is an
      application-provided identifier that is stored into EEPROM along with the
      data and its CRC. When the data is read by CrcEeprom::readWithCrc(), the
      contextId must match. This prevents data from a different application
      that happen to have the same length from being marked as valid.
    • Add CrcEeprom::toContextId() helper to generate the contextId.
    • Add CrcEeprom::toSavedSize() to calculate the minimum size to pass to
      CrcEeprom::begin().
    • Add BufferedEEPROM global object for STM32 which implements the
      ESP-flavored API, and uses the "buffered" versions of the low-level EEPROM
      functions.
      • Accessed through #include <AceUtilsStm32BufferedEeprom.h>.
      • The default EEPROM is unbuffered, which means every EEPROM.write()
        operation causes the entire flash page to be wiped and rewritten.
    • Add EspEepromAdapter and AvrEepromAdapter template classes,
      implementing IEepromAdapter interface. These smooth over the API
      differences between the AVR-flavored EEPROM API and the ESP-flavored
      EEPROM API and allow the CrcEeprom class to support both API flavors.
    • Breaking Change: The constructor of CrcEeprom now accepts an
      instance of IEepromAdapter, instead of using the global EEPROM
      object directly.
      • Creating the BufferedEEPROM object for the STM32 meant that there
        can be 2 EEPROM objects active concurrently. So the CrcEeprom
        needs to be told which one to use.
      • Add contextId to the CrcEeprom constructor, defaulting to 0x00.
    • Breaking Change: Rename CrcEeprom::writeWithCrc() and
      readWithCrc() to writeDataWithCrc() and readDataWithCrc().
      • Replace them with signatures which are easier to use:
        • writeWithCrc(size_t address, const T& data)
        • readWithCrc(size_t address, T& data).
      • The compiler compiler automatically figures out the sizeof(T) then
        calls the underlying writeDataWithCrc() and readDataWithCrc().

v0.4.1 - Update UnixHostDuino 0.4 to EpoxyDuino 0.5

22 Jan 20:46
66f6742

Choose a tag to compare

  • 0.4.1 (2021-01-22)
    • Convert SHIFT_ARGC_ARGV() macro in src/cli/CommandHandler.h to
      an inlined static function CommandHandler::shiftArgcArgv() using
      references. I forgot that I was programming in C++ when I created the
      macro. Add SHIFT_ARGC_ARGV() function for backwards compatibility.
    • Update UnixHostDuino 0.4 to EpoxyDuino 0.5.
    • No functional change in this release.

v0.4 - replace FastCRC, add ModeGroup, rename CommandLineInterface to AceUtilsCli

10 Dec 05:52
6c8fe0d

Choose a tag to compare

* update `AceUtilsCrcEeprom.h`
    * Replace FastCRC with AceCRC library for a reduction of 4-5 kB of flash
      memory. Allow alternate CRC calculators to be passed in as a
      constructor argument to `CrcEeprom()`.
    * Rename `CrcEeprom.h` to `AceUtilsCrcEeprom.h`, and move namespace to
      `ace_utils::crc_eeprom`::CrcEeprom`.
* create `AceUtilsModeGroup.h`
    * `ace_utils::mode_group::ModeGroup`
    * `ace_utils::mode_group::GroupNavigator`
    * a data-driven mechanism to encode and navigate the hierarchy of view
      and change modes of the display of a clock controlled by 2 buttons.
* rename `CommandLineInterface.h` to `AceUtilsCli.h`
    * move `cli/*` classes into `ace_utils::cli::` namespace

v0.3 - move self-contained code to AceCommon; move CrcEeprom and CommandLineInterface into here

01 Nov 16:52
0849ebd

Choose a tag to compare

  • 0.3 (2020-11-01)
    • Move CrcEeprom class from AceTime library.
    • Move CommandLineInterface package from AceRoutine library.
    • Move all previous utlities (with no external dependencies) into the
      AceCommon library.

0.2.1 - fix typos, minor formatting tweaks

17 Sep 17:00
8f15821

Choose a tag to compare

  • 0.2.1 (2020-09-17)
    • Formatting tweaks and rewording in preparation for Library Manager
      publication.

0.2 - add timing_stats, print_utils, benchmarks for url_encoding, rename PrintString to PrintStr

15 Sep 00:35
c4ae425

Choose a tag to compare

  • v0.2 (2020-09-14)
    • Add timing_stats utility with TimingStats class.
    • Add print_utils utility with printfTo() and printPad{N}To()
      functions.
    • Add PrintStrN class which allocates buffer on heap.
    • Rename PrintString to PrintStr to avoid name conflict with an
      existing PrintString library that does something similar.
    • Add examples/url_encoding/AutoBenchmark program to determine speed
      of formUrlEncode() and formUrlDecode() functions, compared to the
      original code. Determine that new code is 5-6X faster, which eliminates
      need to call yield() on each iteration.

0.1 - print_string and url_encoding

28 Aug 00:02
4d53d3c

Choose a tag to compare

  • v0.1 (2020-08-27)
    • Add print_string library.
    • Add url_encoding library.