Releases: eclipse-ecal/ecal
eCAL v5.12.1
Changelog
Core:
- Fixed a bug in the un-registration feature of publishers / subscribers (#1197)
- Fixed a bug that caused callbacks receiving wrong data for zero-length-messages being sent over SHM (#1203)
- Fixed a bug that caused SHM Acks not recovering after the timeout had been reached once (#1207)
- Code cleanup of Add / Remove Datawriter connection logic (#1216)
- Added more logging for SHM Memfile creation / handling (#1225)
- Fixed a bug that prevented processes to receive SHM data again, when they had undsubscribed from the topic earlier. For that, a new ownership flag was assigned to eCAL Events. The bug did not affect Windows. (#1222)
- Prevented showing eCAL internal deprecation warnings when compiling eCAL (#1226)
HDF5:
- Fixed a bug that caused datasets not being closed properly, when zero-size data had been read from them (#1211)
General
- Fixed a Documentation build issue by explicitely defining the sphinxcontrib-youtube version (#1202)
- Added workaround for fixing a bug in the termcolor library, that prevented compiling with GCC 13 (#1228)
Rec:
- Fixed a typo in GUI (#1201)
Mon:
- Mon TUI now supports ftxui 5.0.0 (#1188)
eCAL 5.12.1 is patch-level equivalent to eCAL 5.11.6
eCAL 5.11.6
Changelog
Core:
- Fixed a bug that caused callbacks receiving wrong data for zero-length-messages being sent over SHM (#1203)
- Fixed a bug that may have caused drops in the SHM Layer (#1198)
- Fixed a bug that caused SHM Acks not recovering after the timeout had been reached once (#1207)
HDF5: - Fixed a bug that caused datasets not being closed properly, when zero-size data had been read from them (#1211)
General
- Fixed a Documentation build issue by explicitely defining the sphinxcontrib-youtube version (#1202)
- Added workaround for fixing a bug in the termcolor library, that prevented compiling with GCC 13 (#1228)
Rec:
- Fixed a typo in GUI (#1201)
eCAL 5.11.6 is patch-level equivalent to eCAL 5.12.1
eCAL v5.12.0
Highlights
-
True Zero Copy!
eCAL had Zero Copy in the past. But now it's even better! With the new low level API you can precisely control which part of your Shared Memory message you actually have to change and therefore speed up your system even more!
Check out the Zero Copy documentation for explanations and examples on how to use it!
-
Container support through host-groups
You want to containerize your eCAL Apps? Well, then this is the release for you. In the past, you had to choose between enabling support for eCAL services or utilizing the shared memory transport layer, now you can have both simultaneously.
Check out the eCAL in Docker tutorial to learn more!
This also enables you to manage apps in your docker containers with eCAL Sys!
-
Improved eCAL Monitor for Debugging
We enriched the eCAL Monitor with even more information, that allow you to debug your system. You can now see the size and hash of your publishers' and subscribers' descriptors. And - if that isn't enough for you - the eCAL Monitor got an entirely new Raw Data panel for very deep (but easy!) inspections of the registration layer.
-
Improved support for C#
The C# language binding has seen some mayor updates. Most notably, the Client / Server API is now available in C#, so you can use eCAL's RPC features!
Changelog
Core
-
API, Features & Behavior
- Added true-zero-copy support (i.e., even when publishing), when using Shared Memory (#1082)
- Added
CPayloadWriter
class that represents a view on the shared memory - Added samples on how to utilize it:
- Added
- Added active un-registration for pub/sub and client/server. This makes apps that rely on the monitoring data (like eCAL Mon) more responsive. (#1086)
- Added events for Publishers and Subscribers:
pub_event_update_connection
andsub_event_update_connection
(#920) - Added API to retrieve the monitoring / registration data as a native C++ struct
This new API function is much more performant than the old protobuf based version, as it doesn't require a serialization and deserialization. (#994) - Added eCAL Util methods for efficiently getting information about Topics and Services without having to initialize the eCAL Monitoring layer:
eCAL::Util::GetTopics()
,eCAL::Util::GetServices()
(#990, #1010) - Added API to separate the encoding (e.g.
proto
) from the message type (e.g.pb.person
) (#1126, #1134)- The new information is provided atomically via the SDataTypeInformation struct
- The internal
topic.proto
file is extended with more fields. For compatibility, both the oldttype
,tdesc
and the newtinfo
fields are set. - Publishers and Subscribers now have a
SetTopicInformation()
/GetTopicInformation()
function and new constructors. The old functions still exist.
- The internal descriptor pool is now cleaned after not seeing a topic for a certain time (#995)
- Added overload of
CMsgPublisher::Send()
that supports an acknowledgement timeout in cases where only Shared memory is used (#1026, #1040, #1064) - Create macros to deprecate functions / variables, since a given eCAL version. This allows users to see directly when something will be / has been deprecated. (#1146)
- Removed support for iceoryx (#1056, #1046)
- Added true-zero-copy support (i.e., even when publishing), when using Shared Memory (#1082)
-
New
ecal.ini
options- Fixed computation of UDP Multicast Address for a topic name (#950)
This adds the[network]/multicast_config_version
to theecal.ini
. The old implementation (v1
) is currently the default. - Added
[network]/host_group_name
setting inecal.ini
, that allows to steer which processes shall communicate via SHM. This now allows Docker containers running on the same host to communicate via SHM while still having their own hostname to be addressable by eCAL Services / RPC calls. (#1143) - Added
[experimental]/drop_out_of_order_messages
option toecal.ini
to drop out-of-order messages.
The default is to not drop out of order messages, which is the old behavior. (#1039)
- Fixed computation of UDP Multicast Address for a topic name (#950)
-
Fixes
- Limited internal SHM filenames to 31 characters in order to comply with the POSIX standard. This fixes issues on macOS. (#1009)
- TCP Layer: Added bytes-alignment field in TCP Header to 8-byte-align the TCP user payload. (#1050)
This fixes issues with Capnproto data being transported with TCP - Fixed an issue that could lead to deadlocks when calling
Destroy()
from a subscriber callback (#1130) - Fixed a bug that could cause data drops of the first published message when using the SHM Multibuffering feature (#1074)
Apps
-
Mon:
- Added Raw-Data-Panel, that displays the un-interpreted content of the monitoring layer for debugging purposes (#1088)
- Added Column in the topics panel that shows the size of the descriptor information (#1063)
- Reflection windows don't warn about 2 or more publishers for a topic anymore. Having 2 or more publishers per topic is totally fine (and has always been). (#936)
-
Rec:
- Added RPC call "SetConfig" for remotely changing the configuration without having to load it from a file (#957)
-
Meas Cutter:
- Aligned output folder structure to eCAL Rec recordings (#1110)
Bindings
-
C#:
- Added API for Service / Client interface + samples (#1043)
- Added overload to
Publisher.Send()
that takes abyte[]
(#1013) - Added
GetTime()
to Monitoring class (#1013) - Changed return type of
GetMonitoring()
andGetLogging()
tobyte[]
(#1013) - Properly create Protobuf descriptors when using newer Protobuf Versions that have that feature available. (#1018)
-
Python:
- Zero size messages now create a zero-size bytearray instead of
none
(#1113)
- Zero size messages now create a zero-size bytearray instead of
Build
-
Build support for the latest flatbuffers version (23.3.3) (#1071, #1133)
-
Upgraded official Windows installer to be built with Visual Studio 2019 (v142). From now on, you will need VS 2019 or up to link against the SDK coming from our installer.
Also removed a previous hack that was required to build the complete project with VS 2015 (v140). (#1097) -
Allow standalone build of C# bindings (#1002)
-
Updated submodule dependencies:
Samples:
eCAL v5.11.5
Changelog
Core:
- Improved performance on systems with slow malloc implementations (like QNX)
- Fixed nullptr check in raw-C Binding (#1052)
- Fixed compile issue with gcc13 by adding a missing cstdint include
- Fixed a bug caused by the registration thread not being stopped correctly on eCAL shutdown (finalize) (#1141)
- Restore Receive functionality for Dynamic Subscribers (#1150)
Mon:
-
GUI:
-
TUI: Fixed a crash caused by an unsigned size_t underflow (#1115)
eCAL 5.11.5 is patch-level equivalent to eCAL 5.10.8
eCAL v5.10.8
Changelog
Core:
- Fixed nullptr check in raw-C Binding (#1052)
- Fixed compile issue with gcc13 by adding a missing cstdint include
- Fixed a bug that was caused by the cyclic registration thread not being stopped early enough (#1141)
- Restore Receive functionality for Dynamic Subscribers (#1150)
Mon:
- GUI:
eCAL 5.10.8 is patch-level equivalent to eCAL 5.11.5
eCAL v5.11.4
Changelog
Core:
- macOS: Fixed bug when getting the Process name through the eCAL API
- macOS: Fixed loading of timesync plugins (Thanks to @JerryHyun)
- Fixed error logging in CTcpClient
- Small refactoring to prevent false-positives from McAfee
There never was any harmful code in eCAL. However, McAfee reported a false positive of the ecal_cored.dll when compiling it in 32bit for Windows. Our official binaries were not affected, as those are only 64 bit.
Mon:
- Build: Fixed wrong dependency name in CMakeLists.txt (udpcap)
eCAL 5.11.4 is patch-level equivalent to eCAL 5.10.7
eCAL v5.10.7
Changelog
Core:
- macOS: Fixed bug when getting the Process name through the eCAL API
- macOS: Fixed loading of timesync plugins (Thanks to @JerryHyun)
- Fixed error logging in CTcpClient
eCAL 5.10.7 is patch-level equivalent to eCAL 5.11.4
eCAL v5.11.3
Changelog
Rec:
- Fixed Small Bug in GUI: Klicking File/New Config now properly clears the one-file-per-channel-option
- eCAL Rec CLI: getconfig command now also displays the one-file-per-topic setting
- Fixed Bug in RPC Interface: When calling GetConfig via RPC, the Upload settings are now properly included
MMA:
- Fixed bug that caused Process memory to be in KB instead of Bytes (which would have been correct)
Python:
- Added .whl for Python 3.11 on Ubuntu 22.04 (Jammy)
eCAL 5.11.3 is patch-level equivalent to eCAL 5.10.6
eCAL v5.10.6
Changelog
Rec:
- Fixed Bug in RPC Interface: When calling GetConfig via RPC, the Upload settings are now properly included
MMA:
- Fixed bug that caused Process memory to be in KB instead of Bytes (which would have been correct)
Python:
- Added .whl for Python 3.11 on Ubuntu 22.04 (Jammy)
eCAL 5.10.6 is patch-level equivalent to eCAL 5.11.3
eCAL v5.11.2
Changelog
Core:
- Core Services Bugfix: Service response header now contains the method name again.
The bug affected all applications that make use of the eCAL RPC / Service interface.
CMake / Rec Addon Dummy:
- Fixed build of "Rec Addon Dummy". The CMakeLists.txt now properly finds the Thread package and links against it.
eCAL 5.11.2 is patch-level equivalent to eCAL 5.10.5