APIs, concepts, guides, and more
API Comparison

RMP API performance, ease of use, & requirement comparison.

🔹 Overview

API Name Language Supported Platform Real-Time Capable
RapidCode C++ Windows
RapidCode C++ Linux
RapidCodeRT C++ INtime RTOS
RapidCode.NET C#, VB.NET Windows, Linux
RapidCodePython Python Windows, Linux

🔹 Performance

C++ generally delivers the best raw speed, making it ideal for performance-critical motion control. RapidCode.NET (C# or VB.NET) and RapidCode Python are thinner wrappers over the C++ library, offering simpler development at the cost of a small performance penalty.

In all platforms, RapidCode communicates over shared memory with the RMP firmware, ensuring extremely fast API calls. Even in C#, which is wrapped over the C++ API, reading values typically takes around 300 nanoseconds, only marginally slower than C++ calls, which may be a few nanoseconds faster in practice.

Synchronization

On an RTOS (e.g., Linux real-time threads, INtime), synchronization mechanisms introduce overhead but enable deterministic execution. Hence, while real-time threads may run slower, they ensure consistent timing.

Determinism

Most deterministic to least:

  1. C++ (Linux/INtime, when using real-time threads)
  2. C++ (Windows)
  3. .NET (C# / VB) and Python

🔹 Ease of Use

IDE/Development

Variation Requirements
C++ (Windows) Visual Studio or another C++ IDE, correct configuration of headers and libraries.
C++ (Linux RT) Linux environment with real-time support, proper toolchain configuration, setting up real-time threads (e.g., PREEMPT_RT kernel).
C++ (INtime) Same as above but requires the INtime SDK and multi-node INtime runtime installation.
.NET (C# / VB) Visual Studio or .NET-compatible IDE, simpler setup on Windows or Linux, fewer low-level configurations needed.
Python Python 3.x installed on Windows or Linux

Development Complexity

Easiest to most complex:

  1. .NET (C# / VB.NET) – Easiest setup, extensive tooling.
  2. Python – Also easy but less widely used; good for quick tests or scripts.
  3. C++ (Windows) – Requires more low-level setup.
  4. C++ (Linux / INtime, Real-Time) – Real-time programming adds complexity.