The WMX3 API Underneath WMX R2#
Every ROS 2 service on the preceding pages is a thin wrapper over a call into
the WMX3 API — the C++ SDK that ships with the WMX Runtime. When a service
answers success: false with an error code, that code is the engine’s, and
its meaning is documented in the SDK reference rather than anywhere in WMX R2.
This page says where that reference is and how the two layers line up.
Where the reference lives#
The WMX Runtime installs both of its manuals under /opt/wmx3/Doc/Web/:
/opt/wmx3/Doc/Web/
├── API/API_UserManual.zip the WMX3 API reference
├── Application/App_UserManual.zip the WMX web tools user guide
├── certs/
└── logs/
certs/ and logs/ belong to the gateway that serves them; the content is
the two archives. Both are also reachable as the WMX API Manual and
WMX App Manual tiles on the WMX Home dashboard when the gateway is running
— see WMX Web Tools (WOS, NetConfigurator, MotionScope).
To read the API manual from disk, unpack it and open the English entry point:
mkdir -p ~/wmx3-api-manual
unzip /opt/wmx3/Doc/Web/API/API_UserManual.zip -d ~/wmx3-api-manual
xdg-open ~/wmx3-api-manual/en/api-reference/index.html
Note
The API archive is about 90 MB unpacked, and carries en, jp, and
kr trees. The application manual is far smaller. Unpack only the
language you need if space matters:
unzip ... 'en/*' -d ~/wmx3-api-manual.
What is in the API manual#
Part |
Contents |
|---|---|
|
The API reference proper — functions grouped by module. |
|
The generated class documentation for the |
|
How the engine is put together — device architecture, the console, servo-on and communication sequences, and function notes. |
|
The EtherCAT chapter: AL states, distributed clocks, hot connect, cyclic modes, the object dictionary, logging, and the ENI file. |
|
Differences between the C++ and .NET bindings. WMX R2 uses C++. |
The SDK headers themselves are in /opt/wmx3/include/ and are the fastest
way to check a signature: WMX3Api.h (device lifecycle),
CoreMotionApi.h (axes and motion), IOApi.h, EcApi.h (EtherCAT),
plus the advanced-motion, compensation, buffer, event, log, and user-memory
modules.
How WMX R2 maps onto it#
The nodes in wmx_r2_package each own one SDK module, which is why the
ROS 2 namespaces are shaped the way they are.
WMX R2 node |
ROS 2 namespace |
WMX3 API |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The same |
Tip
Two places where going to the SDK reference is usually faster than guessing:
An unfamiliar error code.
wmx_engine_nodelogs the numeric code and its string; the enumerations inen/api/html/say what provokes it.CreateDeviceLockErroron startup, for example, means something else already holds the device.Exact units and profile semantics.
accanddecare accelerations on the ROS 2 wire but become ramp times inside the time-based profile the engine uses — the kind of detail that only the SDK documentation states.
Warning
The WMX3 API is the vendor’s interface and changes on its own release
schedule. Check the version the manual was built for against the
WMX version in the gateway’s status bar before relying on a detail;
this install reports WMX 3.7.0.0.