Releases: ETCLabs/EtcPal
Releases · ETCLabs/EtcPal
Version 0.4.1
Fixed
- Fixed a CMake error when building in the default configuration when cloned or imported in VCS
other than GitLab
Version 0.4.0
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
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 frometcpal_
toacn_
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
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
lwpa version 0.1.0. Initial pre-release.