eCAL 5.11.0

Contents

eCAL 5.11.0#

Changelog#

# Attention: eCAL Acknowledge Feature Broken
The eCAL acknowledge feature seems to be broken with this Release.
For anybody relying on that feature, we recommend to downgrade to eCAL 5.10.4 for the time being.
We will release a fix after the holidays early next year.

# Highlights

- New Apps:

    - **Mon TUI** (`ecal_mon_tui`) - An htop-like eCAL Monitor running in a terminal

    - **Measurement Cutter** (`ecal_meas_cutter`) for trimming and cutting eCAL Measurements ([-> Documentation](https://eclipse-ecal.github.io/ecal/applications/meas_cutter/meas_cutter.html))

- eCAL Rec can now **record each topic to its own file**

- Added **Shared-Memory-Monitoring-Layer** (experimental, enable via `ecal.ini`!). This new monitoring layer can locally match publishers and subscribers and distribute monitoring information without the need for UDP Multicast.

- GUI Apps now start in **dark-mode** by default

- Setup for Windows now supports **non-admin installations**

# Changelog

Core:
- SHM Layer: when using the SHM Acknowledgement, that is now sent after the callback (not before) and subscribers are allowed to act in parallel.
- SHM Layer Handshake: Fixed and extended API to control the behavior on a per-publisher base
- Added Shared-memory-monitoring layer (experimental) that can distribute monitoring information locally without UDP. Must be explicitely enabled in `ecal.ini`.
- Added new API Call: `CPublisher::SetTypeName()`
- Linux: Added option to join Multicast groups on all interfaces. Must be enabled in `ecal.ini`.
- Windows: fixed a bug that could have caused sleep functions to sleep longer than expected when the system time would jump backwards
- Internal rework and refactoring of the SHM Layer
- Internal improvement: Descgate now prefers publisher's descriptions over subscriber's

Play:
- eCAL Play GUI can now display more columns with extended information (Channel Type, Total channel size, Min + Max timestamps)
- Linux: .ecalmeas files are now by default associated with eCAL Play GUI and display the correct icon
- Linux: eCAL Play now increased the maximum number of open file descriptors itself
- All GUIs now start by default in dark-mode

Rec:
- Added One-file-per-topic feature. When enabled, the recorder will put each topic in its own HDF5 file.
- Rec GUI: Added "Browse" button for selecting a measurement root dir
- Linux: .ecalrec files are now by default associated with eCAL Rec GUI and display the correct icon
- All GUIs now start by default in dark-mode

Sys:
- Linux: .ecalsys files are now by default associated with eCAL Sys GUI and display the correct icon
- All GUIs now start by default in dark-mode

Mon:
- Added htop-like TUI (text user interface) application: `ecal_mon_tui`
- Renamed old monitor CLI to `ecal_mon_cli` (it was just plain `ecal_mon` before)
- The Protobuf reflection now shows the size of `bytes` fields
- Linux: Added support for opening `ecal.ini` as root when using `gnome-text-editor`
- All GUIs now start by default in dark-mode

Meas Cutter:
- New command line application for trimming measurements and removing topics via allow- / deny-list. See the documentation for a guide on how to use it: https://eclipse-ecal.github.io/ecal/applications/meas_cutter/meas_cutter.html

ecalhdf5 API
- Fixed a bug that enabled copying a C++ HDF5Meas object which would lead to a crash
- Added API to save each eCAL topic to its own HDF5 file

Python: 
- Added possibility to read binary data from measurements
- Added Publisher `set_topic_description()` and `set_topic_type_name()` API

CMake & Project structure
- Removed CMake code that would explicitly fix set the CXX Standard and replaced it with target_options
- Split eCAL::pb into eCAL::core_pb, eCAL::app_pb and eCAL::time_pb. The old target is still available for compatibility. The pb targets now compile to shared objects on Linux.
- [Udpcap](https://github.com/eclipse-ecal/udpcap) is now available as a separate library and is integrated as a submodule

Samples:
- Added eCAL Play stepper. This sample can step / stop an eCAL Player based on an input topic.
- ping_client_dyn sample adapted to demonstrate correct usage of eCAL::protobuf::CProtoDynDecoder
- Added sample on how to publish / subscribe binary data with C++

Setup:
- Windows installer now supports non-admin installations
- libcurl libs are not included in the eCAL installation anymore, as they provide no benefit for the user

eCAL 5.11.0 is patch-level equivalent to eCAL 5.10.4 and 5.9.12

Downloads#