The RMP Motion Controller APIs
#include "rsi.h" // Import our RapidCode Library.
#include "HelperFunctionsCpp.h" // Import our SampleApp helper functions.
using namespace RSI::RapidCode;
void TemplateMain(int argc, char *argv[])
const int AXIS_X = (0);
const int AXIS_Y = (1);
const int IO_NODE = (7);
Axis *axisX;
Axis *axisY;
MultiAxis *multiAxisXY;
IO *io;
// Create and initialize RsiController class
MotionController *controller = MotionController::CreateFromSoftware();
// enable one MotionSupervisor for the MultiAxis
controller->MotionCountSet(controller->AxisCountGet() + 1);
// Get Axis X and Y respectively.
axisX = controller->AxisGet(AXIS_X);
axisY = controller->AxisGet(AXIS_Y);
// Initialize a MultiAxis, using the last MotionSupervisor.
multiAxisXY = controller->MultiAxisGet(controller->MotionCountGet() - 1);
// Initialize an IO.
io = controller->IOGet(IO_NODE);
// Insert your application code here.
catch (RsiError const& err)
printf("\n%s\n", err.text);
controller->Delete(); // Delete the controller as the program exits to ensure memory is deallocated in the correct order.
system("pause"); // Allow time to read Console.
static void CheckErrors(RapidCodeObject *rsiObject)
Checks for errors in the given RapidCodeObject and throws an exception if any non-warning errors are ...
Represents a single axis of motion control. This class provides an interface for commanding motion,...
Definition rsi.h:5664
Axis * AxisGet(int32_t axisNumber)
AxisGet returns a pointer to an Axis object and initializes its internals.
void MotionCountSet(int32_t motionCount)
Set the number of processed Motion Supervisors in the controller.
void Delete(void)
Delete the MotionController and all its objects.
IO * IOGet(int32_t nodeNumber)
IOGet returns a pointer to an IO object using its node number and initializes its internals.
MultiAxis * MultiAxisGet(int32_t motionSupervisorNumber)
MultiAxisGet returns a pointer to a MultiAxis object and initializes its internals.
int32_t AxisCountGet()
Get the number of axes processing.
int32_t MotionCountGet()
Get the number of Motion Supervisors available in the firmware.
Represents the RMP soft motion controller. This class provides an interface to general controller con...
Definition rsi.h:762
void AxisAdd(Axis *axis)
Add an Axis to a MultiAxis group.
Represents multiple axes of motion control, allows you to map two or more Axis objects together for e...
Definition rsi.h:10564
Represents the error details thrown as an exception by all RapidCode classes. This class contains an ...
Definition rsi.h:105