MotionControllerabstract

The MotionController object represents the RMP INtime soft motion controller. More...

Attributes

RapidCodeOSOS
 

Static Functions

static MotionControllerCreateFromSoftware ()
 Initialize and start the RMP EtherCAT controller. More...
 
static MotionControllerCreateFromSoftware (const char *RtaPath)
 
static MotionControllerCreateFromSoftware (const char *RtaPath, const char *NodeName)
 
static MotionControllerCreate ()
 Initialize and start the RMP EtherCAT controller. More...
 
static MotionControllerCreateFromServer (char *server, int32_t serverPort)
 Initialize a SynqNet controller in another computer on a TCP/IP network. More...
 

Functions

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

Description

The MotionController object represents the RMP INtime soft motion controller.

This class provides an interface to general controller configuration, firmware upload/download, network, and data recording.

The MotionController object is the application software representation of the RMP. It handles motion controller firmware, network, interrupts, controller io, user limits, recorders and sequencers. In every application it is used to initialize your controller, axes, and io.

Examples
ControllerInterrupts.cpp, Gantry.cpp, HardwareLimits.cpp, HelperFunctions.cs, HelperFunctions.h, Homing.cs, Memory.cpp, MotionHoldReleasedBySoftwareAddress.cpp, MultiaxisMotion.cpp, PathMotion.cpp, PVTmotionMultiAxis.cpp, SingleAxisSyncOutputs.cpp, StreamingMotionBufferManagement.cpp, SyncInterrupt.cpp, SyncOutputWithMotion.cpp, Template.cpp, Template.cs, TouchProbe.cs, UpdateBufferPoints.cpp, UserLimitDigitalInputAction.cpp, and VelocitySetByAnalogInputValue.cs.