Skip to content

Releases: eclipse-ecal/ecal

eCAL v5.13.0

25 Apr 08:44
c4d13c9
Compare
Choose a tag to compare

Highlights

  • New eCAL Services protocol. The protocol fixes incomplete-message-issues of the previous version.
  • Qt6 compatibility: Official Windows builds will now use Qt 6 and thus now properly scale on HDPI screens.

Changelog

Core:

  • Completely reworked eCAL the eCAL Service implementation (#1072)
    • Introduced a new protocol version (v1) that fixes incomplete-message-issues of the previous version
    • The Client & Server exchange their supported protocol versions to provide downwards compatibility
    • A server can handle multiple clients with different protocol version.
    • A client can be connected to multiple server with different protocol versions.
  • Fixed receive timeout (10 ms) in CSampleReceiver::Receive replaced by function parameter (#1262)
  • Fixed a bug that caused eCAL to show network nodes even when configured in local mode (#1261)
  • Fixed deterministic-random-number bug that in theory could have caused corrupt fragmented eCAL UDP traffic (#1270)
  • Various bugfixes, code cleanup and refactoring (#1171, #1248, #1253, #1264, #1265, #1266, #1269, #1271, #1313, #1373, #1539)
  • Preparation for eCAL 6: marked diverse API functions as deprecated (#1399)(#1414)

All GUI Apps (Mon, Rec, Play, Launcher)

  • Made eCAL compatible with Qt6 (#1315)

eCAL Monitor:

  • Added eCAL and Qt runtime and compile-time versions to the "about" dialog (#1492)

Samples:

  • Added new sample: ecal_perftool (#1241)

MMA:

  • General improvements and corrections of the Linux part (#1284, #1372)

Measurement:

  • Introduced new API (currently marked as experimental, as it may change in the future) (#1307)
  • Various code cleanup and refactoring (#1235)

Language Bindings

Raw C-binding:

  • Add missing eCAL core functions (ecal_is_initialized, ecal_set_unit_name, ecal_getversion_components) (#1300)

Python binding:

  • Add missing eCAL core functions (is_initialized, set_unit_name, getversion_components) (#1300)
  • Added draft for Measurement Writer. The API may change in the future. (#1337)

Build

Submodules:

  • Updated fineftp-server to 1.4.2 (#1408)
  • Updated HDF5 to HDF5 1.10.11 (#1274)
  • Updated spdlog to 1.12.0 (#1275)
  • Updated tcp_pubsub to 1.0.5 (#1484)
  • Updated udpcap (#1551)
  • Build QWT static by default for all os and builds (#1406)

CMake:

  • Introduced project configuration and build with CMakePresets.json (#1380)

Libraries:

  • Added QNX and default OS to EcalParser (#1430)

Documentation:

  • Preparation for eCAL 6: added deprecation documentation (#1443, #1464, #1468)
  • Updated book theme to 1.1.2 (#1455)
  • Downgrade empy from 4.0 due to incompatibility to 3.3.4 (#1461)
  • Dark mode improvement for Sphinx Tabs (#1463)
  • Page footer fix (#1467)
  • Downgrade Sphinx version to <7.3 (#1543)

eCAL 5.13.0 is patch-level equivalent to eCAL 5.12.5

eCAL v5.12.5

25 Apr 07:03
16bdd70
Compare
Choose a tag to compare

Changelog

eCAL Core:

  • ecalc mutex protection corrected (#1402)
  • Changed descgate wrong mutex usage (std::shared_timed_mutex to std::mutex) (#1462)
  • Prevent possible data races by adaption of register/unregister logic (#1482)(#1527)(#1532)

eCAL Player:

  • Fix crash when playing empty measurements (#1385)

eCAL Monitor:

  • Added service name to ServiceTreeItem identifier for save service handling on same process with same methods (#1555)

eCAL Launcher GUI:

  • Exchanged labels with SVGs

Dependencies:

  • Updated udpcap to 2.0.1 (fixes lost-datagram-issues(2.0) + deadlock fix)(#1396)
  • Added protobuf 3.26 support (#1535)

Build:

eCAL 5.12.5 is patch-level equivalent to eCAL 5.13.0

eCAL v5.13.0 RC 4

19 Mar 09:42
18b289f
Compare
Choose a tag to compare
eCAL v5.13.0 RC 4 Pre-release
Pre-release
[doc] v5.13 deprecation.rst fixed (#1464) (#1468)

* deprecation.rst fixed
---------

Co-authored-by: Rex Schilasky <49162693+rex-schilasky@users.noreply.github.com>
Co-authored-by: Peter Guenschmann <73380451+Peguen@users.noreply.github.com>

eCAL v5.12.4

08 Feb 09:07
4858d4d
Compare
Choose a tag to compare

Changelog

Core:

Mon:

  • Fixed Column labels in signal plotting widget (#1326)

ecalhdf5:

  • Fixed a bug that caused send- and receive-timestamps being mixed up when using imeasurement.h (#1252)

MMA:

  • Fixed segfault of GetCpuCores. Only occured on few operating systems (#1242)

Python:

  • Fixed rem_response_callback function, which removes a callback from a service client (#1272)
  • Fixed function names of client_set_hostname (#1285)

Build:

  • CMake: Remove dirty find_package hack. (#1257)
  • CMake: Compatibility with new yaml-cpp release 0.8.0. (#1250, #1323))
  • CMake: isolate eCAL cmake find logic from existing eCAL installation (#1267)
  • Documentation: Downgraded Sphinx / documentation related packages to compatible versions in requirements.txt (#1309, #1286)

eCAL 5.12.4 is patch-level equivalent to eCAL 5.11.8

eCAL 5.11.8

07 Feb 16:08
e78e1b2
Compare
Choose a tag to compare

Changelog

Core:

  • Fixed multiple race conditions and smaller bugs (#1324, #1325, #1334)
  • Fixed random-number-generator for UDP Fragment IDs (#1270)

Mon:

  • Fixed Column labels in signal plotting widget (#1326)

ecalhdf5:

  • Fixed a bug that caused send- and receive-timestamps being mixed up when using imeasurement.h (#1252)

MMA:

  • Fixed segfault of GetCpuCores. Only occured on few operating systems (#1242)

Python:

  • Added Python 3.12 wheels for Windows (#1244)
  • Fixed rem_response_callback function, which removes a callback from a service client (#1272)
  • Fixed function names of client_set_hostname (#1285)

Build:

  • CMake: Compatibility with new yaml-cpp release 0.8.0. (#1250, #1323))
  • Documentation: Downgraded Sphinx / documentation related packages to compatible versions in requirements.txt (#1309, #1286)

eCAL 5.11.8 is patch-level equivalent to eCAL 5.12.4

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