APIs, concepts, guides, and more
MotionController

Represents the RMP soft motion controller. This class provides an interface to general controller configuration, firmware upload/download, network, user limits and data recording. To make a MotionController object, use MotionController creation methods.. More...

Static Functions

static MotionControllerCreate (CreationParameters *creationParameters)
 Initialize and start the RMP EtherCAT controller.
 
static MotionControllerGet ()
 Get an already running RMP EtherCAT controller.
 
static MotionControllerGet (int32_t controllerIndex)
 Get an already running RMP EtherCAT controller.
 
static MotionControllerCreateFromSoftware ()
 Initialize and start the RMP EtherCAT controller.
 
static MotionControllerCreateFromSoftware (const char *const RtaPath)
 Initialize and start the RMP EtherCAT controller.
 
static MotionControllerCreateFromSoftware (const char *const RtaPath, const char *const NodeName)
 Initialize and start the RMP EtherCAT controller.
 
static MotionControllerCreate ()
 Initialize and start the RMP EtherCAT controller.
 
static MotionControllerCreateFromFile (const char *const fileName)
 Create a MotionController from a memory-dumped file.
 

Functions

AxisAxisGet (int32_t axisNumber)
 AxisGet returns a pointer to an Axis object and initializes its internals.
 
MultiAxisMultiAxisGet (int32_t motionSupervisorNumber)
 MultiAxisGet returns a pointer to a MultiAxis object and initializes its internals.
 
MultiAxisLoadExistingMultiAxis (int32_t motionSupervisorNumber)
 Get/Create a MultiAxis object from one that already exists (previously setup) on the RMP motion controller firmware.
 
NetworkNodeNetworkNodeGet (int32_t nodeNumber)
 NetworkNodeGet returns a pointer to a RapidCodeNetworkNode object using its node number and initializes its internals.
 
IOIOGet (int32_t nodeNumber)
 IOGet returns a pointer to an IO object using its node number and initializes its internals.
 
void Delete (void)
 Delete the MotionController and all its objects.
 
void Reset ()
 Reset the controller which stops and restarts the RMP firmware.
 
void Refresh ()
 Refresh / reinitialize the motion controller. Required after changing dynamic memory object counts.
 
void Shutdown ()
 Shutdown the controller.
 
void MemoryToFile (const char *const fileName)
 Saves an RMP firmware memory dump which can be compared with others.
 
int32_t SampleCounterGet ()
 Get the current value of the controller's processor's sample counter.
 
double ProcessorUsageGet ()
 Get the processor usage percent.
 
void ProcessorUsageClear ()
 Clear the processor usage percent.
 
uint32_t FirmwareTimingDeltaGet ()
 Get the most recent time (in microseconds) between samples.
 
uint32_t SerialNumberGet (void)
 Get the controller's serial number.
 
void SampleWait (uint32_t samples)
 Wait for controller firmware to execute samples.
 
RSIControllerType ControllerTypeGet ()
 Get the type of motion controller.
 
const char *const ServerNameGet ()
 Get the name of the server. (Valid if controller type is CLIENT.)
 
int32_t ServerPortGet ()
 Get the TCP port of the server. (Valid if controller type is CLIENT.)
 
RSIProcessorType ProcessorTypeGet ()
 Get the processor type.
 
void SampleRateSet (double sampleRate)
 
double SampleRateGet ()
 
int32_t AxisCountGet ()
 Get the number of axes processing.
 
void AxisCountSet (int32_t axisCount)
 Set the number of allocated and processed axes in the controller.
 
void AxisCountSet (int32_t axisCount, bool setMotorFilterSupervisor)
 
bool IsLicensed ()
 Check to see if this MotionController is licensed.
 
int32_t PackageVariantGet ()
 Get the motion controller package.
 
int32_t AxisLicenseCountGet ()
 Get the number of licensed Axis objects on this motion controller. If you need more, call RSI.
 
