Skip to content

Releases: eclipse-ecal/ecal

eCAL v5.12.1

27 Oct 08:44
Compare
Choose a tag to compare

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

27 Oct 08:44
Compare
Choose a tag to compare

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

08 Aug 11:54
Compare
Choose a tag to compare

ecal-logo-5-12

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 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 and sub_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 old ttype, tdesc and the new tinfo 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)
  • New ecal.ini options

    • Fixed computation of UDP Multicast Address for a topic name (#950)
      This adds the [network]/multicast_config_version to the ecal.ini. The old implementation (v1) is currently the default.
    • Added [network]/host_group_name setting in ecal.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 to ecal.ini to drop out-of-order messages.
      The default is to not drop out of order messages, which is the old behavior. (#1039)
  • 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 a byte[] (#1013)
    • Added GetTime() to Monitoring class (#1013)
    • Changed return type of GetMonitoring() and GetLogging() to byte[] (#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)

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:

  • Changed directory structure of all samples (#1099)
  • Added C++ binary Publish/Subscribe samples demonstrating new zero copy mechanism (#1169)
  • Added C# Server/Client samples (#1043)
  • Added Python sample for writing protobuf messages with low level eCALHdf5 API (#1120)

eCAL v5.11.5

24 Jul 10:43
Compare
Choose a tag to compare

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:

    • Fixed a bug in Monitor Plugins that was caused by subscriber callbacks not being removed before destruction (#1083)
    • Fixed text color of "Debug x" string in Log panel (#1147)
  • 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

24 Jul 10:43
Compare
Choose a tag to compare

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:
    • Fixed a bug in Monitor Plugins that was caused by subscriber callbacks not being removed before destruction (#1083)
    • Fixed text color of "Debug x" string in Log panel (#1147)

eCAL 5.10.8 is patch-level equivalent to eCAL 5.11.5

eCAL v5.11.4

06 Apr 10:35
Compare
Choose a tag to compare

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

06 Apr 10:36
Compare
Choose a tag to compare

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

17 Feb 08:16
Compare
Choose a tag to compare

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

17 Feb 08:15
Compare
Choose a tag to compare

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

20 Jan 10:31
Compare
Choose a tag to compare

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