eCAL - enhanced Communication Abstraction Layer enables scalable, high performance interprocess communication in heterogenous networks. It is based on a publish/subscribe pattern, designed for minimal latency and high data throughput, leveraging UDP or shared memory as the transport layer for best performance. Thanks to its lightweight C/C++ API, eCAL has been integrated into Simulink as an open-source toolbox for simulation on desktop and prototyping on Speedgoat’s real-time target computers, providing a flexible and high performant multi-node communication layer.
How to get started on desktop
- Install the latest eCAL Release availabe for your OS from here.
- To leverage UDP, please set your multicast routes as shown here.
- Open eCAL Monitor.
- Start a first MATLAB instance and run the model
- Start a second MATLAB instance and run the model
Please notice that the message counter of eCAL subscriber only increases if you run a matching publisher which has the same topic name and is not part of the same process.
How to get started for real-time simulation with Simulink Real-Time™ on Speedgoat® target computers
Build and preparation steps for QNX® RTOS
- Initialize and check out Git submodules.
- Build eCAL libraries for QNX:
- Use the script
buildeCALlibs4QNX.cmdto build eCAL libraries for QNX® on Windows.
- Use the script
buildeCALlibs4QNX.shto build eCAL libraries for QNX® on Linux.
buildeCALlibs4QNXfrom the object
- Use the script
- Copy the libraries from
_install_qnx/libto the target. For this purpose, create an
eCALutilsobject and call the method
- Patch Fast-RTPS libraries with
patchFastRTPSLibsfrom the class eCALutils.
Setting up eCAL route on QNX®
setMulticast4ECAL. Routes are restored to default after every target reboot. Therefore, you must add the eCAL route after booting the target, whenever you want to use eCAL with the external UDP communication.
Check eCAL communication between Speedgoat® target and host (optional)
- Log into QNX® over SSH and run a send sample, for instance
- On the host computer, open eCAL Monitor, and you should see the Speedgoat sending the messages. If you don't see them, please review your route and firewall settings on the host. Also, you may use WireShark to inspect the network communication.
Run test model on Speedgoat®
Open and use the "Run on Target" button on the Real-Time ribbon to build, deploy and run the real-time application on the Speedgoat target. If you are using the eCAL Monitor on the host, you should be able to see the incoming messages. Otherwise, please check the network configuration as shown above.
Don’t forget to set your multicast routes and make sure your hostname resolution works on all machines!
Pablo Romero (2023). ecal-toolbox (https://github.com/mathworks/ecal-toolbox/releases/tag/v1.4.0), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.4.0
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.3.4
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.3.3
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.3.2
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.3.1
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.3
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.2
See release notes for this release on GitHub: https://github.com/mathworks/ecal-toolbox/releases/tag/v1.1