bool MechaWareLicenseGet ()
 Returns true if this motion controller is licensed to run MechaWare.
 
int32_t UnsupportedOptionSet (int32_t option)
 deprecated
 
int32_t MotionCountGet ()
 Get the number of Motion Supervisors available in the firmware.
 
void MotionCountSet (int32_t motionCount)
 Set the number of processed Motion Supervisors in the controller.
 
int32_t UserVersionGet ()
 Get a customer designated Version for the application.
 
void UserVersionSet (int32_t version)
 Sets a customer designed Version for the application.
 
int32_t ExternalMemorySizeGet ()
 
void AxisFrameBufferSizeSet (int32_t axisNumber, int32_t frameBufferSize)
 Set Frame buffer size for the axis.
 
int32_t AxisFrameBufferSizeGet (int32_t axisNumber)
 Get Frame buffer size for the axis.
 
const char *const FirmwareVersionGet ()
 Get the firmware version.
 
int32_t FirmwareOptionGet ()
 Get the firmware option number.
 
bool HasMechaWare ()
 Returns true if this RMP firmware supports MechaWare.
 
int32_t MemoryGet (uint64_t address)
 Read controller memory.
 
double MemoryDoubleGet (uint64_t address)
 Read a 64-bit double value from controller memory.
 
void MemoryBlockGet (uint64_t address, void *dataStart, int32_t size)
 Read controller memory.
 
void MemorySet (uint64_t address, int32_t data)
 Write a value to controller memory.
 
void MemoryDoubleSet (uint64_t address, double dataDouble)
 Write a 64-bit double value to controller memory.
 
void MemoryBlockSet (uint64_t address, const void *const dataStart, int32_t size)
 Set controller memory.
 
uint32_t FirmwareAddressGet (uint64_t hostAddress)
 Convert a host controller address to a firmware address.
 
uint64_t HostAddressGet (uint32_t firmwareAddress)
 Convert a firmware address to a host controller address.
 
int32_t BackgroundCycleCounterGet ()
 Get the current value of the controller's processor's background cycle counter.
 
uint64_t AddressFromStringGet (const char *const addressName)
 Get a controller memory address from string.
 
const char *const StringFromAddressGet (uint64_t hostAddress)
 Get a human-readable string from a memory address.
 
uint64_t AddressGet (RSIControllerAddressType type)
 Get the an address for some location on the MotionController.
 
uint64_t AddressGet (RSIControllerAddressType type, int32_t objectIndex)
 Get the an address for some location on the MotionController.
 
RSIDataType AddressDataTypeGet (RSIControllerAddressType type)
 Get the data type for an address on the MotionController.
 
RSIDataType AddressDataTypeGet (RSIControllerAddressType type, int32_t objectIndex)
 Get the data type for an address on the MotionController with a specified object index.
 
bool MotionHoldGateGet (int32_t gateNumber)
 Get the state of the hold gate.
 
void MotionHoldGateSet (int32_t gateNumber, bool hold)
 Set the Motion Hold Gate.
 
RSINetworkTechnologyType NetworkTechnologyTypeGet ()
 Get the network technology type EtherCAT.
 
RSINetworkType NetworkTypeGet ()
 Returns network type. (Currently only STRING type is supported.)
 
int32_t NetworkNodeCountGet ()
 
RSINetworkEniResult NetworkEniGenerate ()
 Generate the network ENI file, EtherCAT.xml.
 
const char *const NetworkEniGenerateOutputGet ()
 Retrieve the text output from the previous NetworkEniGenerate() call.
 
void NetworkStart ()
 Start the network with RSINetworkStartupMethodNORMAL.
 
void NetworkStart (RSINetworkStartupMethod startupMethod)
 
void NetworkStart (RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod)
 
void NetworkStart (RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod, uint32_t timeoutMilliseconds)
 
void NetworkShutdown ()
 Shutdown the network. For EtherCAT, this will kill the RMPNetwork process.
 
