Skip to content

Releases: ETCLabs/EtcPal

Version 0.4.1

02 Mar 20:11
Compare
Choose a tag to compare

Fixed

  • Fixed a CMake error when building in the default configuration when cloned or imported in VCS
    other than GitLab

Version 0.4.0

22 Feb 16:29
Compare
Choose a tag to compare

Added

  • etcpal_queue_receive_from_isr() and etcpal::Queue::ReceiveFromIsr()
  • New platform abstraction feature: recursive mutexes (etcpal/recursive_mutex.h)
  • New platform abstraction feature: event groups (etcpal/event_group.h)
  • etcpal_netint_is_up()
  • Native thread handle functionality:
    • etcpal_thread_os_handle_t
    • etcpal_thread_get_os_handle()
    • etcpal_thread_get_current_os_handle()
  • New C++ feature: Strongly typed opaque IDs (etcpal/cpp/opaque_id.h)
  • etcpal/queue implementation expanded to work on Windows and Linux as well as FreeRTOS.

Changed

  • Separated etcpal/lock.h into more specific headers: etcpal/mutex.h, etcpal/signal.h, etcpal/sem.h
    and etcpal/rwlock.h
  • Stack size parameters for EtcPal threads are always in bytes, and are translated for the
    underlying thread API if necessary.
  • etcpal::Thread value constructor now throws std::system_error on failure instead of etcpal::Error
  • EtcPal thread names are now honored on macOS and Linux
  • Enum constant names changed in etcpal::LogDispatchPolicy, IpAddrType, UuidVersion due to linting
    rules.

Fixed

  • Fixed a potential memory leak when enumerating network interfaces on Windows.

Version 0.3.0

18 Aug 21:39
Compare
Choose a tag to compare

Note: This is a pre-release version. This version changelog is not exhaustive.

Added

  • New port: Linux
  • New port: macOS
  • New port: iOS
  • New port: FreeRTOS
  • New port: lwIP
  • etcpal_init() in etcpal/common.h. etcpal_init() must be called before using
    features defined by feature macros defined in etcpal/common.h.
  • Extra documentation page for network interface indexes.
  • Addition of a C++ wrapper layer over EtcPal. Added wrapper classes for error,
    inet, lock, log, queue, thread, timer and uuid.
  • New module etcpal/queue for RTOS queues. FreeRTOS only for now.
  • etcpal/lock: A counting semaphore API.
  • etcpal/lock: Functions for posting signals and semaphores from an interrupt
    context.
  • etcpal/uuid: Functions to generate version 3 and version 5 UUIDs.
  • etcpal/log: Legacy syslog creation added. Interface changed slightly to
    support this.

Changed

  • Naming: Library name changed from lwpa to EtcPal. All API names updated
    accordingly.
  • Naming: Separated the platform-specific sources into 'os' and 'net' targets
    to aid in targeting mix-and-match stack environments like FreeRTOS and lwIP.
  • Allow EtcPal to be built with no networking support.
  • Improvements in mnemonic consistency across the public APIs, including
    addition of meaningful return information, better function naming, etc.
  • Modified etcpal_netint and etcpal_inet to make more meaningful use of network
    interface indexes, for portability and compatibility with IPv6.
  • etcpal/pdu -> etcpal/acn_pdu, etcpal/root_layer_pdu -> etcpal/acn_rlp. API
    constructs have prefixes changed from etcpal_ to acn_ for clarity.

Removed

  • etcpal/bool module. This module is not necessary given our target platform
    and toolchain requirements.
  • etcpal/int module. This module is not necessary given our target platform and
    toolchain requirements.

Version 0.2.0

29 May 19:11
Compare
Choose a tag to compare

lwpa version 0.2.0.

Lots of changes and improvements for lwpa on Windows, supporting the 0.2.0 version of RDMnet.
See the changelog for more details.

Version 0.1.0

19 Oct 02:38
595e445
Compare
Choose a tag to compare

lwpa version 0.1.0. Initial pre-release.