Skip to content

marsh-sim/comm-library-comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Communication Library Comparison

Minimal examples to check selected libraries from "Proposed options for simulator architecture" document

Roadmap

  • MQTT
    • Industrial Communication Toolbox doesn't include any Simulink blocks, corroborated by existence of a commercial option
  • Data Distribution Service
    • Multiple features fail without full RTI Connext installation. That doesn't meet our licensing requirements:

      The RTI Connext for DDS Blockset includes a short term evaluation license

    • When just running the Simulink model it isn't detected by ddsls (unlike a Python subscriber), the model needs to be built and run with MATLAB Coder (if I understood right), found example of a similar failure
  • ZeroMQ
    • Successful, but complicated setup with compiling extensions for Simulink. No specific information is given on failure to load a module
    • Based on a blog post by a MathWorks employee
      • The method for building libzmq in the post is deprecated, now CMake has to be used
  • MAVLink
    • Available since MATLAB R2019a
    • Installation in Simulink requires only UAV Toolbox, and a Instrument Control Toolbox for UDP blocks

Installation

Optional, but recommended: create and activate Python virtual environment

pip install -r requirements.txt

MQTT

Windows installer for Mosquitto

Add installation folder to Path environment variable, default C:/Program Files/mosquitto

Install "Industrial Communication Toolbox" in MATLAB

DDS

To avoid compiling the CycloneDDS C library from source, you need to use a Python version for which there are prebuilt binaries on pip available. At the time of writing this were CPython versions 3.7 to 3.10 (inclusive).

ZeroMQ

Requires a working installation of Visual Studio to compile MATLAB extensions.

After cloning this repository run the following to get all dependencies. Do not use the git_clone_zmq and build_zmq buttons in the Simulink project, start with SetEnvVariable.

git submodule update --init

Then run the patch.py script in zeromq folder to update the Simulink example.

Warning

Currently, prebuilt binaries for ZeroMQ are included only for 64-bit Windows

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published