RSINetworkState NetworkStateGet ()
 
int32_t NetworkCounterGet ()
 Read the network counter. This increments by one for each cycle of the network.
 
int32_t NetworkInputCountGet ()
 Get the number of PDO inputs found on the network.
 
int32_t NetworkInputBitSizeGet (int32_t index)
 Get the size (in bits) of a network input.
 
const char *const NetworkInputDataTypeNameGet (int32_t index)
 
int32_t NetworkInputBitOffsetGet (int32_t index)
 
const char *const NetworkInputNameGet (int32_t index)
 Get the name of a PDO network input.
 
uint64_t NetworkInputValueGet (int32_t index)
 
uint64_t NetworkInputAddressGet (int32_t index)
 
int32_t NetworkOutputCountGet ()
 
int32_t NetworkOutputBitSizeGet (int32_t index)
 Get the size (in bits) of a PDO output.
 
const char *const NetworkOutputDataTypeNameGet (int32_t index)
 
int32_t NetworkOutputBitOffsetGet (int32_t index)
 Get the raw PDO offset for an output.
 
const char *const NetworkOutputNameGet (int32_t index)
 Get the name of a PDO output.
 
uint64_t NetworkOutputValueGet (int32_t index)
 Gets the value sent out over EtherCAT.
 
void NetworkOutputValueSet (int32_t index, uint64_t outputValue)
 Sets a PDO output directly.
 
uint64_t NetworkOutputAddressGet (int32_t index)
 Returns an Address of a Network Output.
 
uint64_t NetworkOutputAddressGet (int32_t index, RSINetworkOutputAddressType type)
 
uint64_t NetworkOutputIntendedValueGet (int32_t index)
 Gets the value set by the cyclic RMP processes.
 
void NetworkOutputOverrideSet (int32_t index, bool outputOverride)
 Set NetworkOutputValue to override RMP cyclic value.
 
bool NetworkOutputOverrideGet (int32_t index)
 Gets if the NetworkOutputValue or the RMP cyclic value is exchanged over EtherCAT.
 
void NetworkOutputOverrideValueSet (int32_t index, uint64_t outputValue)
 Sets a PDO output directly.
 
uint64_t NetworkOutputOverrideValueGet (int32_t index)
 Sets a PDO output directly.
 
uint64_t NetworkOutputSentValueGet (int32_t index)
 Gets the value sent out over EtherCAT.
 
int32_t NetworkLogMessageCountGet ()
 
RSINetworkStartError LastNetworkStartErrorGet ()
 Get the last (most recent) network start error.
 
const char *const NetworkLogMessageGet (int32_t messageIndex)
 
void NetworkTimingEnableSet (bool enable)
 Enable or disable the firmware to start timing the network packets.
 
void NetworkTimingClear ()
 Clear all the network timing values.
 
uint32_t NetworkTimingDeltaGet ()
 Get the number of microseconds since the previous network packet was sent.
 
uint32_t NetworkTimingMinGet ()
 Get the minimum microseconds recorded between network packets.
 
uint32_t NetworkTimingMaxGet ()
 Get the maximum microseconds recorded between consecutive network packets.
 
void NetworkTimingThresholdLowSet (uint32_t microseconds)
 Set a low threshold. The RMP will count the number of network packets sent below this threshold (too short between packets).
 
void NetworkTimingThresholdHighSet (uint32_t microseconds)
 Set a high threshold. The RMP will count the number of network packets sent above this threshold (too long between packets).
 
uint32_t NetworkTimingThresholdLowCountGet ()
 Get the number of network packets that were sent to quickly (below the low threshold)
 
uint32_t NetworkTimingThresholdHighCountGet ()
 Get the number of network packets that were sent to slowly (above the high threshold).
 
bool NetworkSynchronizedGet ()
 Returns true if the network is synchronized with distributed clocks.
 
void InterruptEnableSet (bool enable)
 Control interrupts for this class.
 
void InterruptWake ()
 Wake all threads waiting for a controller interrupt.
 
void SyncInterruptEnableSet (bool enable)
 Configure Sync (periodic) interrupts for the controller.
 
void SyncInterruptPeriodSet (uint32_t samples)
 Configure the period for the Sync Interrupt on the controller.
 
int32_t SyncInterruptWait ()
 Suspend the current thread until an interrupt arrives from the controller.
 
bool ServiceThreadStateGet ()
 Returns true if the service thread was started.
 
int32_t SyncInterruptHostProcessTimeGet ()
 Get the total number of microseconds availble for host processing.
 
int32_t SyncInterruptHostProcessFlagGet ()
 Get the host process flag.
 
void SyncInterruptHostProcessFlagSet (bool hostProcessFlag)
 Set the Host Process flag.
 
bool SyncInterruptHostProcessStatusBitGet ()
 See if the host was processing too int32_t on previous Sync Interrupt.
 
void SyncInterruptHostProcessStatusClear ()
 Clear the Host Process status bit.
 
void ServiceThreadEnableSet (bool enable)
 Enable or disable the service thread.
 
int32_t RecorderCountGet ()
 Get the number of Recorder available in the firmware.
 
void RecorderCountSet (int32_t recorderCount)
 Set the number of processed Recorders in the controller.
 
void RecorderPeriodSet (uint32_t samples)
 Set the number of samples between records on Recorder 0.
 
void RecorderPeriodSet (int32_t recorderNumber, uint32_t samples)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderCircularBufferSet (bool enable)
 Configure recorder as circular buffer (or not) on Recorder 0.
 
void RecorderCircularBufferSet (int32_t recorderNumber, bool enable)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderDataCountSet (int32_t count)
 Set the number of data values to be recorded on Recorder 0.
 
void RecorderDataCountSet (int32_t recorderNumber, int32_t count)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderDataAddressSet (int32_t index, uint64_t address)
 Setup the addresses to be recorded on Recorder 0.
 
void RecorderDataAddressSet (int32_t recorderNumber, int32_t index, uint64_t address)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderDataAddressesSet (int32_t recorderNumber, const uint64_t *const addresses, int32_t addressCount)
 Setup multiple addresses to record at once.
 
void RecorderConfigureToTriggerOnMotion (Axis *axis, bool triggerOnMotion)
 Configure the Recorder 0 to trigger on Axis motion.
 
void RecorderConfigureToTriggerOnMotion (int32_t recorderNumber, Axis *axis, bool triggerOnMotion)
 Configure the recorder to trigger on Axis motion.
 
void RecorderConfigureToTriggerOnMotion (MultiAxis *multiAxis, bool triggerOnMotion)
 Configure Recorder 0 to trigger on MultiAxis motion.
 
void RecorderConfigureToTriggerOnMotion (int32_t recorderNumber, MultiAxis *multiAxis, bool triggerOnMotion)
 Configure the recorder to trigger on MultiAxis motion.
 
void RecorderConfigureToTriggerOnMotion (int32_t recorderNumber, int32_t motionNumber, bool triggerOnMotion)
 Configure the recorder to trigger on motion with a specific motion number.
 
bool RecorderTriggerOnMotionGet (int32_t recorderNumber)
 Check to see if the Recorder is set to trigger on motion.
 
bool RecorderEnabledGet ()
 Determine if the recorder is recording on Recorder 0.
 
