|
APIs, concepts, guides, and more
|
RMP API performance, ease of use, & requirement comparison.
| 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 | ❌ |
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.
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.
Most deterministic to least:
| 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 |
Easiest to most complex: