The RMP Motion Controller APIs
rsi.h
1 // RapidCode 10.3.8.0 interface
2 
3 #ifndef _RSI_H
4 #define _RSI_H
5 
6 #include <stdlib.h>
7 #include <vector>
8 #include <stdio.h>
9 #include <string.h>
10 #include <math.h>
11 #include <exception>
12 
13 #include "rsienums.h"
14 
15 #ifdef RSIDLL
16 # define RSI_API __declspec(dllexport)
17 #else
18 # define RSI_API __declspec(dllimport)
19 #endif
20 
21 // allows doxygen to preproccess and remove this for cleaner docs
22 #ifndef PURE_VIRTUAL
23 #define PURE_VIRTUAL = 0
24 #endif
25 
26 #if defined(__cplusplus)
27 extern "C"
28 {
29 #endif
30 
32 namespace RSI
33 {
34 
36 namespace RapidCode
37 {
38 
39 class MotionController;
40 class Axis;
41 class MultiAxis;
42 class IO;
43 class IOPoint;
44 class RTOS;
45 
48 
50 class RSI_API StaticInstanceMediator
51 {
52 private:
53  bool isValid;
54 public:
55  bool IsValid() { return isValid; }
56  void OnDelete() { isValid = false; }
57  void OnCreate() { isValid = true; }
58 };
59 
61 
89 class RsiError : public std::exception
90 {
91 public:
95  int32_t lineNumber;
97  bool isWarning;
99  static const uint32_t RSI_ERROR_TEXT_SIZE = 512U;
100  char text[RSI_ERROR_TEXT_SIZE];
107 
108  RsiError()
109  {
110  text[0] = '\0';
111  functionName[0] = '\0';
112  shortText[0] = '\0';
113  fileName[0] = '\0';
114  number = RSIErrorMessage::RSIMessageOK;
115  lineNumber = -1;
116  isWarning = false;
117  }
118  RsiError(const RsiError& copyFrom)
119  {
120  strncpy_s(text, sizeof(text), copyFrom.text, sizeof(copyFrom.text));
121  strncpy_s(functionName, sizeof(functionName), copyFrom.functionName, sizeof(copyFrom.functionName));
122  strncpy_s(shortText, sizeof(shortText), copyFrom.shortText, sizeof(copyFrom.shortText));
123  strncpy_s(fileName, sizeof(fileName), copyFrom.fileName, sizeof(copyFrom.fileName));
124  number = copyFrom.number;
125  lineNumber = copyFrom.lineNumber;
126  isWarning = copyFrom.isWarning;
127  }
128  ~RsiError()
129  {
130  }
131 
133  virtual const char* what() const noexcept { return text; }
134 };
135 
137 
145 class RSI_API RapidCodeObject {
146 public:
151 
152 
153 
167  virtual const char* const VersionGet() PURE_VIRTUAL;
168 
170  virtual int32_t MpiVersionMajor() PURE_VIRTUAL;
172  virtual int32_t MpiVersionMinor() PURE_VIRTUAL;
174  virtual int32_t MpiVersionRelease() PURE_VIRTUAL;
176  virtual int32_t RSIVersionMajor() PURE_VIRTUAL;
178  virtual int32_t RSIVersionMinor() PURE_VIRTUAL;
180  virtual int32_t RSIVersionMicro() PURE_VIRTUAL;
182  virtual int32_t RSIVersionPatch() PURE_VIRTUAL;
183 
187  virtual int32_t NumberGet() PURE_VIRTUAL;
189 
194 
195 
196 
197 
225  virtual int32_t ErrorLogCountGet() PURE_VIRTUAL;
226 
242  virtual const RsiError* const ErrorLogGet() PURE_VIRTUAL;
243 
259  virtual void ErrorLogClear() PURE_VIRTUAL;
260 
281  virtual void ThrowExceptions(bool state) PURE_VIRTUAL;
282 
284  virtual const char* const RsiErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
285 
287  virtual const char* const ErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
288 
290  virtual bool WarningMsgCheck(RSIErrorMessage msg) PURE_VIRTUAL;
292 
297 
298 
299 
316  virtual void Trace(bool state) PURE_VIRTUAL;
317 
335  virtual void TraceMaskOnSet(RSITrace maskOn) PURE_VIRTUAL;
336 
337 
361  virtual bool TraceMaskOnGet(RSITrace maskOn) PURE_VIRTUAL;
362 
380  virtual void TraceMaskOffSet(RSITrace maskOff) PURE_VIRTUAL;
381 
397  virtual void TraceMaskClear() PURE_VIRTUAL;
398 
409 
416  virtual void TraceFileSet(const char* const fileName) PURE_VIRTUAL;
417 
432  virtual void TraceFileClose() PURE_VIRTUAL;
433 
450  virtual void TraceInjectMessage(RSITrace traceLevel, const char* const message) PURE_VIRTUAL;
451 
453 };
454 
456 
470 class RSI_API RapidCodeOS {
471 public:
472 
477 
491  virtual void Sleep(int32_t milliseconds) PURE_VIRTUAL;
492 
512  virtual int32_t KeyGet(int32_t milliseconds) PURE_VIRTUAL;
513 
524  virtual int32_t TimerCountGet() PURE_VIRTUAL;
525 
535  virtual int32_t TimerFrequencyGet() PURE_VIRTUAL;
536 
537 
550  virtual int32_t PerformanceTimerCountGet() PURE_VIRTUAL;
551 
564  virtual int32_t PerformanceTimerFrequencyGet() PURE_VIRTUAL;
565 
567 };
568 
570 
573 class RSI_API RapidCodeInterrupt : public virtual RapidCodeObject {
574 public:
578 
580  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
581 
582 
606  virtual RSIEventType InterruptWait(int32_t milliseconds) PURE_VIRTUAL;
607 
628  virtual const char* const InterruptNameGet() PURE_VIRTUAL;
629 
652  virtual int32_t InterruptSampleTimeGet() PURE_VIRTUAL;
653 
654 
677  virtual int32_t InterruptSourceNumberGet() PURE_VIRTUAL;
678 
680  virtual uint16_t InterruptMotionIdGet() PURE_VIRTUAL;
681 
683  virtual void InterruptWake() PURE_VIRTUAL;
684 
686  virtual void InterruptMaskClear() PURE_VIRTUAL;
687 
689  virtual void InterruptMaskAllSet() PURE_VIRTUAL;
690 
692  virtual void InterruptMaskOnSet(RSIEventType eventType) PURE_VIRTUAL;
693 
695  virtual void InterruptMaskOffSet(RSIEventType eventType) PURE_VIRTUAL;
696 
698  virtual bool InterruptMaskOnGet(RSIEventType eventType) PURE_VIRTUAL;
699 
700 
715  virtual uint64_t InterruptUserDataGet(uint32_t userDataIndex) PURE_VIRTUAL;
716 
717 
731  virtual double InterruptUserDataDoubleGet(uint32_t userDataIndex) PURE_VIRTUAL;
732 };
733 
735 
743 class RSI_API MotionController : public virtual RapidCodeInterrupt {
744 protected:
746  StaticInstanceMediator* _mediator;
747 
748 public:
749 
750  // Static functions or attributes should be grouped together.
755 
757  static inline constexpr uint32_t NetworkStartTimeoutMillisecondsDefault = 30000;
758 
760  static inline constexpr uint32_t SequencerGlobalCountMaximum = 191;
761 
763 
764  // Static functions or attributes should be grouped together.
769 
770 
801 
806  static MotionController* CreateFromSoftware(const char* const RtaPath);
807 
813  static MotionController* CreateFromSoftware(const char* const RtaPath, const char* const NodeName);
814 
845 
846 
848  static MotionController* CreateFromServer(const char* const server, int32_t serverPort);
849 
850 
852 
857 
882  virtual IO* IOGet(int32_t nodeNumber) PURE_VIRTUAL;
883 
884 
909  virtual Axis* AxisGet(int32_t axisNumber) PURE_VIRTUAL;
910 
934  virtual MultiAxis* MultiAxisGet(int32_t motionSupervisorNumber) PURE_VIRTUAL;
935 
936 
955  virtual MultiAxis* LoadExistingMultiAxis(int32_t motionSupervisorNumber) PURE_VIRTUAL;
956 
957 
984  virtual void Delete(void) PURE_VIRTUAL;
986 
991 
1002  virtual void Reset() PURE_VIRTUAL;
1003 
1006  virtual void Refresh() PURE_VIRTUAL;
1007 
1008 
1014  virtual void Shutdown() PURE_VIRTUAL;
1016 
1021 
1022 
1023 
1048  virtual uint32_t SerialNumberGet(void) PURE_VIRTUAL;
1049 
1074  virtual int32_t SampleCounterGet() PURE_VIRTUAL;
1075 
1076 
1077 
1098  virtual void SampleWait(uint32_t samples) PURE_VIRTUAL;
1099 
1100 
1102  virtual RSIControllerType ControllerTypeGet() PURE_VIRTUAL;
1103 
1105  virtual const char* const ServerNameGet() PURE_VIRTUAL;
1106 
1108  virtual int32_t ServerPortGet() PURE_VIRTUAL;
1109  virtual int32_t NumberGet() PURE_VIRTUAL;
1110 
1111 
1112 
1137  virtual RSIProcessorType ProcessorTypeGet() PURE_VIRTUAL;
1138 
1155  virtual double ProcessorUsageGet() PURE_VIRTUAL;
1156 
1169  virtual void ProcessorUsageClear() PURE_VIRTUAL;
1170 
1175  virtual void SampleRateSet(double sampleRate) PURE_VIRTUAL;
1176 
1179  virtual double SampleRateGet() PURE_VIRTUAL;
1180 
1200  virtual int32_t AxisCountGet() PURE_VIRTUAL;
1201 
1223  virtual void AxisCountSet(int32_t axisCount) PURE_VIRTUAL;
1224 
1227  virtual void AxisCountSet(int32_t axisCount, bool setMotorFilterSupervisor) PURE_VIRTUAL;
1228 
1231  virtual bool IsLicensed() PURE_VIRTUAL;
1232 
1234  virtual int32_t PackageVariantGet() PURE_VIRTUAL;
1235 
1237  virtual int32_t AxisLicenseCountGet() PURE_VIRTUAL;
1238 
1240  virtual bool MechaWareLicenseGet() PURE_VIRTUAL;
1241 
1242  virtual int32_t UnsupportedOptionSet(int32_t option) PURE_VIRTUAL;
1243 
1270  virtual int32_t MotionCountGet() PURE_VIRTUAL;
1271 
1291  virtual void MotionCountSet(int32_t motionCount) PURE_VIRTUAL;
1292 
1320  virtual int32_t UserVersionGet() PURE_VIRTUAL;
1321 
1349  virtual void UserVersionSet(int32_t version) PURE_VIRTUAL;
1350 
1353  virtual int32_t ExternalMemorySizeGet() PURE_VIRTUAL;
1354 
1374  virtual void AxisFrameBufferSizeSet(int32_t axisNumber, int32_t frameBufferSize) PURE_VIRTUAL;
1375 
1392  virtual int32_t AxisFrameBufferSizeGet(int32_t axisNumber) PURE_VIRTUAL;
1394 
1399 
1400 
1401 
1422  virtual const char* const FirmwareVersionGet() PURE_VIRTUAL;
1423 
1444  virtual int32_t FirmwareOptionGet() PURE_VIRTUAL;
1445 
1447  virtual bool HasMechaWare() PURE_VIRTUAL;
1448 
1475  virtual int32_t MemoryGet(uint64_t address) PURE_VIRTUAL;
1476 
1477 
1498  virtual double MemoryDoubleGet(uint64_t address) PURE_VIRTUAL;
1499 
1528  virtual void MemoryBlockGet(uint64_t address, void* dataStart, int32_t size) PURE_VIRTUAL;
1529 
1547  virtual void MemorySet(uint64_t address, int32_t data) PURE_VIRTUAL;
1548 
1549 
1550 
1570  virtual void MemoryDoubleSet(uint64_t address, double dataDouble) PURE_VIRTUAL;
1571 
1600  virtual void MemoryBlockSet(uint64_t address, const void* const dataStart, int32_t size) PURE_VIRTUAL;
1601 
1623  virtual uint32_t FirmwareAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1624 
1625 
1626 
1627 
1653  virtual uint64_t HostAddressGet(uint32_t firmwareAddress) PURE_VIRTUAL;
1654 
1655 
1656 
1682  virtual int32_t BackgroundCycleCounterGet() PURE_VIRTUAL;
1683 
1684 
1685 
1686 
1698  virtual uint64_t AddressFromStringGet(const char* const addressName) PURE_VIRTUAL;
1699 
1700 
1701 
1712  virtual const char* const StringFromAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1713 
1731  virtual uint64_t AddressGet(RSIControllerAddressType type) PURE_VIRTUAL;
1732 
1753  virtual uint64_t AddressGet(RSIControllerAddressType type, int32_t objectIndex) PURE_VIRTUAL;
1754 
1755 
1771  virtual RSIDataType AddressDataTypeGet(RSIControllerAddressType type) PURE_VIRTUAL;
1772 
1789  virtual bool MotionHoldGateGet(int32_t gateNumber) PURE_VIRTUAL;
1790 
1791 
1792 
1811  virtual void MotionHoldGateSet(int32_t gateNumber, bool hold) PURE_VIRTUAL;
1813 
1818 
1820  virtual RSINetworkTechnologyType NetworkTechnologyTypeGet() PURE_VIRTUAL;
1821 
1823  virtual RSINetworkType NetworkTypeGet() PURE_VIRTUAL;
1824 
1827  virtual int32_t NetworkNodeCountGet() PURE_VIRTUAL;
1828 
1830  virtual void NetworkStart() PURE_VIRTUAL;
1831 
1840  virtual void NetworkStart(RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1841 
1844  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1845 
1848  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
1849 
1851  virtual void NetworkShutdown() PURE_VIRTUAL;
1852 
1855  virtual RSINetworkState NetworkStateGet() PURE_VIRTUAL;
1856 
1858  virtual int32_t NetworkCounterGet() PURE_VIRTUAL;
1859 
1861  virtual int32_t NetworkInputCountGet() PURE_VIRTUAL;
1862 
1864  virtual int32_t NetworkInputBitSizeGet(int32_t index) PURE_VIRTUAL;
1865 
1869  virtual const char* const NetworkInputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1870 
1873  virtual int32_t NetworkInputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1874 
1877  virtual const char* const NetworkInputNameGet(int32_t index) PURE_VIRTUAL;
1878 
1882  virtual uint64_t NetworkInputValueGet(int32_t index) PURE_VIRTUAL;
1883 
1884 
1885 
1889  virtual uint64_t NetworkInputAddressGet(int32_t index) PURE_VIRTUAL;
1890 
1894  virtual int32_t NetworkOutputCountGet() PURE_VIRTUAL;
1895 
1898  virtual int32_t NetworkOutputBitSizeGet(int32_t index) PURE_VIRTUAL;
1899 
1900 
1904  virtual const char* const NetworkOutputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1905 
1907  virtual int32_t NetworkOutputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1908 
1910  virtual const char* const NetworkOutputNameGet(int32_t index) PURE_VIRTUAL;
1911 
1928  virtual uint64_t NetworkOutputValueGet(int32_t index) PURE_VIRTUAL;
1929 
1947  virtual void NetworkOutputValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
1948 
1969  virtual uint64_t NetworkOutputAddressGet(int32_t index) PURE_VIRTUAL;
1970 
1973  virtual uint64_t NetworkOutputAddressGet(int32_t index, RSINetworkOutputAddressType type) PURE_VIRTUAL;
1974 
1986  virtual uint64_t NetworkOutputIntendedValueGet(int32_t index) PURE_VIRTUAL;
1987 
2000  virtual void NetworkOutputOverrideSet(int32_t index, bool outputOverride) PURE_VIRTUAL;
2001 
2013  virtual bool NetworkOutputOverrideGet(int32_t index) PURE_VIRTUAL;
2014 
2015 
2016 
2017 
2035  virtual void NetworkOutputOverrideValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
2036 
2050  virtual uint64_t NetworkOutputOverrideValueGet(int32_t index) PURE_VIRTUAL;
2051 
2067  virtual uint64_t NetworkOutputSentValueGet(int32_t index) PURE_VIRTUAL;
2068 
2072  virtual int32_t NetworkLogMessageCountGet() PURE_VIRTUAL;
2073 
2075  virtual RSINetworkStartError LastNetworkStartErrorGet() PURE_VIRTUAL;
2076 
2081  virtual const char* const NetworkLogMessageGet(int32_t messageIndex) PURE_VIRTUAL;
2082 
2084  virtual void NetworkTimingEnableSet(bool enable) PURE_VIRTUAL;
2085 
2087  virtual void NetworkTimingClear() PURE_VIRTUAL;
2088 
2090  virtual uint32_t NetworkTimingDeltaGet() PURE_VIRTUAL;
2091 
2093  virtual uint32_t NetworkTimingMinGet() PURE_VIRTUAL;
2094 
2096  virtual uint32_t NetworkTimingMaxGet() PURE_VIRTUAL;
2097 
2099  virtual void NetworkTimingThresholdLowSet(uint32_t microseconds) PURE_VIRTUAL;
2100 
2102  virtual void NetworkTimingThresholdHighSet(uint32_t microseconds) PURE_VIRTUAL;
2103 
2105  virtual uint32_t NetworkTimingThresholdLowCountGet() PURE_VIRTUAL;
2106 
2108  virtual uint32_t NetworkTimingThresholdHighCountGet() PURE_VIRTUAL;
2109 
2111  virtual bool NetworkSynchronizedGet() PURE_VIRTUAL;
2113 
2118 
2119 
2120 
2140  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
2141 
2142 
2143 
2144 
2166  virtual void InterruptWake() PURE_VIRTUAL;
2167 
2198  virtual void SyncInterruptEnableSet(bool enable) PURE_VIRTUAL;
2199 
2228  virtual void SyncInterruptPeriodSet(uint32_t samples) PURE_VIRTUAL;
2229 
2252  virtual int32_t SyncInterruptWait() PURE_VIRTUAL;
2253 
2255  virtual bool ServiceThreadStateGet() PURE_VIRTUAL;
2256 
2270  virtual int32_t SyncInterruptHostProcessTimeGet() PURE_VIRTUAL;
2271 
2272 
2273 
2275  virtual int32_t SyncInterruptHostProcessFlagGet() PURE_VIRTUAL;
2276 
2292  virtual void SyncInterruptHostProcessFlagSet(bool hostProcessFlag) PURE_VIRTUAL;
2293 
2307  virtual bool SyncInterruptHostProcessStatusBitGet() PURE_VIRTUAL;
2308 
2321  virtual void SyncInterruptHostProcessStatusClear() PURE_VIRTUAL;
2322 
2351 
2352  virtual void ServiceThreadEnableSet(bool enable) PURE_VIRTUAL;
2354 
2359 
2360 
2361 
2382  virtual int32_t RecorderCountGet() PURE_VIRTUAL;
2383 
2404  virtual void RecorderCountSet(int32_t recorderCount) PURE_VIRTUAL;
2405 
2424  virtual void RecorderPeriodSet(uint32_t samples) PURE_VIRTUAL;
2425 
2427  virtual void RecorderPeriodSet(int32_t recorderNumber, uint32_t samples) PURE_VIRTUAL;
2428 
2447  virtual void RecorderCircularBufferSet(bool enable) PURE_VIRTUAL;
2448 
2450  virtual void RecorderCircularBufferSet(int32_t recorderNumber, bool enable) PURE_VIRTUAL;
2451 
2469  virtual void RecorderDataCountSet(int32_t count) PURE_VIRTUAL;
2470 
2472  virtual void RecorderDataCountSet(int32_t recorderNumber,int32_t count) PURE_VIRTUAL;
2473 
2492  virtual void RecorderDataAddressSet(int32_t index, uint64_t address) PURE_VIRTUAL;
2493 
2495  virtual void RecorderDataAddressSet(int32_t recorderNumber,int32_t index, uint64_t address) PURE_VIRTUAL;
2496 
2497 
2503  virtual void RecorderDataAddressesSet(int32_t recorderNumber, const uint64_t* const addresses, int32_t addressCount) PURE_VIRTUAL;
2504 
2525  virtual void RecorderConfigureToTriggerOnMotion(Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2526 
2528  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2529 
2530 
2532  virtual void RecorderConfigureToTriggerOnMotion(MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2533 
2535  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2536 
2554  virtual bool RecorderEnabledGet() PURE_VIRTUAL;
2555 
2557  virtual bool RecorderEnabledGet(int32_t recorderNumber ) PURE_VIRTUAL;
2558 
2577  virtual int32_t RecorderRecordCountGet() PURE_VIRTUAL;
2578 
2580  virtual int32_t RecorderRecordCountGet(int32_t recorderNumber ) PURE_VIRTUAL;
2581 
2597  virtual int32_t RecorderRecordMaxCountGet() PURE_VIRTUAL;
2598 
2600  virtual int32_t RecorderRecordMaxCountGet(int32_t recorderNumber) PURE_VIRTUAL;
2601 
2618  virtual void RecorderStart() PURE_VIRTUAL;
2619 
2621  virtual void RecorderStart(int32_t recorderNumber) PURE_VIRTUAL;
2622 
2641  virtual void RecorderStop() PURE_VIRTUAL;
2642 
2644  virtual void RecorderStop(int32_t recorderNumber) PURE_VIRTUAL;
2645 
2646 
2647 
2665  virtual const int32_t* const RecorderRecordDataGet() PURE_VIRTUAL;
2666 
2668  virtual const int32_t* const RecorderRecordDataGet(int32_t recorderNumber) PURE_VIRTUAL;
2669 
2686  virtual void RecorderRecordDataRetrieve() PURE_VIRTUAL;
2687 
2709  virtual int32_t RecorderRecordDataRetrieveBulk(int32_t recorderNumber, int32_t recordCount) PURE_VIRTUAL;
2710 
2712  virtual void RecorderRecordDataRetrieve(int32_t recorderNumber) PURE_VIRTUAL;
2713 
2732  virtual int32_t RecorderRecordDataValueGet(int32_t index) PURE_VIRTUAL;
2733 
2735  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2736 
2757  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2758 
2760  virtual double RecorderRecordDataDoubleGet(int32_t index) PURE_VIRTUAL;
2761 
2763  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2764 
2785  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2786 
2806  virtual void RecorderBufferHighCountSet(int32_t bufferHighCount) PURE_VIRTUAL;
2807 
2809  virtual void RecorderBufferHighCountSet(int32_t recorderNumber, int32_t bufferHighCount) PURE_VIRTUAL;
2810 
2827  virtual void RecorderReset() PURE_VIRTUAL;
2828 
2830  virtual void RecorderReset(int32_t recorderNumber) PURE_VIRTUAL;
2831 
2845  virtual int32_t RecorderBufferSizeGet(int32_t recorderNumber) PURE_VIRTUAL;
2846 
2866  virtual void RecorderBufferSizeSet(int32_t recorderNumber, int32_t bufferSize) PURE_VIRTUAL;
2868 
2873 
2874 
2875 
2876 
2903  virtual int32_t CompensatorCountGet() PURE_VIRTUAL;
2904 
2926  virtual void CompensatorCountSet(int32_t compensatorCount) PURE_VIRTUAL;
2927 
2940  virtual int32_t CompensatorPointCountGet(int32_t compensatorNumber) PURE_VIRTUAL;
2941 
2964  virtual void CompensatorPointCountSet(int32_t compensatorNumber, int32_t pointCount) PURE_VIRTUAL;
2965 
2981  virtual int32_t CompensatorDimensionGet(int32_t compensatorNumber) PURE_VIRTUAL;
2982 
3007  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, const double* const table) PURE_VIRTUAL;
3008 
3009 
3010 
3040 
3041  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, const double* const table) PURE_VIRTUAL;
3042 
3043 
3064  virtual 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) PURE_VIRTUAL;
3065 
3066 
3067 
3088  virtual void CompensatorConfigSet(int32_t compensatorNumber, Axis* inputAxis, RSIAxisMasterType inputAxisType, double inputAxisMinimum, double inputAxisMaximum, double inputAxisDelta, Axis* outputAxis, RSICompensatorOutputType outputType, const double* const table) PURE_VIRTUAL;
3089 
3103  virtual void CompensatorTableSet(int32_t compensatorNumber, const double* const table) PURE_VIRTUAL;
3104 
3118  virtual void CompensatorTableGet(int32_t compensatorNumber, double* table) PURE_VIRTUAL;
3119 
3140  virtual double CompensatorPositionGet(int32_t compensatorNumber) PURE_VIRTUAL;
3141 
3142 
3143 
3144 
3145 
3146 
3160 
3161  virtual void CompensatorTableClear(int32_t compensatorNumber) PURE_VIRTUAL;
3162 
3174  virtual void CompensatorDisable(int32_t compensatorNumber) PURE_VIRTUAL;
3175 
3178  virtual void CompensatorDisable(int32_t compensatorNumber, bool force) PURE_VIRTUAL;
3179 
3188  virtual void CompensatorEnable(int32_t compensatorNumber) PURE_VIRTUAL;
3189 
3191 
3196 
3197 
3198 
3220  virtual int32_t UserLimitCountGet() PURE_VIRTUAL;
3221 
3243  virtual void UserLimitCountSet(int32_t userLimitCount) PURE_VIRTUAL;
3244 
3266  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration, bool singleShot) PURE_VIRTUAL;
3267 
3270  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration) PURE_VIRTUAL;
3271 
3273  virtual RSIUserLimitTriggerType UserLimitTriggerTypeGet(int32_t number) PURE_VIRTUAL;
3274 
3276  virtual RSIAction UserLimitActionGet(int32_t number) PURE_VIRTUAL;
3277 
3279  virtual int32_t UserLimitAxisNumberGet(int32_t number) PURE_VIRTUAL;
3280 
3282  virtual double UserLimitDurationGet(int32_t number) PURE_VIRTUAL;
3283 
3285  virtual bool UserLimitSingleShotGet(int32_t number) PURE_VIRTUAL;
3286 
3313  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfUInt32, uint32_t userLimitMask, uint32_t limitValueUInt32) PURE_VIRTUAL;
3314 
3338  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfDouble, double limitValueDouble) PURE_VIRTUAL;
3339 
3341  virtual RSIDataType UserLimitConditionDataTypeGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3342 
3344  virtual RSIUserLimitLogic UserLimitConditionLogicGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3345 
3347  virtual uint64_t UserLimitConditionAddressGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3348 
3350  virtual uint32_t UserLimitConditionMaskGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3351 
3353  virtual int32_t UserLimitConditionLimitValueGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3354 
3356  virtual double UserLimitConditionLimitValueDoubleGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3357 
3386  virtual void UserLimitOutputSet(int32_t number, uint32_t andMask, uint32_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3387 
3390  virtual void UserLimitOutputSet(int32_t number, int32_t valueSet, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3391 
3394  virtual void UserLimitOutputSet(int32_t number, uint64_t andMask, uint64_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3395 
3398  virtual void UserLimitOutputSet(int32_t number, double limitValueDouble, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3399 
3417  virtual void UserLimitOutputSet(int32_t number, RSIDataType dataType, uint64_t inputPtr, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3418 
3419 
3420 
3422  virtual bool UserLimitOutputEnableGet(int32_t number) PURE_VIRTUAL;
3423 
3425  virtual RSIDataType UserLimitOutputDataTypeGet(int32_t number) PURE_VIRTUAL;
3426 
3428  virtual uint64_t UserLimitOutputAddressGet(int32_t number) PURE_VIRTUAL;
3429 
3431  virtual uint64_t UserLimitOutputInputAddressGet(int32_t number) PURE_VIRTUAL;
3432 
3434  virtual uint32_t UserLimitOutputAndMaskGet(int32_t number) PURE_VIRTUAL;
3435 
3437  virtual uint32_t UserLimitOutputOrMaskGet(int32_t number) PURE_VIRTUAL;
3438 
3440  virtual int32_t UserLimitOutputValueGet(int32_t number) PURE_VIRTUAL;
3441 
3443  virtual uint64_t UserLimitOutputAndMask64Get(int32_t number) PURE_VIRTUAL;
3444 
3446  virtual uint64_t UserLimitOutputOrMask64Get(int32_t number) PURE_VIRTUAL;
3447 
3448 
3450  virtual double UserLimitOutputDoubleGet(int32_t number) PURE_VIRTUAL;
3451 
3474  virtual bool UserLimitStateGet(int32_t number) PURE_VIRTUAL;
3475 
3498  virtual bool UserLimitEnableGet(int32_t number) PURE_VIRTUAL;
3499 
3501  virtual void UserLimitEnableSet(int32_t number, bool enable) PURE_VIRTUAL;
3502 
3519  virtual void UserLimitDisable(int32_t number) PURE_VIRTUAL;
3520 
3534  virtual void UserLimitReset(int32_t number) PURE_VIRTUAL;
3535 
3546 
3547  virtual int32_t UserLimitCountMax() PURE_VIRTUAL;
3548 
3568  virtual void UserLimitInterruptUserDataAddressSet(int32_t number, uint32_t userDataIndex, uint64_t address) PURE_VIRTUAL;
3569 
3571  virtual uint64_t UserLimitInterruptUserDataAddressGet(int32_t number, uint32_t userDataIndex) PURE_VIRTUAL;
3573 
3578 
3581 
3583 
3585  // Internal
3586  virtual RSIIMotionControllerInitializationState InitializationStateGet() PURE_VIRTUAL;
3587 
3592  static MotionController* CreateFromFile(const char* const fileName);
3593 
3596  static MotionController* CreateTrace();
3597 
3607  virtual void MemoryToFile(const char* const fileName) PURE_VIRTUAL;
3611 };
3612 
3614 
3617 class RSI_API RapidCodeNetworkNode : public virtual RapidCodeObject {
3618 public:
3619 
3624 
3626  virtual bool Exists() PURE_VIRTUAL;
3627 
3629  virtual RSINodeType TypeGet() PURE_VIRTUAL;
3630 
3632  virtual bool IsEtherCAT() PURE_VIRTUAL;
3633 
3635  virtual bool IsSynqNet() PURE_VIRTUAL;
3636 
3638 
3643 
3645  virtual bool HasIO() PURE_VIRTUAL;
3646 
3648  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
3649 
3651  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
3652 
3654  virtual void DigitalOutSet(int32_t digitalOutNumber, bool state) PURE_VIRTUAL;
3655 
3657  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
3658 
3660  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
3661 
3663  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
3664 
3666 
3670 
3672  virtual int32_t DigitalInCountGet() PURE_VIRTUAL;
3673 
3675  virtual int32_t DigitalOutCountGet() PURE_VIRTUAL;
3676 
3678  virtual int32_t AnalogInCountGet() PURE_VIRTUAL;
3679 
3681  virtual int32_t AnalogOutCountGet() PURE_VIRTUAL;
3682 
3683 
3685  virtual int32_t SegmentCountGet() PURE_VIRTUAL;
3686 
3688  virtual int32_t SegmentDigitalInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3689 
3691  virtual int32_t SegmentDigitalOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3692 
3694  virtual int32_t SegmentAnalogInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3695 
3697  virtual int32_t SegmentAnalogOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3698 
3700  virtual int32_t SegmentIDGet(int32_t segmentNumber) PURE_VIRTUAL;
3701 
3717  virtual uint64_t DigitalInAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3718 
3734  virtual int32_t DigitalInMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3735 
3751  virtual uint64_t DigitalOutAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3752 
3768  virtual int32_t DigitalOutMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3769 
3785  virtual uint64_t AnalogInAddressGet(int32_t channel) PURE_VIRTUAL;
3786 
3802  virtual int32_t AnalogInMaskGet(int32_t channel) PURE_VIRTUAL;
3803 
3819  virtual uint64_t AnalogOutAddressGet(int32_t channel) PURE_VIRTUAL;
3820 
3836  virtual int32_t AnalogOutMaskGet(int32_t channel) PURE_VIRTUAL;
3837 
3850  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3851 
3858  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3859 
3873 // RapidCodeEtherCATNode
3874  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3875 
3882  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3883 
3900  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue) PURE_VIRTUAL;
3901 
3902 
3910  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3911 
3925  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue) PURE_VIRTUAL;
3926 
3934  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3935 
3941  virtual char* AKDASCIICommand(const char* const command) PURE_VIRTUAL;
3942 
3944  virtual void ClearFaults(int32_t axisNumber) PURE_VIRTUAL;
3945 
3947  virtual uint32_t VendorIdGet() PURE_VIRTUAL;
3948 
3962  virtual const char* const NameGet() PURE_VIRTUAL;
3963 
3977  virtual const char* const ProductNameGet() PURE_VIRTUAL;
3978 
3992  virtual const char* const VendorNameGet() PURE_VIRTUAL;
3993 
3995  virtual uint32_t ProductCodeGet() PURE_VIRTUAL;
3996 
3998  virtual uint32_t RevisionGet() PURE_VIRTUAL;
3999 
4001  virtual uint32_t StationAliasGet() PURE_VIRTUAL;
4002 
4004  virtual const char* const SerialNumberGet() PURE_VIRTUAL;
4005 
4006  // Get the number of Axis objects associated with this NetworkNode.
4007  virtual uint32_t AxisCountGet() PURE_VIRTUAL;
4008 
4010  virtual uint16_t StatusWordGet(int32_t axisIndex) PURE_VIRTUAL;
4011 };
4012 
4014 
4018 class RSI_API IO : public virtual RapidCodeObject {
4019 public:
4020 
4021  friend class MotionController;
4022 
4027 
4029  RapidCodeNetworkNode* NetworkNode;
4032 
4034 
4039 
4040 
4041 
4077  virtual bool IOExists() PURE_VIRTUAL;
4078 
4096  virtual int32_t NumberGet() PURE_VIRTUAL;
4098 
4103 
4104 
4105 
4137  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
4138 
4173  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
4174 
4207  virtual void DigitalOutSet(int32_t digitalOutNumber, bool outValue) PURE_VIRTUAL;
4208 
4233  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
4234 
4268  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
4269 
4303  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
4305 
4307  virtual const char* const UserLabelGet() PURE_VIRTUAL;
4308  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
4309 };
4310 
4312 
4315 class RSI_API RapidCodeMotion : public virtual RapidCodeInterrupt{
4316 public:
4317 
4323 
4326 
4328 
4329 
4333 
4352  virtual int32_t NumberGet() PURE_VIRTUAL;
4356 
4383  virtual void TriggeredModify() PURE_VIRTUAL;
4384 
4412  virtual void Stop() PURE_VIRTUAL;
4413 
4439  virtual void Resume() PURE_VIRTUAL;
4440 
4465  virtual void EStop() PURE_VIRTUAL;
4466 
4488  virtual void EStopAbort() PURE_VIRTUAL;
4489 
4508  virtual void EStopModify() PURE_VIRTUAL;
4509 
4512  virtual void EStopModifyAbort() PURE_VIRTUAL;
4513 
4536  virtual void Abort() PURE_VIRTUAL;
4537 
4566  virtual void ClearFaults() PURE_VIRTUAL;
4567 
4591  virtual void AmpEnableSet(bool enable) PURE_VIRTUAL;
4592 
4620  virtual int32_t AmpEnableSet(bool enable, int32_t ampActiveTimeoutMilliseconds) PURE_VIRTUAL;
4621 
4644 
4645  virtual void Map() PURE_VIRTUAL;
4646 
4667  virtual void Unmap() PURE_VIRTUAL;
4668 
4674  virtual bool IsMapped() PURE_VIRTUAL;
4675 
4694  virtual void FeedRateSet(double rate) PURE_VIRTUAL;
4695 
4716  virtual double FeedRateGet() PURE_VIRTUAL;
4717 
4721 
4722 
4723 
4724 
4746  virtual RSIState StateGet() PURE_VIRTUAL;
4747 
4761 
4763 
4784  virtual RSISource SourceGet() PURE_VIRTUAL;
4785 
4817  virtual const char* const SourceNameGet(RSISource source) PURE_VIRTUAL;
4818 
4843  virtual int32_t MotionDoneWait() PURE_VIRTUAL;
4844 
4873  virtual int32_t MotionDoneWait(int32_t waitTimeoutMilliseconds) PURE_VIRTUAL;
4874 
4897  virtual bool MotionDoneGet() PURE_VIRTUAL;
4898 
4923 
4924  virtual bool StatusBitGet(RSIEventType bitMask) PURE_VIRTUAL;
4925 
4929 
4930 
4931 
4961  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
4962 
4963 
4964 
4979  virtual void InterruptWake() PURE_VIRTUAL;
4980 
4984 
4985 
4986 
5004  virtual double StopTimeGet() PURE_VIRTUAL;
5005 
5023  virtual void StopTimeSet(double seconds) PURE_VIRTUAL;
5024 
5042  virtual double EStopTimeGet() PURE_VIRTUAL;
5043 
5061  virtual void EStopTimeSet(double seconds) PURE_VIRTUAL;
5062 
5081  virtual double MotionDelayGet() PURE_VIRTUAL;
5082 
5105  virtual void MotionDelaySet(double seconds) PURE_VIRTUAL;
5106 
5129  virtual uint16_t MotionIdGet() PURE_VIRTUAL;
5130 
5150  virtual void MotionIdSet(uint16_t id) PURE_VIRTUAL;
5151 
5153  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
5154 
5156  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
5157 
5173  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
5174 
5183  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
5184 
5206  virtual RSIMotionHoldType MotionHoldTypeGet() PURE_VIRTUAL;
5207 
5242  virtual void MotionHoldTypeSet(RSIMotionHoldType type) PURE_VIRTUAL;
5243 
5257  virtual int32_t MotionHoldGateNumberGet() PURE_VIRTUAL;
5258 
5279 
5280  virtual void MotionHoldGateNumberSet(int32_t gateNumber) PURE_VIRTUAL;
5281 
5300  virtual double MotionHoldTimeoutGet() PURE_VIRTUAL;
5301 
5322  virtual void MotionHoldTimeoutSet(double seconds) PURE_VIRTUAL;
5323 
5349  virtual bool MotionHoldGateGet() PURE_VIRTUAL;
5350 
5375  virtual void MotionHoldGateSet(bool hold) PURE_VIRTUAL;
5376 
5395  virtual int32_t MotionHoldAxisNumberGet() PURE_VIRTUAL;
5396 
5415  virtual void MotionHoldAxisNumberSet(int32_t number) PURE_VIRTUAL;
5416 
5435 
5436  virtual double MotionHoldAxisPositionGet() PURE_VIRTUAL;
5437 
5456  virtual void MotionHoldAxisPositionSet(double position) PURE_VIRTUAL;
5457 
5459  virtual RSIUserLimitLogic MotionHoldAxisLogicGet() PURE_VIRTUAL;
5460 
5462  virtual void MotionHoldAxisLogicSet(RSIUserLimitLogic logic) PURE_VIRTUAL;
5463 
5482  virtual uint64_t MotionHoldUserAddressGet() PURE_VIRTUAL;
5483 
5502  virtual void MotionHoldUserAddressSet(uint64_t address) PURE_VIRTUAL;
5503 
5521  virtual int32_t MotionHoldUserMaskGet() PURE_VIRTUAL;
5522 
5540  virtual void MotionHoldUserMaskSet(int32_t holdMask) PURE_VIRTUAL;
5541 
5559  virtual int32_t MotionHoldUserPatternGet() PURE_VIRTUAL;
5560 
5578  virtual void MotionHoldUserPatternSet(int32_t pattern) PURE_VIRTUAL;
5579 
5581  virtual void MotionAttributeMaskDefaultSet() PURE_VIRTUAL;
5582 
5609 
5610  virtual bool MotionAttributeMaskOnGet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5611 
5632  virtual void MotionAttributeMaskOnSet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5633 
5652 
5653  virtual void MotionAttributeMaskOffSet(RSIMotionAttrMask maskOff) PURE_VIRTUAL;
5654 
5658 
5659 
5660 
5693  virtual void MovePT(RSIMotionType type, const double* const position, const double* const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final) PURE_VIRTUAL;
5694 
5728  virtual void MovePVT(const double* const position, const double* const velocity, const double* const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final) PURE_VIRTUAL;
5729 
5753  virtual void MovePVAJT(const double* const position, const double* const velocity, const double* const acceleration, const double* const jerk, const double* const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final) PURE_VIRTUAL;
5754 
5759  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address) PURE_VIRTUAL;
5760 
5784  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address, int32_t ptPointIndex) PURE_VIRTUAL;
5785 
5789  // @see StreamingOutputAdd
5790  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on) PURE_VIRTUAL;
5791 
5812  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on, int32_t ptPointIndex) PURE_VIRTUAL;
5813 
5830  virtual void StreamingOutputsClear() PURE_VIRTUAL;
5831 
5852  virtual void StreamingOutputsEnableSet(bool enable) PURE_VIRTUAL;
5853 };
5854 
5863 class RSI_API Axis : public virtual RapidCodeMotion{
5864 public:
5865 
5866  friend class MotionController;
5867  friend class MultiAxis;
5868 
5873 
5875  RapidCodeNetworkNode* NetworkNode;
5876 
5878 
5883 
5922  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel) PURE_VIRTUAL;
5923 
5946  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel) PURE_VIRTUAL;
5947 
5971  virtual void MoveTrapezoidal(double position) PURE_VIRTUAL; // use defaults Overload
5972  //virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel, bool checkLimits) PURE_VIRTUAL;
5973 
6013  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6014 
6019  virtual void MoveSCurve(double position) PURE_VIRTUAL;
6020 
6030  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6031 
6035  virtual void MoveVelocity(double velocity) PURE_VIRTUAL;
6036 
6072  virtual void MoveVelocity(double velocity, double accel) PURE_VIRTUAL;
6073 
6111  virtual void MoveVelocitySCurve(double velocity, double accel, double jerkPct) PURE_VIRTUAL;
6112 
6152  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6153 
6157  virtual void MoveRelative(double releativePosition) PURE_VIRTUAL;
6158 
6162  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6164 
6169 
6197  virtual void PositionSet(double position) PURE_VIRTUAL;
6198 
6222  virtual double ActualPositionGet() PURE_VIRTUAL;
6223 
6248  virtual void ActualPositionSet(double position) PURE_VIRTUAL;
6249 
6269  virtual double CompensationPositionGet() PURE_VIRTUAL;
6270 
6286  virtual void CompensationPositionSet(double position) PURE_VIRTUAL;
6287 
6302  virtual double TargetPositionGet() PURE_VIRTUAL;
6303 
6329 
6330  virtual double CommandPositionGet() PURE_VIRTUAL;
6331 
6368  virtual void CommandPositionSet(double position) PURE_VIRTUAL;
6369 
6396  virtual void CommandPositionDirectSet(double position) PURE_VIRTUAL;
6397 
6419  virtual double OriginPositionGet() PURE_VIRTUAL;
6420 
6446  virtual void OriginPositionSet(double position) PURE_VIRTUAL;
6447 
6471  virtual double PositionErrorGet() PURE_VIRTUAL;
6472 
6497  virtual double CommandVelocityGet() PURE_VIRTUAL;
6498 
6524  virtual double ActualVelocityGet() PURE_VIRTUAL;
6525 
6549  virtual double CommandAccelGet() PURE_VIRTUAL;
6550 
6552  virtual double CommandJerkGet() PURE_VIRTUAL;
6553 
6577  virtual double EncoderPositionGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
6578 
6603  virtual double UserUnitsGet() PURE_VIRTUAL;
6604 
6630  virtual void UserUnitsSet(double countsPerUserUnit) PURE_VIRTUAL;
6631 
6633  virtual double UserUnitsToCounts(double userUnits) PURE_VIRTUAL;
6634 
6636  virtual double CountsToUserUnits(double counts) PURE_VIRTUAL;
6637 
6659  virtual int32_t FramesToExecuteGet() PURE_VIRTUAL;
6661 
6666 
6689 
6690  virtual void Home() PURE_VIRTUAL; // this one moves to zero by default
6691 
6695  virtual void Home(bool moveToZero) PURE_VIRTUAL;
6696 
6717 
6718  virtual RSIHomeMethod HomeMethodGet() PURE_VIRTUAL;
6719 
6740 
6741  virtual void HomeMethodSet(RSIHomeMethod method) PURE_VIRTUAL;
6742 
6765 
6766  virtual double HomeOffsetGet() PURE_VIRTUAL;
6767 
6788 
6789  virtual void HomeOffsetSet(double offset) PURE_VIRTUAL;
6790 
6811 
6812  virtual double HomeVelocityGet() PURE_VIRTUAL;
6813 
6816  virtual double HomeVelocityGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6817 
6841 
6842  virtual void HomeVelocitySet(double velocity) PURE_VIRTUAL;
6843 
6846  virtual void HomeVelocitySet(RSIHomeStage homeStage, double velocity) PURE_VIRTUAL;
6847 
6866  virtual double HomeSlowVelocityGet() PURE_VIRTUAL;
6867 
6885  virtual void HomeSlowVelocitySet(double velocity) PURE_VIRTUAL;
6886 
6907 
6908  virtual double HomeAccelerationGet() PURE_VIRTUAL;
6909 
6911  virtual double HomeAccelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6912 
6935 
6936  virtual void HomeAccelerationSet(double accel) PURE_VIRTUAL;
6937 
6939  virtual void HomeAccelerationSet(RSIHomeStage homeStage, double accel) PURE_VIRTUAL;
6940 
6960 
6961  virtual double HomeDecelerationGet() PURE_VIRTUAL;
6962 
6964  virtual double HomeDecelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6965 
6987 
6988  virtual void HomeDecelerationSet(double decel) PURE_VIRTUAL;
6989 
6991  virtual void HomeDecelerationSet(RSIHomeStage homeStage, double decel) PURE_VIRTUAL;
6992 
7013 
7014  virtual double HomeJerkPercentGet() PURE_VIRTUAL;
7015 
7017  virtual double HomeJerkPercentGet(RSIHomeStage homeStage) PURE_VIRTUAL;
7018 
7041 
7042  virtual void HomeJerkPercentSet(double percent) PURE_VIRTUAL;
7043 
7046  virtual void HomeJerkPercentSet(RSIHomeStage homeStage, double percent) PURE_VIRTUAL;
7047 
7069  virtual void HomeCancelSet(bool cancel) PURE_VIRTUAL;
7070 
7091  virtual bool HomeStateGet() PURE_VIRTUAL;
7092 
7106  virtual void HomeStateSet(bool homed) PURE_VIRTUAL;
7107 
7112  virtual void HomeLimitCustomConfigSet(uint64_t address, int32_t bitIndex) PURE_VIRTUAL;
7113 
7115  virtual void HomeLimitCustomConfigReset() PURE_VIRTUAL;
7116 
7117  virtual uint64_t HomeLimitCustomConfigAddressGet() PURE_VIRTUAL;
7118 
7121  virtual int32_t HomeLimitCustomConfigBitIndexGet() PURE_VIRTUAL;
7122 
7146 
7147  virtual void HomeTravelDistanceSet(RSIHomeStage stage, double distanceToTravel) PURE_VIRTUAL;
7148 
7170 
7171  virtual RSIHomeStage HomeStageGet() PURE_VIRTUAL;
7172 
7188  virtual void HomeBehaviorSet(RSIAction behavior) PURE_VIRTUAL;
7189 
7203  virtual RSIAction HomeBehaviorGet() PURE_VIRTUAL;
7205 
7211 
7213  virtual bool FaultMaskBitGet(RSIMotorFaultMask bitMask) PURE_VIRTUAL;
7214 
7216  virtual uint16_t StatusWordGet() PURE_VIRTUAL;
7218 
7223  // reads active configuration to report state
7224 
7250 
7251  virtual bool NegativeLimitGet() PURE_VIRTUAL;
7252 
7278  virtual bool PositiveLimitGet() PURE_VIRTUAL;
7279 
7310  virtual bool HomeLimitGet() PURE_VIRTUAL;
7311 
7341  virtual bool HomeSwitchGet() PURE_VIRTUAL;
7342 
7365  virtual bool AmpFaultGet() PURE_VIRTUAL;
7366 
7392  virtual bool AmpEnableGet() PURE_VIRTUAL;
7393 
7420  virtual bool DedicatedInExists(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7421 
7448  virtual bool DedicatedOutExists(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7449 
7474  virtual bool DedicatedInGet(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7475 
7500  virtual bool DedicatedOutGet(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7502 
7507 
7530  virtual bool DigitalInGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7531 
7554  virtual bool DigitalOutGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7555 
7578 
7579  virtual void DigitalOutSet(RSIMotorGeneralIo motorGeneralIoNumber, bool outValue) PURE_VIRTUAL;
7580 
7601  virtual bool DigitalIoExists(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7602 
7623  virtual const char* const DigitalIoNameGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7624 
7649  virtual RSIMotorIoTypeMask DigitalIoValidTypesMaskGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7650 
7671  virtual void DigitalIoTypeSet(RSIMotorGeneralIo motorGeneralIoNumber, RSIMotorIoType type) PURE_VIRTUAL;
7672 
7691  virtual double AnalogInGet(int32_t channel) PURE_VIRTUAL;
7693 
7698 
7715  virtual double EStopDecelerationGet() PURE_VIRTUAL;
7716 
7734  virtual void EStopDecelerationSet(double decel) PURE_VIRTUAL;
7735 
7749  virtual double EStopJerkPercentGet() PURE_VIRTUAL;
7750 
7771  virtual void EStopJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7772 
7785  virtual double TriggeredModifyDecelerationGet() PURE_VIRTUAL;
7786 
7807  virtual void TriggeredModifyDecelerationSet(double decel) PURE_VIRTUAL;
7808 
7822  virtual double TriggeredModifyJerkPercentGet() PURE_VIRTUAL;
7823 
7844  virtual void TriggeredModifyJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7845 
7864  virtual int32_t FrameBufferSizeGet() PURE_VIRTUAL;
7865 
7882  virtual void FrameBufferSizeSet(int32_t frameSize) PURE_VIRTUAL;
7883 
7905  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
7906 
7929  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
7931 
7936  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
7937 
7938  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
7939 
7941  virtual double DefaultVelocityGet() PURE_VIRTUAL;
7942 
7944  virtual void DefaultVelocitySet(double velocity) PURE_VIRTUAL;
7945 
7947  virtual double DefaultAccelerationGet() PURE_VIRTUAL;
7948 
7950  virtual void DefaultAccelerationSet(double acceleration) PURE_VIRTUAL;
7951 
7953  virtual double DefaultDecelerationGet() PURE_VIRTUAL;
7954 
7956  virtual void DefaultDecelerationSet(double deceleration) PURE_VIRTUAL;
7957 
7959  virtual double DefaultJerkPercentGet() PURE_VIRTUAL;
7960 
7962  virtual void DefaultJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
7963 
7965  virtual double DefaultPosition1Get() PURE_VIRTUAL;
7966 
7968  virtual void DefaultPosition1Set(double position1) PURE_VIRTUAL;
7969 
7971  virtual double DefaultPosition2Get() PURE_VIRTUAL;
7972 
7974  virtual void DefaultPosition2Set(double position2) PURE_VIRTUAL;
7975 
7977  virtual double DefaultRelativeIncrementGet() PURE_VIRTUAL;
7978 
7980  virtual void DefaultRelativeIncrementSet(double relativeIncrement) PURE_VIRTUAL;
7982 
7986  // /@{
7987 
8012  virtual RSIAction AmpFaultActionGet() PURE_VIRTUAL;
8013 
8038  virtual void AmpFaultActionSet(RSIAction action) PURE_VIRTUAL;
8039 
8063  virtual bool AmpFaultTriggerStateGet() PURE_VIRTUAL;
8064 
8088  virtual void AmpFaultTriggerStateSet(bool state) PURE_VIRTUAL;
8089 
8112  virtual double AmpFaultDurationGet() PURE_VIRTUAL;
8113 
8136  virtual void AmpFaultDurationSet(double seconds) PURE_VIRTUAL;
8137 
8164  virtual RSIAction HomeActionGet() PURE_VIRTUAL;
8165 
8191  virtual void HomeActionSet(RSIAction action) PURE_VIRTUAL;
8192 
8220  virtual bool HomeTriggerStateGet() PURE_VIRTUAL;
8221 
8244  virtual void HomeTriggerStateSet(bool state) PURE_VIRTUAL;
8245 
8269  virtual double HomeDurationGet() PURE_VIRTUAL;
8270 
8295  virtual void HomeDurationSet(double seconds) PURE_VIRTUAL;
8296 
8327  virtual RSIAction ErrorLimitActionGet() PURE_VIRTUAL;
8328 
8357  virtual void ErrorLimitActionSet(RSIAction action) PURE_VIRTUAL;
8358 
8383  virtual double ErrorLimitTriggerValueGet() PURE_VIRTUAL;
8384 
8408  virtual void ErrorLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8409 
8433  virtual double ErrorLimitDurationGet() PURE_VIRTUAL;
8434 
8459  virtual void ErrorLimitDurationSet(double seconds) PURE_VIRTUAL;
8460 
8487  virtual RSIAction HardwareNegLimitActionGet() PURE_VIRTUAL;
8488 
8515  virtual void HardwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8516 
8542  virtual bool HardwareNegLimitTriggerStateGet() PURE_VIRTUAL;
8543 
8569  virtual void HardwareNegLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8570 
8595  virtual double HardwareNegLimitDurationGet() PURE_VIRTUAL;
8596 
8621 
8622  virtual void HardwareNegLimitDurationSet(double seconds) PURE_VIRTUAL;
8623 
8650  virtual RSIAction HardwarePosLimitActionGet() PURE_VIRTUAL;
8651 
8678  virtual void HardwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
8679 
8700  virtual bool HardwarePosLimitTriggerStateGet() PURE_VIRTUAL;
8701 
8727  virtual void HardwarePosLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8728 
8753  virtual double HardwarePosLimitDurationGet() PURE_VIRTUAL;
8754 
8779  virtual void HardwarePosLimitDurationSet(double seconds) PURE_VIRTUAL;
8780 
8808  virtual RSIAction SoftwareNegLimitActionGet() PURE_VIRTUAL;
8809 
8835  virtual void SoftwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8836 
8861  virtual double SoftwareNegLimitTriggerValueGet() PURE_VIRTUAL;
8862 
8887  virtual void SoftwareNegLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8888 
8914  virtual RSIAction SoftwarePosLimitActionGet() PURE_VIRTUAL;
8915 
8941  virtual void SoftwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
8942 
8967  virtual double SoftwarePosLimitTriggerValueGet() PURE_VIRTUAL;
8968 
8993  virtual void SoftwarePosLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8994 
9022  virtual RSIAction EncoderFaultActionGet() PURE_VIRTUAL;
9023 
9050  virtual void EncoderFaultActionSet(RSIAction action) PURE_VIRTUAL;
9051 
9077  virtual RSIMotorFeedbackFault EncoderFaultTriggerGet() PURE_VIRTUAL;
9078 
9102  virtual void EncoderFaultTriggerSet(RSIMotorFeedbackFault encoder) PURE_VIRTUAL;
9103 
9127  virtual double EncoderFaultDurationGet() PURE_VIRTUAL;
9128 
9152  virtual void EncoderFaultDurationSet(double seconds) PURE_VIRTUAL;
9153 
9155  virtual RSIAction NodeFailureActionGet() PURE_VIRTUAL;
9156 
9158  virtual void NodeFailureActionSet(RSIAction action) PURE_VIRTUAL;
9159 
9177  virtual uint64_t AddressGet( RSIAxisAddressType addressType) PURE_VIRTUAL;
9178 
9193  virtual RSIDataType AddressDataTypeGet(RSIAxisAddressType type) PURE_VIRTUAL;
9194 
9195  // common limit methods
9196 
9198  virtual RSIAction LimitActionGet(RSIEventType limit) PURE_VIRTUAL;
9199 
9201  virtual void LimitActionSet(RSIEventType limit, RSIAction action) PURE_VIRTUAL;
9202 
9204  virtual bool LimitTriggerStateGet(RSIEventType limit) PURE_VIRTUAL;
9205 
9207  virtual void LimitTriggerStateSet(RSIEventType limit, bool triggerState) PURE_VIRTUAL;
9208 
9210  virtual double LimitTriggerValueGet(RSIEventType limit) PURE_VIRTUAL;
9211 
9213  virtual void LimitTriggerValueSet(RSIEventType limit, double triggerValue) PURE_VIRTUAL;
9214 
9216  virtual double LimitDurationGet(RSIEventType limit) PURE_VIRTUAL;
9217 
9219  virtual void LimitDurationSet(RSIEventType limit, double seconds) PURE_VIRTUAL;
9221 
9226 
9243  virtual double PositionToleranceFineGet() PURE_VIRTUAL;
9244 
9261  virtual void PositionToleranceFineSet(double tolerance) PURE_VIRTUAL;
9262 
9279  virtual double PositionToleranceCoarseGet() PURE_VIRTUAL;
9280 
9299 
9300  virtual void PositionToleranceCoarseSet(double tolerance) PURE_VIRTUAL;
9301 
9318  virtual double VelocityToleranceGet() PURE_VIRTUAL;
9319 
9336  virtual void VelocityToleranceSet(double tolerance) PURE_VIRTUAL;
9337 
9355  virtual double SettlingTimeGet() PURE_VIRTUAL;
9356 
9374  virtual void SettlingTimeSet(double time) PURE_VIRTUAL;
9375 
9395  virtual bool SettleOnStopGet() PURE_VIRTUAL;
9396 
9416 
9417  virtual void SettleOnStopSet(bool state) PURE_VIRTUAL;
9418 
9438  virtual bool SettleOnEStopGet() PURE_VIRTUAL;
9439 
9458  virtual void SettleOnEStopSet(bool state) PURE_VIRTUAL;
9459 
9479  virtual bool SettleOnEStopCmdEqActGet() PURE_VIRTUAL;
9480 
9499  virtual void SettleOnEStopCmdEqActSet(bool state) PURE_VIRTUAL;
9501 
9506 
9526  virtual RSIMotorType MotorTypeGet() PURE_VIRTUAL;
9527 
9546  virtual void MotorTypeSet(RSIMotorType type) PURE_VIRTUAL;
9547 
9567  virtual RSIMotorDisableAction AmpDisableActionGet() PURE_VIRTUAL;
9568 
9587  virtual void AmpDisableActionSet(RSIMotorDisableAction action) PURE_VIRTUAL;
9588 
9609 
9610  virtual RSIMotorBrakeMode BrakeModeGet() PURE_VIRTUAL;
9611 
9630  virtual void BrakeModeSet(RSIMotorBrakeMode mode) PURE_VIRTUAL;
9631 
9650  virtual double BrakeApplyDelayGet() PURE_VIRTUAL;
9651 
9652 
9672  virtual void BrakeApplyDelaySet(double seconds) PURE_VIRTUAL;
9673 
9692  virtual double BrakeReleaseDelayGet() PURE_VIRTUAL;
9693 
9714  virtual void BrakeReleaseDelaySet(double seconds) PURE_VIRTUAL;
9715 
9717  virtual void ClosedLoopStepperSet(bool enable) PURE_VIRTUAL;
9718 
9720  virtual int32_t ClosedLoopStepperVersionGet() PURE_VIRTUAL;
9721 
9723  virtual uint64_t EncoderPointerGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9724 
9726  virtual void EncoderPointerSet(RSIMotorFeedback encoder, uint64_t address) PURE_VIRTUAL;
9727 
9729  virtual uint64_t FeedbackDeltaPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9730 
9731 
9733  virtual void FeedbackDeltaPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9734 
9736  virtual uint64_t FeedbackPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9737 
9758  virtual void FeedbackPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9759 
9761  virtual int32_t EncoderRatioNumeratorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9762 
9764  virtual int32_t EncoderRatioDenominatorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9765 
9790  virtual void EncoderRatioSet(RSIMotorFeedback encoder, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9791 
9793  virtual const char* const EncoderRatioPrimaryGet() PURE_VIRTUAL;
9794 
9796  virtual void EncoderRatioPrimarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9797 
9799  virtual const char* const EncoderRatioSecondaryGet() PURE_VIRTUAL;
9800 
9802  virtual void EncoderRatioSecondarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9803 
9805  virtual int32_t EncoderCountGet() PURE_VIRTUAL;
9806 
9809  virtual void EncoderCountSet(int32_t count) PURE_VIRTUAL;
9810 
9812  virtual RSIAxisGantryType GantryTypeGet() PURE_VIRTUAL;
9813 
9815  virtual void GantryTypeSet(RSIAxisGantryType type) PURE_VIRTUAL;
9816 
9833  virtual RSIOperationMode OperationModeGet() PURE_VIRTUAL;
9834 
9851  virtual void OperationModeSet(RSIOperationMode mode) PURE_VIRTUAL;
9852 
9875  virtual int32_t MotorFaultMaskGet() PURE_VIRTUAL;
9876 
9905  virtual void MotorFaultMaskSet(int32_t faultMask) PURE_VIRTUAL;
9907 
9912 
9935  virtual void GearingEnable(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9936 
9940  virtual void GearingEnable(Axis* masterAxis, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9941 
9962  virtual void GearingRatioChange(int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9963 
9982  virtual void GearingDisable() PURE_VIRTUAL;
9983 
9985  virtual int32_t GearingNumeratorGet() PURE_VIRTUAL;
9986 
9988  virtual int32_t GearingDenominatorGet() PURE_VIRTUAL;
9989 
9991  virtual bool GearingEnableGet() PURE_VIRTUAL;
9992 
10012  virtual int32_t GearingMasterAxisNumberGet() PURE_VIRTUAL;
10013 
10028  virtual RSIAxisMasterType GearingSourceGet() PURE_VIRTUAL;
10030 
10035 
10054  virtual double MotionCamMasterStartGet(Axis* master) PURE_VIRTUAL;
10055 
10072  virtual void MotionCamMasterStartSet(Axis* master, double startPosition) PURE_VIRTUAL;
10073 
10092  virtual int32_t MotionCamRepeatFromGet() PURE_VIRTUAL;
10093 
10113  virtual void MotionCamRepeatFromSet(int32_t repeatFrom) PURE_VIRTUAL;
10114 
10134  virtual void MotionCamRepeatStop() PURE_VIRTUAL;
10135 
10160  virtual void MoveCamLinear(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, const double* const masterDistances, const double* const slavePositions, int32_t pointCount) PURE_VIRTUAL;
10161 
10193  virtual void MoveCamCubic(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, const double* const masterDistances, const double* const slavePositions, const double* const gearRatios, int32_t pointCount) PURE_VIRTUAL;
10194 
10214 
10215  virtual int32_t DriveIndexGet() PURE_VIRTUAL;
10217 
10222 
10238  virtual double BacklashWidthGet() PURE_VIRTUAL;
10239 
10255  virtual void BacklashWidthSet(double width) PURE_VIRTUAL;
10256 
10272  virtual double BacklashRateGet() PURE_VIRTUAL;
10273 
10289  virtual void BacklashRateSet(double rate) PURE_VIRTUAL;
10290 
10291 
10305  virtual double BacklashValueGet() PURE_VIRTUAL;
10306 
10308 
10313 
10344  virtual RSIFilterAlgorithm FilterAlgorithmGet() PURE_VIRTUAL;
10345 
10375  virtual void FilterAlgorithmSet(RSIFilterAlgorithm algorithm) PURE_VIRTUAL;
10376 
10405  virtual double FilterCoeffGet(RSIFilterGainPIDCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10406 
10432  virtual void FilterCoeffSet(RSIFilterGainPIDCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10433 
10436  virtual double FilterCoeffGet(RSIFilterGainPIVCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10437 
10441  virtual void FilterCoeffSet(RSIFilterGainPIVCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10442 
10480  virtual int32_t FilterGainTableGet() PURE_VIRTUAL;
10481 
10513  virtual void FilterGainTableSet(int32_t gainTable) PURE_VIRTUAL;
10514 
10534  virtual int32_t FilterGainTableSizeGet() PURE_VIRTUAL;
10535 
10537  virtual double FilterOutputGet(void) PURE_VIRTUAL;
10538 
10554  virtual double FilterLowPassGet() PURE_VIRTUAL;
10555 
10574  virtual void FilterLowPassSet(double frequency) PURE_VIRTUAL;
10575 
10597  virtual void FilterDualLoopSet(Axis* velocityAxis, RSIMotorFeedback velocityEncoder, bool enable) PURE_VIRTUAL;
10598 
10599 
10601  virtual bool FilterGainSchedulingGet() PURE_VIRTUAL;
10602 
10603 
10605  virtual void FilterGainSchedulingSet(bool enable) PURE_VIRTUAL;
10606 
10608  virtual bool IsTuneable() PURE_VIRTUAL;
10609 
10629  virtual void PostFilterLowPassSet(int32_t sectionNumber, double frequency) PURE_VIRTUAL;
10630 
10649  virtual void PostFilterUnityGainSet(int32_t sectionNumber) PURE_VIRTUAL;
10650 
10672  virtual void PostFilterSingleOrderSet(int32_t sectionNumber, double aOne, double bZero, double bOne) PURE_VIRTUAL;
10673 
10689  virtual void PostFilterHighPassSet(int32_t sectionNumber, double cornerFreq) PURE_VIRTUAL;
10690 
10711  virtual void PostFilterNotchSet(int32_t sectionNumber, double centerFreq, double bandwidth) PURE_VIRTUAL;
10712 
10734  virtual void PostFilterResonatorSet(int32_t sectionNumber, double centerFreq, double bandwidth, double gain) PURE_VIRTUAL;
10735 
10757  virtual void PostFilterLeadLagSet(int32_t sectionNumber, double lowGain, double highGain, double centerFreq) PURE_VIRTUAL;
10758 
10777  virtual void PostFilterClear(int32_t sectionNumber) PURE_VIRTUAL;
10778 
10802  virtual void PostFilterBiquadSet(int32_t sectionNumber, double aOne, double aTwo, double bZero, double bOne, double bTwo) PURE_VIRTUAL;
10803 
10805  virtual const char* const PostFilterInfoGet() PURE_VIRTUAL;
10806  //virtual RSIFilterPostFilterSection PostFilterSection;
10808 
10813 
10834  virtual const char* const UserLabelGet() PURE_VIRTUAL;
10835 
10857  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
10859 
10864 
10866  virtual void PostTrajectoryGearingEnableSet(bool enable) PURE_VIRTUAL;
10867 
10869  virtual bool PostTrajectoryGearingEnableGet() PURE_VIRTUAL;
10870 
10872  virtual void PostTrajectoryGearingMasterAxisSet(int32_t masterAxisNumber) PURE_VIRTUAL;
10873 
10875  virtual int32_t PostTrajectoryGearingMasterAxisGet() PURE_VIRTUAL;
10876 
10878  virtual void PostTrajectoryGearingMultiplierSet(double multiplier) PURE_VIRTUAL;
10879 
10881  virtual double PostTrajectoryGearingMultiplierGet() PURE_VIRTUAL;
10882 
10901  virtual uint32_t NetworkIndexGet(RSINetworkIndexType indexType) PURE_VIRTUAL;
10902 
10922  virtual void NetworkIndexSet(RSINetworkIndexType indexType, uint32_t newIndex) PURE_VIRTUAL;
10924 
10927  virtual double BacklashHysteresisLimitGet() PURE_VIRTUAL;
10928  virtual void BacklashHysteresisLimitSet(double hysteresisLimit) PURE_VIRTUAL;
10929 
10956  virtual bool StepperMotorLoopbackGet() PURE_VIRTUAL;
10957 
10984  virtual void StepperMotorLoopbackSet(bool loopback) PURE_VIRTUAL;
10985  virtual RSIMotorStepperPulseType StepperMotorPulseTypeGet(RSIMotorStepperPulse pulse) PURE_VIRTUAL;
10986  virtual void StepperMotorPulseTypeSet(RSIMotorStepperPulse pulse, RSIMotorStepperPulseType type) PURE_VIRTUAL;
10987  virtual uint64_t GearingMasterAddressGet() PURE_VIRTUAL;
10989 };
10990 
10992 
10997 class RSI_API MultiAxis : public virtual RapidCodeMotion {
10998 public:
10999 
11003 
11020  virtual void AxisAdd(Axis *axis) PURE_VIRTUAL;
11021 
11024  virtual void AxesAdd(Axis* *axes, int32_t axisCount) PURE_VIRTUAL;
11025 
11041  virtual void AxisRemoveAll() PURE_VIRTUAL;
11042 
11046 
11062  virtual int32_t AxisCountGet() PURE_VIRTUAL;
11063 
11082  virtual Axis* AxisGet(int32_t index) PURE_VIRTUAL;
11083 
11104  virtual const char* const UserLabelGet() PURE_VIRTUAL;
11105 
11127  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
11128 
11132 
11150  virtual double VectorVelocityGet() PURE_VIRTUAL;
11151 
11170  virtual void VectorVelocitySet(double velocity) PURE_VIRTUAL;
11171 
11189  virtual double VectorAccelerationGet() PURE_VIRTUAL;
11190 
11216  virtual void VectorAccelerationSet(double acceleration) PURE_VIRTUAL;
11217 
11235  virtual double VectorDecelerationGet() PURE_VIRTUAL;
11236 
11262  virtual void VectorDecelerationSet(double deceleration) PURE_VIRTUAL;
11263 
11281  virtual double VectorJerkPercentGet() PURE_VIRTUAL;
11282 
11308  virtual void VectorJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
11309 
11336  virtual void MoveVector(const double* const position) PURE_VIRTUAL;
11337 
11340  virtual void MoveVectorRelative(const double* const relativePosition) PURE_VIRTUAL;
11341 
11345 
11368 
11369  virtual double PathTimeSliceGet() PURE_VIRTUAL;
11370 
11394 
11395  virtual void PathTimeSliceSet(double seconds) PURE_VIRTUAL;
11396 
11424  virtual void PathRatioSet(const double* const ratio) PURE_VIRTUAL;
11425 
11428  virtual double PathRatioGet(int32_t index) PURE_VIRTUAL;
11429 
11449  virtual void PathBlendSet(bool blend) PURE_VIRTUAL;
11450 
11462 
11463  virtual void PathPlanTypeSet(RSIPathPlanType type) PURE_VIRTUAL;
11464 
11476 
11477  virtual RSIPathPlanType PathPlanTypeGet() PURE_VIRTUAL;
11478 
11500  virtual void PathListStart(const double* const startPosition) PURE_VIRTUAL;
11501 
11525  virtual void PathLineAdd(const double* const position) PURE_VIRTUAL;
11526 
11549  virtual void PathArcAdd(const double* const center, double angle) PURE_VIRTUAL;
11550 
11572  virtual void PathListEnd() PURE_VIRTUAL;
11573 
11593  virtual void PathMotionStart() PURE_VIRTUAL;
11594 
11598 
11618  virtual void MoveTrapezoidal(const double* const position, const double* const vel, const double* const accel, const double* const decel) PURE_VIRTUAL;
11619 
11622  virtual void MoveTrapezoidal(const double* const position) PURE_VIRTUAL;
11623 
11652  virtual void MoveSCurve(const double* const position, const double* const vel, const double* const accel, const double* const decel, const double* const jerkPct) PURE_VIRTUAL;
11653 
11656  virtual void MoveSCurve(const double* const position) PURE_VIRTUAL;
11657 
11675  virtual void MoveVelocity(const double* const velocity, const double* const accel) PURE_VIRTUAL;
11676 
11680  virtual void MoveVelocity(const double* const velocity) PURE_VIRTUAL;
11681 
11702  virtual void MoveRelative(const double* const relativePosition, const double* const vel, const double* const accel, const double* const decel, const double* const jerkPct) PURE_VIRTUAL;
11703 
11706  virtual void MoveRelative(const double* const relativePosition) PURE_VIRTUAL;
11707 
11726  virtual void MoveVelocitySCurve(const double* const velocity, const double* const accel, const double* const jerkPct) PURE_VIRTUAL;
11727 
11747  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
11748 
11769  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
11770 
11772  virtual int32_t AxisMapCountGet() PURE_VIRTUAL;
11773 
11788  virtual uint64_t AddressGet(RSIMultiAxisAddressType addressType) PURE_VIRTUAL;
11789 
11804  virtual RSIDataType AddressDataTypeGet(RSIMultiAxisAddressType type) PURE_VIRTUAL;
11805 
11806 };
11807 
11809 
11813 class RSI_API IOPoint : public virtual RapidCodeObject {
11814 public:
11818 
11837  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorDedicatedIn motorDedicatedInNumber);
11838 
11857  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
11858 
11875  static IOPoint* CreateDigitalInput(IO* io, int32_t bitNumber);
11876 
11890  static IOPoint* CreateDigitalInput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
11891 
11907  static IOPoint* CreateDigitalInput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
11908 
11927  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorDedicatedOut motorDedicatedOutNumber);
11928 
11947  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
11948 
11965  static IOPoint* CreateDigitalOutput(IO* io, int32_t bitNumber);
11966 
11967 
11982  static IOPoint* CreateDigitalOutput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
11983 
11999  static IOPoint* CreateDigitalOutput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
12000 
12016  static IOPoint* CreateAnalogInput(IO* io, int32_t analogChannel);
12017 
12033  static IOPoint* CreateAnalogOutput(IO* io, int32_t analogChannel);
12034 
12035 
12036 
12040 
12044  virtual uint64_t AddressGet() PURE_VIRTUAL;
12045 
12049  virtual int32_t MaskGet() PURE_VIRTUAL;
12050 
12054  virtual bool IsDigital() PURE_VIRTUAL;
12055 
12056 
12060  virtual bool IsOutput() PURE_VIRTUAL;
12061 
12065 
12070  virtual bool Get() PURE_VIRTUAL;
12071 
12079  virtual void Set(bool state) PURE_VIRTUAL;
12080 
12084 
12089  virtual double ValueGet() PURE_VIRTUAL;
12090 
12095  virtual void ValueSet(double valueDouble) PURE_VIRTUAL;
12096 };
12097 
12099 
12103 class RSI_API RTOS {
12104 
12105 public:
12110 
12114 
12119  static INtimeStatus INtimeStatusGet(const char*const nodeName);
12120 
12124 
12129  static INtimeStatus INtimeStart(const char* const nodeName);
12130 
12134 
12139  static INtimeStatus INtimeStop(const char* const nodeName);
12140 
12144 
12149  static INtimeStatus INtimeRestart(const char* const nodeName);
12150 
12153  static const char* const INtimeCatalogRMPGet();
12154 
12157  static const char* const INtimeCatalogRMPNetworkGet();
12158 
12161  static uint32_t INtimeNodeCountGet();
12162 
12166  static const char* const INtimeNodeNameGet(uint32_t nodeNumber);
12167 
12171  static bool INtimeNodeIsLocal(uint32_t nodeNumber);
12173 };
12174 
12176 } // namespace RapidCode
12177 
12178 } // namespace RSI
12179 
12180 #if defined(__cplusplus)
12181 }
12182 #endif
12183 
12184 #endif // _RSI_H
RSI::RapidCode::Axis::MoveVelocity
void MoveVelocity(double velocity, double accel)
Command a constant velocity move (jog).
RSI::RapidCode::RSIMotorFeedback
RSIMotorFeedback
Encoders per motor.
Definition: rsienums.h:1051
RSI::RapidCode::Axis::MoveTrapezoidal
void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel)
Point-to-point trapezoidal move.
RSI::RapidCode::MultiAxis::AxisAdd
void AxisAdd(Axis *axis)
Add an Axis to a MultiAxis group.
RSI::RapidCode::MultiAxis
The MultiAxis object allows you to map two or more axes together and command synchronized motion.
Definition: rsi.h:10997
RSI::RapidCode::RSIAxisMasterType
RSIAxisMasterType
Sources available to a slave Axis for electronic gearing & camming.
Definition: rsienums.h:1116
RSI::RapidCode::RSIHomeStage
RSIHomeStage
Predefined Homing Stage sections.
Definition: rsienums.h:400
RSI::RapidCode::RSIMotorFeedbackFault
RSIMotorFeedbackFault
Feedbacks to use for Feedback Fault action.
Definition: rsienums.h:1044
RSI::RapidCode::IO::IOExists
bool IOExists()
IOExists validates your IO object is an IO Node.
RSI::RapidCode::RSIControllerType
RSIControllerType
Controller type.
Definition: rsienums.h:278
RSI::RapidCode::IOPoint::CreateDigitalOutput
static IOPoint * CreateDigitalOutput(MotionController *controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type)
Create a Digital Output from a network PDO.
RSI::RapidCode::RapidCodeOS::TimerCountGet
int32_t TimerCountGet()
Gets the time since startup.
RSI::RapidCode::IOPoint::CreateDigitalOutput
static IOPoint * CreateDigitalOutput(Axis *axis, RSIMotorGeneralIo motorGeneralIoNumber)
Create a Digital Output from an Axis' general purpose inputs.
RSI::RapidCode::RapidCodeMotion::NumberGet
int32_t NumberGet()
Get the axis number.
RSI::RapidCode::RSIMotionType
RSIMotionType
Streaming motion types.
Definition: rsienums.h:941
RSI::RapidCode::RTOS::INtimeCatalogRMPNetworkGet
static const char *const INtimeCatalogRMPNetworkGet()
Get the RMPNetwork catalog.
RSI::RapidCode::RsiError::number
RSIErrorMessage number
Error number.
Definition: rsi.h:93
RSI::RapidCode::RSICompensatorOutputType
RSICompensatorOutputType
Compensator output types.
Definition: rsienums.h:1290
RSI::RapidCode::RsiError::isWarning
bool isWarning
Whether the error is or is not a warning.
Definition: rsi.h:97
RSI::RapidCode::RapidCodeOS::Sleep
void Sleep(int32_t milliseconds)
Put the current thread to sleep.
RSI::RapidCode::RTOS::INtimeNodeCountGet
static uint32_t INtimeNodeCountGet()
Get the number of INtime nodes on this PC.
RSI::RapidCode::RapidCodeInterrupt::InterruptNameGet
const char *const InterruptNameGet()
Get the text name of an interrupt type.
RSI::RapidCode::MotionController::Reset
void Reset()
Reset (power cycle) the controller.
RSI::RapidCode::RSINetworkType
RSINetworkType
Type of Network topology.
Definition: rsienums.h:600
RSI::RapidCode::RsiError
The RsiError object contains information about any RapidCode API object's error/exception.
Definition: rsi.h:90
RSI::RapidCode::IO
The IO object provides an interface to the inputs and outputs of a network node.
Definition: rsi.h:4018
RSI::RapidCode::INtimeStatus
INtimeStatus
INtime status values.
Definition: rsienums.h:1255
RSI::RapidCode::MotionController::CreateFromServer
static MotionController * CreateFromServer(const char *const server, int32_t serverPort)
unsupported
RSI::RapidCode::MotionController::Delete
void Delete(void)
Delete the MotionController and all its objects.
RSI::RapidCode::RapidCodeOS::KeyGet
int32_t KeyGet(int32_t milliseconds)
Wait for a key to be pressed and return its value.
RSI::RapidCode::RsiError::functionName
char functionName[RSI_ERROR_TEXT_SIZE]
Function name of the raised the error.
Definition: rsi.h:102
RSI::RapidCode::RSIEventType
RSIEventType
Event Types or Status Bits.
Definition: rsienums.h:873
RSI::RapidCode::Axis::MoveRelative
void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct)
Command a relative point-to-point S-Curve motion.
RSI::RapidCode::IOPoint::CreateAnalogInput
static IOPoint * CreateAnalogInput(IO *io, int32_t analogChannel)
Create an Analog Input from an I/O Node.
RSI::RapidCode::RSINetworkTechnologyType
RSINetworkTechnologyType
Network technology type.
Definition: rsienums.h:1250
RSI::RapidCode::MotionController::CreateFromSoftware
static MotionController * CreateFromSoftware()
Initialize and start the RMP EtherCAT controller.
RSI::RapidCode::RsiError::shortText
char shortText[RSI_ERROR_TEXT_SIZE]
Error short text.
Definition: rsi.h:104
RSI::RapidCode::RSIAxisPositionInput
RSIAxisPositionInput
Feedback Positions for each Axis.
Definition: rsienums.h:1031
RSI::RapidCode::Axis::MoveRelative
void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct, double finalVel)
RSI::RapidCode::RSIMultiAxisAddressType
RSIMultiAxisAddressType
Used to get firmware address used in User Limits, Sequencers, etc.
Definition: rsienums.h:481
RSI::RapidCode::IOPoint::AddressGet
uint64_t AddressGet()
Get the Host Address for the I/O point.
RSI::RapidCode::RSIMotorBrakeMode
RSIMotorBrakeMode
Brake modes.
Definition: rsienums.h:1223
RSI::RapidCode::RSINodeType
RSINodeType
Valid Node types.
Definition: rsienums.h:647
RSI::RapidCode::NetworkNode::Exists
bool Exists()
Returns true if this NetworkNode exists on a physical network.
RSI::RapidCode::RapidCodeObject::VersionGet
const char *const VersionGet()
Get the RSI RapidCode version.
RSI::RapidCode::RSIMotorDisableAction
RSIMotorDisableAction
Action for when a motor is disabled.
Definition: rsienums.h:1217
RSI::RapidCode::Axis::MoveTrapezoidal
void MoveTrapezoidal(double position, double vel, double accel, double decel)
Point-to-point trapezoidal move.
RSI::RapidCode::RTOS::INtimeCatalogRMPGet
static const char *const INtimeCatalogRMPGet()
Get the RMP catalog.
RSI::RapidCode::RSIMotionHoldType
RSIMotionHoldType
Types for MotionHold attribute.
Definition: rsienums.h:993
RSI::RapidCode::RTOS::INtimeStop
static INtimeStatus INtimeStop(const char *const nodeName)
Stop INtime.
RSI::RapidCode::MotionController::Create
static MotionController * Create()
Initialize and start the RMP EtherCAT controller.
RSI::RapidCode::RapidCodeObject
The RapidCode base class. All non-error objects are derived from this class.
Definition: rsi.h:145
RSI::RapidCode::RSIUserLimitLogic
RSIUserLimitLogic
Logic options for User Limits.
Definition: rsienums.h:620
RSI::RapidCode::IOPoint::CreateAnalogOutput
static IOPoint * CreateAnalogOutput(IO *io, int32_t analogChannel)
Create an Analog Output from an I/O Node.
RSI::RapidCode::RTOS::INtimeStatusGet
static INtimeStatus INtimeStatusGet(const char *const nodeName)
Get the status of INtime.
RSI::RapidCode::IO::NetworkNode
NetworkNode * NetworkNode
Gets the parent NetworkNode object.
Definition: rsi.h:4029
RSI::RapidCode::RSIMotorStepperPulse
RSIMotorStepperPulse
Pulse A or B.
Definition: rsienums.h:1147
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(Axis *axis, RSIMotorGeneralIo motorGeneralIoNumber)
Create a Digital Input from an Axis' general purpose inputs.
RSI::RapidCode::RSIMotionAttrMask
RSIMotionAttrMask
Attribute masks for motion. You cannot mix RSIMotionAttrMaskDELAY and RSIMotionAttrMaskAPPEND.
Definition: rsienums.h:957
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(MotionController *controller, uint64_t memoryAddress, int32_t bitNumber)
Create a Digital Output from a network PDO.
RSI::RapidCode::MotionController::AxisGet
Axis * AxisGet(int32_t axisNumber)
AxisGet returns a pointer to an Axis object and initializes its internals.
RSI::RapidCode::RTOS::INtimeNodeIsLocal
static bool INtimeNodeIsLocal(uint32_t nodeNumber)
Determine if an INtime node is local (on this PC) or distributed (on another PC).
RSI::RapidCode::MotionController::IOGet
IO * IOGet(int32_t nodeNumber)
IOGet returns a pointer to an IO object using its node number and initializes its internals.
RSI::RapidCode::RapidCodeMotion::rsiControl
MotionController * rsiControl
Gets the parent MotionController object.
Definition: rsi.h:4325
RSI::RapidCode::RSIMotorType
RSIMotorType
Motor Type.
Definition: rsienums.h:1209
RSI::RapidCode::Axis::PositionSet
void PositionSet(double position)
Set the Command and Actual positions.
RSI::RapidCode::RSINetworkStartError
RSINetworkStartError
Network start errors.
Definition: rsienums.h:575
RSI::RapidCode::RSIFilterGainPIDCoeff
RSIFilterGainPIDCoeff
PID gain coefficients.
Definition: rsienums.h:1066
RSI::RapidCode::RSIMotorDedicatedIn
RSIMotorDedicatedIn
Dedicated Input bits per motor.
Definition: rsienums.h:796
RSI::RapidCode::RapidCodeInterrupt::InterruptWait
RSIEventType InterruptWait(int32_t milliseconds)
Suspend the current thread until an interrupt arrives from the controller.
RSI::RapidCode::Axis::MoveTrapezoidal
void MoveTrapezoidal(double position)
Point-to-point trapezoidal move.
RSI::RapidCode::RSIPDOType
RSIPDOType
Compensator output types.
Definition: rsienums.h:1296
RSI::RapidCode::RTOS::INtimeRestart
static INtimeStatus INtimeRestart(const char *const nodeName)
Restart INtime (reboot INtime).
RSI::RapidCode::RSINetworkOutputAddressType
RSINetworkOutputAddressType
Network output address types.
Definition: rsienums.h:1283
RSI::RapidCode::MultiAxis::AxisRemoveAll
void AxisRemoveAll()
Remove all axes from a MultiAxis group.s.
RSI::RapidCode::IOPoint::CreateDigitalOutput
static IOPoint * CreateDigitalOutput(MotionController *controller, uint64_t memoryAddress, int32_t bitNumber)
Create a Digital Output from a network PDO.
RSI::RapidCode::RTOS::INtimeStop
static INtimeStatus INtimeStop()
Stop INtime.
RSI::RapidCode::RSIMotorIoTypeMask
RSIMotorIoTypeMask
Possible mask bits for Motor I/O types.
Definition: rsienums.h:1163
RSI::RapidCode::Axis::ActualPositionGet
double ActualPositionGet()
Get the current actual position.
RSI::RapidCode::Axis::MoveVelocitySCurve
void MoveVelocitySCurve(double velocity, double accel, double jerkPct)
Command a constant velocity move (jog) with non-constant acceleration.
RSI::RapidCode::RSIIMotionControllerInitializationState
RSIIMotionControllerInitializationState
MotionController's initialization state.
Definition: rsienums.h:289
RSI::RapidCode::RsiError::lineNumber
int32_t lineNumber
Source code line number.
Definition: rsi.h:95
RSI::RapidCode::RSIHomeMethod
RSIHomeMethod
Definition: rsienums.h:304
RSI::RapidCode::Axis::MoveSCurve
void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct)
Command a point-to-point S-Curve motion.
RSI::RapidCode::RTOS::INtimeStatusGet
static INtimeStatus INtimeStatusGet()
Get the status of INtime.
RSI::RapidCode::MotionController
The MotionController object represents the RMP INtime soft motion controller.
Definition: rsi.h:743
RSI::RapidCode::RSISource
RSISource
Possible sources that have caused an Error state.
Definition: rsienums.h:920
RSI::RapidCode::RSIAxisGantryType
RSIAxisGantryType
How to combine Axis Feedback Positions.
Definition: rsienums.h:1037
RSI::RapidCode::RSINetworkState
RSINetworkState
State of network.
Definition: rsienums.h:550
RSI::RapidCode::MotionController::CreateFromSoftware
static MotionController * CreateFromSoftware(const char *const RtaPath, const char *const NodeName)
Initialize and start the RMP EtherCAT controller.
RSI::RapidCode::RSITrace
RSITrace
Trace masks.
Definition: rsienums.h:523
RSI::RapidCode::RapidCodeInterrupt
Interface for objects which can use interrupts.
Definition: rsi.h:573
RSI
RSI::RapidCode::IOPoint
The IOPoint object represents one specific point class such as: Digital Output, Digital Input,...
Definition: rsi.h:11813
RSI::RapidCode::Axis::MoveSCurve
void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct, double finalVel)
RSI::RapidCode::RSINetworkStartupMethod
RSINetworkStartupMethod
Network startup methods.
Definition: rsienums.h:562
RSI::RapidCode::RSIUserLimitTriggerType
RSIUserLimitTriggerType
Trigger types for UserLimits.
Definition: rsienums.h:607
RSI::RapidCode::RSIMotorFaultMask
RSIMotorFaultMask
Mask values for several motor faults.
Definition: rsienums.h:1197
RSI::RapidCode::RapidCodeOS
The RapidCodeOS object provides access to operating system (Windows) features. Accessible via MotionC...
Definition: rsi.h:470
RSI::RapidCode::Axis
The Axis object manages a single physical axis on a motion controller.
Definition: rsi.h:5863
RSI::RapidCode::Axis::MoveSCurve
void MoveSCurve(double position)
RSI::RapidCode::RSIControllerAddressType
RSIControllerAddressType
Used to get firmware address used in User Limits, Sequencers, etc.
Definition: rsienums.h:408
RSI::RapidCode::RSIAction
RSIAction
Action to perform on an Axis.
Definition: rsienums.h:1013
RSI::RapidCode::RsiError::fileName
char fileName[RSI_ERROR_TEXT_SIZE]
source file name
Definition: rsi.h:106
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(Axis *axis, RSIMotorDedicatedIn motorDedicatedInNumber)
Create a Digital Input from an Axis' Dedicated Input bits.
RSI::RapidCode::RsiError::RSI_ERROR_TEXT_SIZE
static const uint32_t RSI_ERROR_TEXT_SIZE
Error message text.
Definition: rsi.h:99
RSI::RapidCode::RSINetworkIndexType
RSINetworkIndexType
Network index types for Axis.
Definition: rsienums.h:1263
RSI::RapidCode::RapidCodeMotion
The RapidCodeMotion interface is implemented by Axis and MultiAxis .
Definition: rsi.h:4315
RSI::RapidCode::RSIProcessorType
RSIProcessorType
Controller's processor type.
Definition: rsienums.h:298
RSI::RapidCode::MotionController::LoadExistingMultiAxis
MultiAxis * LoadExistingMultiAxis(int32_t motionSupervisorNumber)
Get/Create a MultiAxis object from one that already exists (previously setup) on the RMP motion contr...
RSI::RapidCode::RTOS::INtimeRestart
static INtimeStatus INtimeRestart()
Restart INtime (reboot INtime).
RSI::RapidCode::RapidCodeInterrupt::InterruptEnableSet
void InterruptEnableSet(bool enable)
Enable or disable interrupts.
RSI::RapidCode::RSIFilterAlgorithm
RSIFilterAlgorithm
Filter algorithms.
Definition: rsienums.h:1057
RSI::RapidCode::RSIFilterGainPIVCoeff
RSIFilterGainPIVCoeff
PIV gain coefficients.
Definition: rsienums.h:1087
RSI::RapidCode::Axis::MoveVelocity
void MoveVelocity(double velocity)
RSI::RapidCode::RsiError::what
const char * what() const noexcept
Returns a null terminated character sequence that may be used to identify the exception.
Definition: rsi.h:133
RSI::RapidCode::IO::rsiControl
MotionController * rsiControl
Gets the parent MotionController object.
Definition: rsi.h:4031
RSI::RapidCode::Axis::NetworkNode
NetworkNode * NetworkNode
Gets the parent NetworkNode object.
Definition: rsi.h:5875
RSI::RapidCode::MotionController::MultiAxisGet
MultiAxis * MultiAxisGet(int32_t motionSupervisorNumber)
MultiAxisGet returns a pointer to a MultiAxis object and initializes its internals.
RSI::RapidCode::IOPoint::CreateDigitalOutput
static IOPoint * CreateDigitalOutput(IO *io, int32_t bitNumber)
Create a Digital Output from an I/O Node.
RSI::RapidCode::Axis::MoveRelative
void MoveRelative(double releativePosition)
RSI::RapidCode::RSIMotorIoType
RSIMotorIoType
Possible configurations for Motor I/O.
Definition: rsienums.h:1126
RSI::RapidCode::RSIDataType
RSIDataType
Data types for User Limits and other triggers.
Definition: rsienums.h:633
RSI::RapidCode::MultiAxis::AxesAdd
void AxesAdd(Axis **axes, int32_t axisCount)
RSI::RapidCode::RSIMotorStepperPulseType
RSIMotorStepperPulseType
Stepper pulse type.
Definition: rsienums.h:1153
RSI::RapidCode::RSIAxisAddressType
RSIAxisAddressType
Used to get firmware address used in User Limits, Sequencers, etc.
Definition: rsienums.h:423
RSI::RapidCode::RSIPathPlanType
RSIPathPlanType
Path motion planning types.
Definition: rsienums.h:951
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(MotionController *controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type)
Create a Digital Output from a network PDO.
RSI::RapidCode::RTOS
The RTOS object represents the real-time operating system (INtime).
Definition: rsi.h:12103
RSI::RapidCode::RSIMotorGeneralIo
RSIMotorGeneralIo
Motor I/O bit numbers.
Definition: rsienums.h:824
RSI::RapidCode::RSINetworkStartMode
RSINetworkStartMode
Network start modes.
Definition: rsienums.h:569
RSI::RapidCode::RSIOperationMode
RSIOperationMode
DS402 modes of operation.
Definition: rsienums.h:1229
RSI::RapidCode::RTOS::INtimeStart
static INtimeStatus INtimeStart(const char *const nodeName)
Start INtime.
RSI::RapidCode::RTOS::INtimeStart
static INtimeStatus INtimeStart()
Start INtime.
RSI::RapidCode::RTOS::INtimeNodeNameGet
static const char *const INtimeNodeNameGet(uint32_t nodeNumber)
Get the name of an INtime node.
RSI::RapidCode::RSIState
RSIState
State of an Axis or MultiAxis.
Definition: rsienums.h:786
RSI::RapidCode::RSIMotorDedicatedOut
RSIMotorDedicatedOut
Dedicated Output bits per motor.
Definition: rsienums.h:818
RSI::RapidCode::IOPoint::CreateDigitalOutput
static IOPoint * CreateDigitalOutput(Axis *axis, RSIMotorDedicatedOut motorDedicatedOutNumber)
Create a Digital Output from an Axis' Dedicated Output bits.
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(IO *io, int32_t bitNumber)
Create a Digital Input from an I/O Node.
RSI::RapidCode::MotionController::CreateFromSoftware
static MotionController * CreateFromSoftware(const char *const RtaPath)
Initialize and start the RMP EtherCAT controller.
RSI::RapidCode::RSIErrorMessage
RSIErrorMessage
All possible RSI Error Messages.
Definition: rsienums.h:17