bool RecorderEnabledGet (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int32_t RecorderRecordCountGet ()
 Get the number of records that are stored and ready for reading on Recorder 0.
 
int32_t RecorderRecordCountGet (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int32_t RecorderRecordMaxCountGet ()
 Get the maximum number of records the recorder can store on Recorder 0.
 
int32_t RecorderRecordMaxCountGet (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderStart ()
 Start recording data.
 
void RecorderStart (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderStop ()
 Stop recording data on Recorder 0.
 
void RecorderStop (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const int32_t *const RecorderRecordDataGet ()
 Get one record of recorded data on Recorder 0.
 
const int32_t *const RecorderRecordDataGet (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderRecordDataRetrieve ()
 Retrieve one record of recorded data on Recorder 0.
 
int32_t RecorderRecordDataRetrieveBulk (int32_t recorderNumber, int32_t recordCount)
 Retrieve a group of records of recorded data.
 
void RecorderRecordDataRetrieve (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int32_t RecorderRecordDataValueGet (int32_t index)
 Get one value from a retrieved record on Recorder 0.
 
int32_t RecorderRecordDataValueGet (int32_t recorderNumber, int32_t index)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int32_t RecorderRecordDataValueGet (int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex)
 Get one indexed data value from collected data.
 
double RecorderRecordDataDoubleGet (int32_t index)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
double RecorderRecordDataDoubleGet (int32_t recorderNumber, int32_t index)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
double RecorderRecordDataDoubleGet (int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex)
 Get one indexed double value from collected data.
 
void RecorderBufferHighCountSet (int32_t bufferHighCount)
 Set the high count for the recording buffer on Recorder 0.
 
void RecorderBufferHighCountSet (int32_t recorderNumber, int32_t bufferHighCount)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void RecorderReset ()
 Reset the recorder on Recorder 0.
 
void RecorderReset (int32_t recorderNumber)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int32_t RecorderBufferSizeGet (int32_t recorderNumber)
 Get Frame buffer size for the Recorder.
 
void RecorderBufferSizeSet (int32_t recorderNumber, int32_t bufferSize)
 Set buffer size for the Recorder.
 
int32_t CompensatorCountGet ()
 Get the number of Compensators available in the firmware.
 
void CompensatorCountSet (int32_t compensatorCount)
 Set the number of Compensators available in the firmware.
 
int32_t CompensatorPointCountGet (int32_t compensatorNumber)
 Get the number of points for use with a Compensator.
 
void CompensatorPointCountSet (int32_t compensatorNumber, int32_t pointCount)
 Set the number of points for use with a Compensator.
 
int32_t CompensatorDimensionGet (int32_t compensatorNumber)
 Get the dimension of the compensator.
 
void CompensatorConfigSet (int32_t compensatorNumber, int32_t firstInputAxisNumber, RSIAxisMasterType firstInputAxisType, double firstInputAxisMinimum, double firstInputAxisMaximum, double firstInputAxisDelta, int32_t secondInputAxisNumber, RSIAxisMasterType secondInputAxisType, double secondInputAxisMinimum, double secondInputAxisMaximum, double secondInputAxisDelta, int32_t outputAxisNumber, RSICompensatorOutputType outputType, const double *const table)
 Configure a 2D compensator.
 
void CompensatorConfigSet (int32_t compensatorNumber, Axis *firstInputAxis, RSIAxisMasterType firstInputAxisType, double firstInputAxisMinimum, double firstInputAxisMaximum, double firstInputAxisDelta, Axis *secondInputAxis, RSIAxisMasterType secondInputAxisType, double secondInputAxisMinimum, double secondInputAxisMaximum, double secondInputAxisDelta, Axis *outputAxis, RSICompensatorOutputType outputType, const double *const table)
 Configure a 2D compensator. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void CompensatorConfigSet (int32_t compensatorNumber, int32_t inputAxisNumber, RSIAxisMasterType inputAxisType, double inputAxisMinimum, double inputAxisMaximum, double inputAxisDelta, int32_t outputAxisNumber, RSICompensatorOutputType outputType, const double *const table)
 Configure a 1D compensator.
 
void CompensatorConfigSet (int32_t compensatorNumber, Axis *inputAxis, RSIAxisMasterType inputAxisType, double inputAxisMinimum, double inputAxisMaximum, double inputAxisDelta, Axis *outputAxis, RSICompensatorOutputType outputType, const double *const table)
 Configure a 1D compensator.
 
void CompensatorTableSet (int32_t compensatorNumber, const double *const table)
 Override the table for a configured compensator.
 
void CompensatorTableGet (int32_t compensatorNumber, double *table)
 Read the table for a configured compensator.
 
double CompensatorPositionGet (int32_t compensatorNumber)
 Get the compensator position.
 
void CompensatorTableClear (int32_t compensatorNumber)
 Sets all values in the compensator table to 0.
 
void CompensatorDisable (int32_t compensatorNumber)
 Disables the compensator only if it will not cause errors.
 
void CompensatorDisable (int32_t compensatorNumber, bool force)
 Disable a compensator with the option to force the action. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void CompensatorEnable (int32_t compensatorNumber)
 Enables the compensator only if it will cause no errors.
 
int32_t UserLimitCountGet ()
 Get the number of UserLimits processing in the firmware.
 
void UserLimitCountSet (int32_t userLimitCount)
 Set the number of processed UserLimits in the MotionController.
 
void UserLimitConfigSet (int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration, bool singleShot)
 Configure a User Limit.
 
void UserLimitConfigSet (int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration)
 
RSIUserLimitTriggerType UserLimitTriggerTypeGet (int32_t number)
 Get the user limit trigger type.
 
RSIAction UserLimitActionGet (int32_t number)
 Get the user limit action.
 
int32_t UserLimitAxisNumberGet (int32_t number)
 Get the user limit axis number.
 
double UserLimitDurationGet (int32_t number)
 Get the user limit duration (seconds).
 
bool UserLimitSingleShotGet (int32_t number)
 Returns true if the user limit is configured for single-shot.
 
void UserLimitConditionSet (int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfUInt32, uint32_t userLimitMask, uint32_t limitValueUInt32)
 Set the conditions for a User Limit with a 32-bit integer trigger value.
 
void UserLimitConditionSet (int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfDouble, double limitValueDouble)
 Set the conditions for a User Limit with a 64-bit double precision trigger value.
 
RSIDataType UserLimitConditionDataTypeGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition data type.
 
RSIUserLimitLogic UserLimitConditionLogicGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition logic.
 
uint64_t UserLimitConditionAddressGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition address.
 
uint32_t UserLimitConditionMaskGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition mask.
 
int32_t UserLimitConditionLimitValueGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition value.
 
double UserLimitConditionLimitValueDoubleGet (int32_t number, int32_t conditionNumber)
 Get the user limit condition limit value (as 64-bit double).
 
void UserLimitOutputSet (int32_t number, uint32_t andMask, uint32_t orMask, uint64_t outputPtr, bool enabled)
 Configure a User Limit Output block.
 
void UserLimitOutputSet (int32_t number, int32_t valueSet, uint64_t outputPtr, bool enabled)
 User Limit will output a 32-bit value. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void UserLimitOutputSet (int32_t number, uint64_t andMask, uint64_t orMask, uint64_t outputPtr, bool enabled)
 User Limit will output a 64-bit value with an AND and OR masks. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void UserLimitOutputSet (int32_t number, double limitValueDouble, uint64_t outputPtr, bool enabled)
 
void UserLimitOutputSet (int32_t number, RSIDataType dataType, uint64_t inputPtr, uint64_t outputPtr, bool enabled)
 Configure a User Limit Output block to copy a value, then output the value.
 
bool UserLimitOutputEnableGet (int32_t number)
 Returns true if the user limit output is enabled.
 
RSIDataType UserLimitOutputDataTypeGet (int32_t number)
 Get the user limit output data type.
 
uint64_t UserLimitOutputAddressGet (int32_t number)
 Get the user limit output address. The output will write its value to this address.
 
uint64_t UserLimitOutputInputAddressGet (int32_t number)
 Get the user limit output address. The user limit will output the value stored at this address when the user limit triggers.
 
uint32_t UserLimitOutputAndMaskGet (int32_t number)
 Get the user limit output AND mask.
 
uint32_t UserLimitOutputOrMaskGet (int32_t number)
 Get the user limit output OR mask.
 
int32_t UserLimitOutputValueGet (int32_t number)
 Get the user limit output value.
 
uint64_t UserLimitOutputAndMask64Get (int32_t number)
 Get the user limit output 64-bit AND mask.
 
uint64_t UserLimitOutputOrMask64Get (int32_t number)
 Get the user limit output 64-bit OR mask.
 
double UserLimitOutputDoubleGet (int32_t number)
 Get the user limit output 64-bit double value.
 
bool UserLimitStateGet (int32_t number)
 Get the state of a User Limit.
 
bool UserLimitEnableGet (int32_t number)
 Get the enabled state of a User Limit.
 
void UserLimitEnableSet (int32_t number, bool enable)
 Enable or disable a user limit to be processed by the RMP firmware.
 
void UserLimitDisable (int32_t number)
 Disable the processing of a User Limit.
 
void UserLimitReset (int32_t number)
 Clear the latched status of a User Limit.
 
int32_t UserLimitCountMax ()
 Get the total number of User Limits available.
 
void UserLimitInterruptUserDataAddressSet (int32_t number, uint32_t userDataIndex, uint64_t address)
 Set the User Data address based on a User Limit trigger.
 
uint64_t UserLimitInterruptUserDataAddressGet (int32_t number, uint32_t userDataIndex)
 Get the user limit interrupt user data address.
 
int32_t MathBlockCountGet ()
 Get the number of MathBlocks processing in the firmware.
 
void MathBlockCountSet (int32_t mathBlockCount)
 Set the number of processed MathBlocks in the MotionController.
 
MathBlockConfig MathBlockConfigGet (int32_t mathBlockNumber)
 Get a MathBlock configuration.
 
void MathBlockConfigSet (int32_t mathBlockNumber, MathBlockConfig &config)
 Set a MathBlock configuration.
 
FirmwareValue MathBlockProcessValueGet (int32_t mathBlockNumber)
 Get a MathBlock process value.
 
RSIEventType InterruptWait (int32_t milliseconds)
 Suspend the current thread until an interrupt arrives from the controller.
 
const char *const InterruptNameGet ()
 Get the text name of an interrupt type.
 
int32_t InterruptSampleTimeGet ()
 Get the sample timer value when the last interrupt was generated.
 
int32_t InterruptSourceNumberGet ()
 Get the number (or index) of the object (Axis, Motor, etc) that generated the interrupt.
 
uint16_t InterruptMotionIdGet ()
 Get the 16-bit MotionId - only valid if RSIEventType == MOTION_DONE.
 
void InterruptMaskClear ()
 Clear the interrupt mask so no interrupts will be generated.
 
void InterruptMaskAllSet ()
 Set all the bits of the interrupt mask to get interrupts for ALL sources.
 
void InterruptMaskOnSet (RSIEventType eventType)
 Set a bit in the interrupt mask so you will get interrupts for the given RSIEventType.
 
void InterruptMaskOffSet (RSIEventType eventType)
 Clear a bit in the interrupt mask so you won't get interrupts for the given RSIEventType.
 
bool InterruptMaskOnGet (RSIEventType eventType)
 Get the status of the interrupt mask for the given RSIEventType.
 
uint64_t InterruptUserDataGet (uint32_t userDataIndex)
 Get the user data associated with the interrupt, as a 64-bit unsigned integer.
 
double InterruptUserDataDoubleGet (uint32_t userDataIndex)
 Get the user data associated with the interrupt, as a 64-bit double.
 
FirmwareValue InterruptUserDataValueGet (uint32_t userDataIndex)
 Read the user data associated with the interrupt as a FirmwareValue.
 
void InterruptUserDataAddressSet (uint32_t userDataIndex, uint64_t hostAddress)
 Set the interrupt's UserData address.
 
uint64_t InterruptUserDataAddressGet (uint32_t userDataIndex)
 Get the 64-bit host address from the interrupt's UserData.
 
const char *const VersionGet ()
 Get the RSI RapidCode version.
 
int32_t MpiVersionMajor ()
 Get the major MPI version.
 
int32_t MpiVersionMinor ()
 Get the minor MPI version.
 
int32_t MpiVersionRelease ()
 Get the release MPI version.
 
int32_t RSIVersionMajor ()
 Get the major RSI version.
 
int32_t RSIVersionMinor ()
 Get the minor RSI version.
 
int32_t RSIVersionMicro ()
 Get the micro RSI version.
 
int32_t RSIVersionPatch ()
 Get the patch RSI version.
 
int32_t NumberGet ()
 Get the zero-based index of this object.
 
int32_t ErrorLogCountGet ()
 Get the number of software errors in the error log.
 
const RsiError *const ErrorLogGet ()
 Get the next RsiError in the log.
 
void ErrorLogClear ()
 Clear the error log.
 
void ThrowExceptions (bool state)
 Configure a class to throw exceptions.
 
const char *const RsiErrorMessageGet (RSIErrorMessage msg)
 Get the RSI-specific error message text for a specific RSIErrorMessage.
 
const char *const ErrorMessageGet (RSIErrorMessage msg)
 Get the detailed text message for an RSIErrorMessage.
 
bool WarningMsgCheck (RSIErrorMessage msg)
 Check to see if an RSIErrorMessage is a warning (true) or not (false).
 
void Trace (bool state)
 Enables/Disables trace output.
 
void TraceMaskOnSet (RSITrace maskOn)
 Turn on a particular trace output mask.
 
bool TraceMaskOnGet (RSITrace maskOn)
 Check to see if a particular trace output mask is turned on.
 
void TraceMaskOffSet (RSITrace maskOff)
 Turn off a particular trace output mask.
 
void TraceMaskClear ()
 Clear the trace output mask.
 
void TraceFileSet (const char *const fileName)
 Channels Tracing messages to specified file.
 
void TraceFileClose ()
 Stops Logging to the file.
 
void TraceInjectMessage (RSITrace traceLevel, const char *const message)
 Add a message to the Trace Log.
 

Attributes

RapidCodeOSOS
 Provides access to operating system (Windows) features.
 

Static Attributes

static constexpr uint32_t NetworkStartTimeoutMillisecondsDefault = 30000
 Default time to wait when calling NetworkStart().
 
static constexpr uint32_t AxisCountMaximum = 64
 Maximum number of Axis objects supported.
 
static constexpr uint32_t MotionCountMaximum = 64
 Maximum number of Motion objects supported. (One required for each Axis and MultiAxis)
 
static constexpr uint32_t NetworkNodeCountMaximum = 64
 Maximum numober of nodes allowed on the network.
 
static constexpr uint32_t RecorderCountMaximum = 64
 Maximum number of Recorder objects supported.
 
static constexpr uint32_t CompensatorCountMaximum = 64
 Maximum number of position Compensator objects supported.
 
static constexpr uint32_t MathBlockCountMaximum = 64
 Maximum number of MathBlock objects supported.
 
static constexpr uint32_t UserBufferDataCountMaximum = 1024
 Maximum number of 64-bit values that can be stored in the UserBuffer.
 
static constexpr double SampleRateDefault = 1000.0
 Default RMP sample rate in hertz.
 
static constexpr int32_t AxisFrameBufferSizeDefault = 1024
 The default value of the AxisFrameBufferSize, also the minimum allowable value.
 

Classes

struct  CreationParameters
 CreationParameters for MotionController::Create. More...
 
struct  MathBlockConfig
 MathBlock configuration structure. More...
 

Description