The RMP Motion Controller APIs
rsi.h
1 #ifndef _RSI_H
2 #define _RSI_H
3 
4 #include <stdlib.h>
5 #include <vector>
6 #include <stdio.h>
7 #include <string.h>
8 #include <math.h>
9 #include <exception>
10 #include <cstdint>
11 
12 #include "rsienums.h"
13 
14 #if defined(_WIN32)
15 # if !defined(__INTIME__)
16 # define HAS_CARTESIAN_ROBOT 1
17 # endif
18 # if defined(RSIDLL)
19 # define RSI_API __declspec(dllexport)
20 # else
21 # define RSI_API __declspec(dllimport)
22 # endif
23 #elif defined(__linux__)
24 # define RSI_API __attribute__ ((visibility ("default")))
25 #endif
26 
27 // allows doxygen to preprocess and remove this for cleaner docs
28 #if !defined(PURE_VIRTUAL)
29 #define PURE_VIRTUAL = 0
30 #endif
31 
32 
33 
34 #if defined(__cplusplus)
35 extern "C"
36 {
37 #endif
38 
40 namespace RSI
41 {
42 
44 namespace RapidCode
45 {
46 
47 class MotionController;
48 class Axis;
49 class MultiAxis;
50 class IO;
51 class IOPoint;
52 class RTOS;
53 
54 
57 
59 class StaticInstanceMediator
60 {
61 private:
62  bool isValid;
63 public:
64  bool IsValid() { return isValid; }
65  void OnDelete() { isValid = false; }
66  void OnCreate() { isValid = true; }
67 };
68 
70 
99 class RsiError : public std::exception
100 {
101 public:
105  int32_t lineNumber;
107  int32_t objectIndex;
109  bool isWarning;
111  static inline constexpr uint32_t RSI_ERROR_TEXT_SIZE = 512U;
112  char text[RSI_ERROR_TEXT_SIZE];
119 
120  RsiError()
121  {
122  text[0] = '\0';
123  functionName[0] = '\0';
124  shortText[0] = '\0';
125  fileName[0] = '\0';
126  number = RSIErrorMessage::RSIMessageOK;
127  lineNumber = -1;
128  isWarning = false;
129  objectIndex = -1;
130  }
131  RsiError(const RsiError& copyFrom)
132  {
133 #if defined(_WIN32)
134  strncpy_s(text, RSI_ERROR_TEXT_SIZE, copyFrom.text, RSI_ERROR_TEXT_SIZE);
138 #elif defined(__linux__)
139  strncpy(text, copyFrom.text, RSI_ERROR_TEXT_SIZE);
140  strncpy(functionName, copyFrom.functionName, RSI_ERROR_TEXT_SIZE);
141  strncpy(shortText, copyFrom.shortText, RSI_ERROR_TEXT_SIZE);
142  strncpy(fileName, copyFrom.fileName, RSI_ERROR_TEXT_SIZE);
143 #endif
144  number = copyFrom.number;
145  lineNumber = copyFrom.lineNumber;
146  isWarning = copyFrom.isWarning;
147  objectIndex = copyFrom.objectIndex;
148  }
149  ~RsiError()
150  {
151  }
152 
154  virtual const char* what() const noexcept { return text; }
155 };
156 
157 
158 
160 
168 class RSI_API RapidCodeObject {
169 public:
174 
175 
176 
190  virtual const char* const VersionGet() PURE_VIRTUAL;
191 
193  virtual int32_t MpiVersionMajor() PURE_VIRTUAL;
195  virtual int32_t MpiVersionMinor() PURE_VIRTUAL;
197  virtual int32_t MpiVersionRelease() PURE_VIRTUAL;
199  virtual int32_t RSIVersionMajor() PURE_VIRTUAL;
201  virtual int32_t RSIVersionMinor() PURE_VIRTUAL;
203  virtual int32_t RSIVersionMicro() PURE_VIRTUAL;
205  virtual int32_t RSIVersionPatch() PURE_VIRTUAL;
206 
210  virtual int32_t NumberGet() PURE_VIRTUAL;
212 
217 
218 
219 
220 
248  virtual int32_t ErrorLogCountGet() PURE_VIRTUAL;
249 
265  virtual const RsiError* const ErrorLogGet() PURE_VIRTUAL;
266 
282  virtual void ErrorLogClear() PURE_VIRTUAL;
283 
304  virtual void ThrowExceptions(bool state) PURE_VIRTUAL;
305 
307  virtual const char* const RsiErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
308 
310  virtual const char* const ErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
311 
313  virtual bool WarningMsgCheck(RSIErrorMessage msg) PURE_VIRTUAL;
315 
320 
321 
338  virtual void Trace(bool state) PURE_VIRTUAL;
339 
356  virtual void TraceMaskOnSet(RSITrace maskOn) PURE_VIRTUAL;
357 
358 
381  virtual bool TraceMaskOnGet(RSITrace maskOn) PURE_VIRTUAL;
382 
400  virtual void TraceMaskOffSet(RSITrace maskOff) PURE_VIRTUAL;
401 
417  virtual void TraceMaskClear() PURE_VIRTUAL;
418 
435  virtual void TraceFileSet(const char* const fileName) PURE_VIRTUAL;
436 
451  virtual void TraceFileClose() PURE_VIRTUAL;
452 
469  virtual void TraceInjectMessage(RSITrace traceLevel, const char* const message) PURE_VIRTUAL;
470 
471 
472 
473 
475 };
476 
478 
492 class RSI_API RapidCodeOS {
493 public:
494 
499 
513  virtual void Sleep(int32_t milliseconds) PURE_VIRTUAL;
514 
534  virtual int32_t KeyGet(int32_t milliseconds) PURE_VIRTUAL;
535 
546  virtual int32_t TimerCountGet() PURE_VIRTUAL;
547 
557  virtual int32_t TimerFrequencyGet() PURE_VIRTUAL;
558 
559 
572  virtual int32_t PerformanceTimerCountGet() PURE_VIRTUAL;
573 
586  virtual int32_t PerformanceTimerFrequencyGet() PURE_VIRTUAL;
587 
589 };
590 
592 
595 class RSI_API RapidCodeInterrupt : public virtual RapidCodeObject {
596 public:
600 
602  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
603 
604 
628  virtual RSIEventType InterruptWait(int32_t milliseconds) PURE_VIRTUAL;
629 
650  virtual const char* const InterruptNameGet() PURE_VIRTUAL;
651 
674  virtual int32_t InterruptSampleTimeGet() PURE_VIRTUAL;
675 
676 
699  virtual int32_t InterruptSourceNumberGet() PURE_VIRTUAL;
700 
702  virtual uint16_t InterruptMotionIdGet() PURE_VIRTUAL;
703 
705  virtual void InterruptWake() PURE_VIRTUAL;
706 
708  virtual void InterruptMaskClear() PURE_VIRTUAL;
709 
711  virtual void InterruptMaskAllSet() PURE_VIRTUAL;
712 
714  virtual void InterruptMaskOnSet(RSIEventType eventType) PURE_VIRTUAL;
715 
717  virtual void InterruptMaskOffSet(RSIEventType eventType) PURE_VIRTUAL;
718 
720  virtual bool InterruptMaskOnGet(RSIEventType eventType) PURE_VIRTUAL;
721 
722 
737  virtual uint64_t InterruptUserDataGet(uint32_t userDataIndex) PURE_VIRTUAL;
738 
739 
753  virtual double InterruptUserDataDoubleGet(uint32_t userDataIndex) PURE_VIRTUAL;
754 };
755 
757 
765 class RSI_API MotionController : public virtual RapidCodeInterrupt {
766 protected:
768  StaticInstanceMediator* _mediator;
769 
770 public:
771 
772  // Static functions or attributes should be grouped together.
777 
779  static inline constexpr uint32_t NetworkStartTimeoutMillisecondsDefault = 30000;
780 
782  static inline constexpr uint32_t AxisCountMaximum = 64;
783 
785  static inline constexpr uint32_t MotionCountMaximum = 64;
786 
788  static inline constexpr uint32_t NetworkNodeCountMaximum = 64;
789 
791  static inline constexpr uint32_t RecorderCountMaximum = 64;
792 
794  static inline constexpr uint32_t CompensatorCountMaximum = 64;
795 
797  static inline constexpr uint32_t UserBufferDataCountMaximum = 1024;
798 
800  static inline constexpr uint32_t SequencerGlobalCountMaximum = 191;
801 
803  static inline constexpr double SampleRateDefault = 1000.0;
804 
806 
807  // Static functions or attributes should be grouped together.
812 
813 
844 
849  static MotionController* CreateFromSoftware(const char* const RtaPath);
850 
856  static MotionController* CreateFromSoftware(const char* const RtaPath, const char* const NodeName);
857 
888 
889 
891  static MotionController* CreateFromServer(const char* const server, int32_t serverPort);
892 
893 
895 
896 
897 
902 
927  virtual IO* IOGet(int32_t nodeNumber) PURE_VIRTUAL;
928 
929 
954  virtual Axis* AxisGet(int32_t axisNumber) PURE_VIRTUAL;
955 
979  virtual MultiAxis* MultiAxisGet(int32_t motionSupervisorNumber) PURE_VIRTUAL;
980 
999  virtual MultiAxis* LoadExistingMultiAxis(int32_t motionSupervisorNumber) PURE_VIRTUAL;
1000 
1027  virtual void Delete(void) PURE_VIRTUAL;
1029 
1034 
1045  virtual void Reset() PURE_VIRTUAL;
1046 
1049  virtual void Refresh() PURE_VIRTUAL;
1050 
1056  virtual void Shutdown() PURE_VIRTUAL;
1058 
1063 
1064 
1065 
1090  virtual uint32_t SerialNumberGet(void) PURE_VIRTUAL;
1091 
1116  virtual int32_t SampleCounterGet() PURE_VIRTUAL;
1117 
1118 
1119 
1140  virtual void SampleWait(uint32_t samples) PURE_VIRTUAL;
1141 
1142 
1144  virtual RSIControllerType ControllerTypeGet() PURE_VIRTUAL;
1145 
1147  virtual const char* const ServerNameGet() PURE_VIRTUAL;
1148 
1150  virtual int32_t ServerPortGet() PURE_VIRTUAL;
1151 
1152 
1153 
1154 
1179  virtual RSIProcessorType ProcessorTypeGet() PURE_VIRTUAL;
1180 
1197  virtual double ProcessorUsageGet() PURE_VIRTUAL;
1198 
1211  virtual void ProcessorUsageClear() PURE_VIRTUAL;
1212 
1217  virtual void SampleRateSet(double sampleRate) PURE_VIRTUAL;
1218 
1221  virtual double SampleRateGet() PURE_VIRTUAL;
1222 
1242  virtual int32_t AxisCountGet() PURE_VIRTUAL;
1243 
1265  virtual void AxisCountSet(int32_t axisCount) PURE_VIRTUAL;
1266 
1269  virtual void AxisCountSet(int32_t axisCount, bool setMotorFilterSupervisor) PURE_VIRTUAL;
1270 
1273  virtual bool IsLicensed() PURE_VIRTUAL;
1274 
1276  virtual int32_t PackageVariantGet() PURE_VIRTUAL;
1277 
1279  virtual int32_t AxisLicenseCountGet() PURE_VIRTUAL;
1280 
1282  virtual bool MechaWareLicenseGet() PURE_VIRTUAL;
1283 
1285  virtual int32_t UnsupportedOptionSet(int32_t option) PURE_VIRTUAL;
1286 
1313  virtual int32_t MotionCountGet() PURE_VIRTUAL;
1314 
1334  virtual void MotionCountSet(int32_t motionCount) PURE_VIRTUAL;
1335 
1363  virtual int32_t UserVersionGet() PURE_VIRTUAL;
1364 
1392  virtual void UserVersionSet(int32_t version) PURE_VIRTUAL;
1393 
1396  virtual int32_t ExternalMemorySizeGet() PURE_VIRTUAL;
1397 
1417  virtual void AxisFrameBufferSizeSet(int32_t axisNumber, int32_t frameBufferSize) PURE_VIRTUAL;
1418 
1435  virtual int32_t AxisFrameBufferSizeGet(int32_t axisNumber) PURE_VIRTUAL;
1437 
1442 
1443 
1444 
1465  virtual const char* const FirmwareVersionGet() PURE_VIRTUAL;
1466 
1487  virtual int32_t FirmwareOptionGet() PURE_VIRTUAL;
1488 
1490  virtual bool HasMechaWare() PURE_VIRTUAL;
1491 
1518  virtual int32_t MemoryGet(uint64_t address) PURE_VIRTUAL;
1519 
1520 
1541  virtual double MemoryDoubleGet(uint64_t address) PURE_VIRTUAL;
1542 
1571  virtual void MemoryBlockGet(uint64_t address, void* dataStart, int32_t size) PURE_VIRTUAL;
1572 
1590  virtual void MemorySet(uint64_t address, int32_t data) PURE_VIRTUAL;
1591 
1592 
1593 
1613  virtual void MemoryDoubleSet(uint64_t address, double dataDouble) PURE_VIRTUAL;
1614 
1643  virtual void MemoryBlockSet(uint64_t address, const void* const dataStart, int32_t size) PURE_VIRTUAL;
1644 
1666  virtual uint32_t FirmwareAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1667 
1668 
1669 
1670 
1696  virtual uint64_t HostAddressGet(uint32_t firmwareAddress) PURE_VIRTUAL;
1697 
1698 
1699 
1725  virtual int32_t BackgroundCycleCounterGet() PURE_VIRTUAL;
1726 
1727 
1728 
1729 
1741  virtual uint64_t AddressFromStringGet(const char* const addressName) PURE_VIRTUAL;
1742 
1743 
1744 
1755  virtual const char* const StringFromAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1756 
1774  virtual uint64_t AddressGet(RSIControllerAddressType type) PURE_VIRTUAL;
1775 
1796  virtual uint64_t AddressGet(RSIControllerAddressType type, int32_t objectIndex) PURE_VIRTUAL;
1797 
1798 
1814  virtual RSIDataType AddressDataTypeGet(RSIControllerAddressType type) PURE_VIRTUAL;
1815 
1832  virtual bool MotionHoldGateGet(int32_t gateNumber) PURE_VIRTUAL;
1833 
1834 
1835 
1854  virtual void MotionHoldGateSet(int32_t gateNumber, bool hold) PURE_VIRTUAL;
1856 
1861 
1863  virtual RSINetworkTechnologyType NetworkTechnologyTypeGet() PURE_VIRTUAL;
1864 
1866  virtual RSINetworkType NetworkTypeGet() PURE_VIRTUAL;
1867 
1870  virtual int32_t NetworkNodeCountGet() PURE_VIRTUAL;
1871 
1873  virtual void NetworkStart() PURE_VIRTUAL;
1874 
1883  virtual void NetworkStart(RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1884 
1887  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1888 
1891  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
1892 
1894  virtual void NetworkShutdown() PURE_VIRTUAL;
1895 
1898  virtual RSINetworkState NetworkStateGet() PURE_VIRTUAL;
1899 
1901  virtual int32_t NetworkCounterGet() PURE_VIRTUAL;
1902 
1904  virtual int32_t NetworkInputCountGet() PURE_VIRTUAL;
1905 
1907  virtual int32_t NetworkInputBitSizeGet(int32_t index) PURE_VIRTUAL;
1908 
1912  virtual const char* const NetworkInputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1913 
1916  virtual int32_t NetworkInputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1917 
1920  virtual const char* const NetworkInputNameGet(int32_t index) PURE_VIRTUAL;
1921 
1925  virtual uint64_t NetworkInputValueGet(int32_t index) PURE_VIRTUAL;
1926 
1927 
1928 
1932  virtual uint64_t NetworkInputAddressGet(int32_t index) PURE_VIRTUAL;
1933 
1937  virtual int32_t NetworkOutputCountGet() PURE_VIRTUAL;
1938 
1941  virtual int32_t NetworkOutputBitSizeGet(int32_t index) PURE_VIRTUAL;
1942 
1943 
1947  virtual const char* const NetworkOutputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1948 
1950  virtual int32_t NetworkOutputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1951 
1953  virtual const char* const NetworkOutputNameGet(int32_t index) PURE_VIRTUAL;
1954 
1971  virtual uint64_t NetworkOutputValueGet(int32_t index) PURE_VIRTUAL;
1972 
1990  virtual void NetworkOutputValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
1991 
2012  virtual uint64_t NetworkOutputAddressGet(int32_t index) PURE_VIRTUAL;
2013 
2016  virtual uint64_t NetworkOutputAddressGet(int32_t index, RSINetworkOutputAddressType type) PURE_VIRTUAL;
2017 
2029  virtual uint64_t NetworkOutputIntendedValueGet(int32_t index) PURE_VIRTUAL;
2030 
2043  virtual void NetworkOutputOverrideSet(int32_t index, bool outputOverride) PURE_VIRTUAL;
2044 
2056  virtual bool NetworkOutputOverrideGet(int32_t index) PURE_VIRTUAL;
2057 
2058 
2059 
2060 
2078  virtual void NetworkOutputOverrideValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
2079 
2093  virtual uint64_t NetworkOutputOverrideValueGet(int32_t index) PURE_VIRTUAL;
2094 
2110  virtual uint64_t NetworkOutputSentValueGet(int32_t index) PURE_VIRTUAL;
2111 
2115  virtual int32_t NetworkLogMessageCountGet() PURE_VIRTUAL;
2116 
2118  virtual RSINetworkStartError LastNetworkStartErrorGet() PURE_VIRTUAL;
2119 
2124  virtual const char* const NetworkLogMessageGet(int32_t messageIndex) PURE_VIRTUAL;
2125 
2127  virtual void NetworkTimingEnableSet(bool enable) PURE_VIRTUAL;
2128 
2130  virtual void NetworkTimingClear() PURE_VIRTUAL;
2131 
2133  virtual uint32_t NetworkTimingDeltaGet() PURE_VIRTUAL;
2134 
2136  virtual uint32_t NetworkTimingMinGet() PURE_VIRTUAL;
2137 
2139  virtual uint32_t NetworkTimingMaxGet() PURE_VIRTUAL;
2140 
2142  virtual void NetworkTimingThresholdLowSet(uint32_t microseconds) PURE_VIRTUAL;
2143 
2145  virtual void NetworkTimingThresholdHighSet(uint32_t microseconds) PURE_VIRTUAL;
2146 
2148  virtual uint32_t NetworkTimingThresholdLowCountGet() PURE_VIRTUAL;
2149 
2151  virtual uint32_t NetworkTimingThresholdHighCountGet() PURE_VIRTUAL;
2152 
2154  virtual bool NetworkSynchronizedGet() PURE_VIRTUAL;
2156 
2161 
2162 
2163 
2183  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
2184 
2185 
2186 
2187 
2209  virtual void InterruptWake() PURE_VIRTUAL;
2210 
2241  virtual void SyncInterruptEnableSet(bool enable) PURE_VIRTUAL;
2242 
2271  virtual void SyncInterruptPeriodSet(uint32_t samples) PURE_VIRTUAL;
2272 
2295  virtual int32_t SyncInterruptWait() PURE_VIRTUAL;
2296 
2298  virtual bool ServiceThreadStateGet() PURE_VIRTUAL;
2299 
2313  virtual int32_t SyncInterruptHostProcessTimeGet() PURE_VIRTUAL;
2314 
2315 
2316 
2318  virtual int32_t SyncInterruptHostProcessFlagGet() PURE_VIRTUAL;
2319 
2335  virtual void SyncInterruptHostProcessFlagSet(bool hostProcessFlag) PURE_VIRTUAL;
2336 
2350  virtual bool SyncInterruptHostProcessStatusBitGet() PURE_VIRTUAL;
2351 
2364  virtual void SyncInterruptHostProcessStatusClear() PURE_VIRTUAL;
2365 
2394 
2395  virtual void ServiceThreadEnableSet(bool enable) PURE_VIRTUAL;
2397 
2402 
2403 
2404 
2425  virtual int32_t RecorderCountGet() PURE_VIRTUAL;
2426 
2447  virtual void RecorderCountSet(int32_t recorderCount) PURE_VIRTUAL;
2448 
2467  virtual void RecorderPeriodSet(uint32_t samples) PURE_VIRTUAL;
2468 
2470  virtual void RecorderPeriodSet(int32_t recorderNumber, uint32_t samples) PURE_VIRTUAL;
2471 
2490  virtual void RecorderCircularBufferSet(bool enable) PURE_VIRTUAL;
2491 
2493  virtual void RecorderCircularBufferSet(int32_t recorderNumber, bool enable) PURE_VIRTUAL;
2494 
2512  virtual void RecorderDataCountSet(int32_t count) PURE_VIRTUAL;
2513 
2515  virtual void RecorderDataCountSet(int32_t recorderNumber,int32_t count) PURE_VIRTUAL;
2516 
2535  virtual void RecorderDataAddressSet(int32_t index, uint64_t address) PURE_VIRTUAL;
2536 
2538  virtual void RecorderDataAddressSet(int32_t recorderNumber,int32_t index, uint64_t address) PURE_VIRTUAL;
2539 
2540 
2546  virtual void RecorderDataAddressesSet(int32_t recorderNumber, const uint64_t* const addresses, int32_t addressCount) PURE_VIRTUAL;
2547 
2568  virtual void RecorderConfigureToTriggerOnMotion(Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2569 
2571  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2572 
2573 
2575  virtual void RecorderConfigureToTriggerOnMotion(MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2576 
2578  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2579 
2597  virtual bool RecorderEnabledGet() PURE_VIRTUAL;
2598 
2600  virtual bool RecorderEnabledGet(int32_t recorderNumber ) PURE_VIRTUAL;
2601 
2620  virtual int32_t RecorderRecordCountGet() PURE_VIRTUAL;
2621 
2623  virtual int32_t RecorderRecordCountGet(int32_t recorderNumber ) PURE_VIRTUAL;
2624 
2640  virtual int32_t RecorderRecordMaxCountGet() PURE_VIRTUAL;
2641 
2643  virtual int32_t RecorderRecordMaxCountGet(int32_t recorderNumber) PURE_VIRTUAL;
2644 
2661  virtual void RecorderStart() PURE_VIRTUAL;
2662 
2664  virtual void RecorderStart(int32_t recorderNumber) PURE_VIRTUAL;
2665 
2684  virtual void RecorderStop() PURE_VIRTUAL;
2685 
2687  virtual void RecorderStop(int32_t recorderNumber) PURE_VIRTUAL;
2688 
2689 
2690 
2708  virtual const int32_t* const RecorderRecordDataGet() PURE_VIRTUAL;
2709 
2711  virtual const int32_t* const RecorderRecordDataGet(int32_t recorderNumber) PURE_VIRTUAL;
2712 
2729  virtual void RecorderRecordDataRetrieve() PURE_VIRTUAL;
2730 
2752  virtual int32_t RecorderRecordDataRetrieveBulk(int32_t recorderNumber, int32_t recordCount) PURE_VIRTUAL;
2753 
2755  virtual void RecorderRecordDataRetrieve(int32_t recorderNumber) PURE_VIRTUAL;
2756 
2775  virtual int32_t RecorderRecordDataValueGet(int32_t index) PURE_VIRTUAL;
2776 
2778  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2779 
2800  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2801 
2803  virtual double RecorderRecordDataDoubleGet(int32_t index) PURE_VIRTUAL;
2804 
2806  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2807 
2828  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2829 
2849  virtual void RecorderBufferHighCountSet(int32_t bufferHighCount) PURE_VIRTUAL;
2850 
2852  virtual void RecorderBufferHighCountSet(int32_t recorderNumber, int32_t bufferHighCount) PURE_VIRTUAL;
2853 
2870  virtual void RecorderReset() PURE_VIRTUAL;
2871 
2873  virtual void RecorderReset(int32_t recorderNumber) PURE_VIRTUAL;
2874 
2888  virtual int32_t RecorderBufferSizeGet(int32_t recorderNumber) PURE_VIRTUAL;
2889 
2909  virtual void RecorderBufferSizeSet(int32_t recorderNumber, int32_t bufferSize) PURE_VIRTUAL;
2911 
2916 
2917 
2918 
2919 
2946  virtual int32_t CompensatorCountGet() PURE_VIRTUAL;
2947 
2969  virtual void CompensatorCountSet(int32_t compensatorCount) PURE_VIRTUAL;
2970 
2983  virtual int32_t CompensatorPointCountGet(int32_t compensatorNumber) PURE_VIRTUAL;
2984 
3007  virtual void CompensatorPointCountSet(int32_t compensatorNumber, int32_t pointCount) PURE_VIRTUAL;
3008 
3024  virtual int32_t CompensatorDimensionGet(int32_t compensatorNumber) PURE_VIRTUAL;
3025 
3050  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;
3051 
3052 
3053 
3083 
3084  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;
3085 
3086 
3107  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;
3108 
3109 
3110 
3131  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;
3132 
3146  virtual void CompensatorTableSet(int32_t compensatorNumber, const double* const table) PURE_VIRTUAL;
3147 
3161  virtual void CompensatorTableGet(int32_t compensatorNumber, double* table) PURE_VIRTUAL;
3162 
3183  virtual double CompensatorPositionGet(int32_t compensatorNumber) PURE_VIRTUAL;
3184 
3185 
3186 
3187 
3188 
3189 
3203 
3204  virtual void CompensatorTableClear(int32_t compensatorNumber) PURE_VIRTUAL;
3205 
3217  virtual void CompensatorDisable(int32_t compensatorNumber) PURE_VIRTUAL;
3218 
3221  virtual void CompensatorDisable(int32_t compensatorNumber, bool force) PURE_VIRTUAL;
3222 
3231  virtual void CompensatorEnable(int32_t compensatorNumber) PURE_VIRTUAL;
3232 
3234 
3239 
3240 
3241 
3263  virtual int32_t UserLimitCountGet() PURE_VIRTUAL;
3264 
3286  virtual void UserLimitCountSet(int32_t userLimitCount) PURE_VIRTUAL;
3287 
3309  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration, bool singleShot) PURE_VIRTUAL;
3310 
3313  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration) PURE_VIRTUAL;
3314 
3316  virtual RSIUserLimitTriggerType UserLimitTriggerTypeGet(int32_t number) PURE_VIRTUAL;
3317 
3319  virtual RSIAction UserLimitActionGet(int32_t number) PURE_VIRTUAL;
3320 
3322  virtual int32_t UserLimitAxisNumberGet(int32_t number) PURE_VIRTUAL;
3323 
3325  virtual double UserLimitDurationGet(int32_t number) PURE_VIRTUAL;
3326 
3328  virtual bool UserLimitSingleShotGet(int32_t number) PURE_VIRTUAL;
3329 
3356  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfUInt32, uint32_t userLimitMask, uint32_t limitValueUInt32) PURE_VIRTUAL;
3357 
3381  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfDouble, double limitValueDouble) PURE_VIRTUAL;
3382 
3384  virtual RSIDataType UserLimitConditionDataTypeGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3385 
3387  virtual RSIUserLimitLogic UserLimitConditionLogicGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3388 
3390  virtual uint64_t UserLimitConditionAddressGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3391 
3393  virtual uint32_t UserLimitConditionMaskGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3394 
3396  virtual int32_t UserLimitConditionLimitValueGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3397 
3399  virtual double UserLimitConditionLimitValueDoubleGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3400 
3429  virtual void UserLimitOutputSet(int32_t number, uint32_t andMask, uint32_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3430 
3433  virtual void UserLimitOutputSet(int32_t number, int32_t valueSet, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3434 
3437  virtual void UserLimitOutputSet(int32_t number, uint64_t andMask, uint64_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3438 
3441  virtual void UserLimitOutputSet(int32_t number, double limitValueDouble, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3442 
3460  virtual void UserLimitOutputSet(int32_t number, RSIDataType dataType, uint64_t inputPtr, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3461 
3462 
3463 
3465  virtual bool UserLimitOutputEnableGet(int32_t number) PURE_VIRTUAL;
3466 
3468  virtual RSIDataType UserLimitOutputDataTypeGet(int32_t number) PURE_VIRTUAL;
3469 
3471  virtual uint64_t UserLimitOutputAddressGet(int32_t number) PURE_VIRTUAL;
3472 
3474  virtual uint64_t UserLimitOutputInputAddressGet(int32_t number) PURE_VIRTUAL;
3475 
3477  virtual uint32_t UserLimitOutputAndMaskGet(int32_t number) PURE_VIRTUAL;
3478 
3480  virtual uint32_t UserLimitOutputOrMaskGet(int32_t number) PURE_VIRTUAL;
3481 
3483  virtual int32_t UserLimitOutputValueGet(int32_t number) PURE_VIRTUAL;
3484 
3486  virtual uint64_t UserLimitOutputAndMask64Get(int32_t number) PURE_VIRTUAL;
3487 
3489  virtual uint64_t UserLimitOutputOrMask64Get(int32_t number) PURE_VIRTUAL;
3490 
3491 
3493  virtual double UserLimitOutputDoubleGet(int32_t number) PURE_VIRTUAL;
3494 
3517  virtual bool UserLimitStateGet(int32_t number) PURE_VIRTUAL;
3518 
3541  virtual bool UserLimitEnableGet(int32_t number) PURE_VIRTUAL;
3542 
3544  virtual void UserLimitEnableSet(int32_t number, bool enable) PURE_VIRTUAL;
3545 
3562  virtual void UserLimitDisable(int32_t number) PURE_VIRTUAL;
3563 
3577  virtual void UserLimitReset(int32_t number) PURE_VIRTUAL;
3578 
3589 
3590  virtual int32_t UserLimitCountMax() PURE_VIRTUAL;
3591 
3611  virtual void UserLimitInterruptUserDataAddressSet(int32_t number, uint32_t userDataIndex, uint64_t address) PURE_VIRTUAL;
3612 
3614  virtual uint64_t UserLimitInterruptUserDataAddressGet(int32_t number, uint32_t userDataIndex) PURE_VIRTUAL;
3616 
3621 
3624 
3626 
3628  // Internal
3629  virtual RSIIMotionControllerInitializationState InitializationStateGet() PURE_VIRTUAL;
3630 
3635  static MotionController* CreateFromFile(const char* const fileName);
3636 
3639  static MotionController* CreateTrace();
3640 
3650  virtual void MemoryToFile(const char* const fileName) PURE_VIRTUAL;
3654 };
3655 
3657 
3660 class RSI_API RapidCodeNetworkNode : public virtual RapidCodeObject {
3661 public:
3662 
3667 
3669  static inline constexpr uint32_t SDOTimeoutMillisecondsDefault = 100;
3670 
3672 
3673 
3678 
3680  virtual bool Exists() PURE_VIRTUAL;
3681 
3683  virtual RSINodeType TypeGet() PURE_VIRTUAL;
3684 
3686  virtual bool IsEtherCAT() PURE_VIRTUAL;
3687 
3689  virtual bool IsSynqNet() PURE_VIRTUAL;
3690 
3692 
3697 
3699  virtual bool HasIO() PURE_VIRTUAL;
3700 
3702  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
3703 
3705  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
3706 
3708  virtual void DigitalOutSet(int32_t digitalOutNumber, bool state) PURE_VIRTUAL;
3709 
3711  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
3712 
3714  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
3715 
3717  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
3718 
3720 
3724 
3726  virtual int32_t DigitalInCountGet() PURE_VIRTUAL;
3727 
3729  virtual int32_t DigitalOutCountGet() PURE_VIRTUAL;
3730 
3732  virtual int32_t AnalogInCountGet() PURE_VIRTUAL;
3733 
3735  virtual int32_t AnalogOutCountGet() PURE_VIRTUAL;
3736 
3737 
3739  virtual int32_t SegmentCountGet() PURE_VIRTUAL;
3740 
3742  virtual int32_t SegmentDigitalInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3743 
3745  virtual int32_t SegmentDigitalOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3746 
3748  virtual int32_t SegmentAnalogInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3749 
3751  virtual int32_t SegmentAnalogOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3752 
3754  virtual int32_t SegmentIDGet(int32_t segmentNumber) PURE_VIRTUAL;
3755 
3771  virtual uint64_t DigitalInAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3772 
3788  virtual int32_t DigitalInMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3789 
3805  virtual uint64_t DigitalOutAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3806 
3822  virtual int32_t DigitalOutMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3823 
3839  virtual uint64_t AnalogInAddressGet(int32_t channel) PURE_VIRTUAL;
3840 
3856  virtual int32_t AnalogInMaskGet(int32_t channel) PURE_VIRTUAL;
3857 
3873  virtual uint64_t AnalogOutAddressGet(int32_t channel) PURE_VIRTUAL;
3874 
3890  virtual int32_t AnalogOutMaskGet(int32_t channel) PURE_VIRTUAL;
3891 
3904  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3905 
3909  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3910 
3924 // RapidCodeEtherCATNode
3925  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3926 
3930  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3931 
3948  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue) PURE_VIRTUAL;
3949 
3950 
3955  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3956 
3970  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue) PURE_VIRTUAL;
3971 
3979  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3980 
3986  virtual char* AKDASCIICommand(const char* const command) PURE_VIRTUAL;
3987 
3989  virtual void ClearFaults(int32_t axisNumber) PURE_VIRTUAL;
3990 
3992  virtual uint32_t VendorIdGet() PURE_VIRTUAL;
3993 
4007  virtual const char* const NameGet() PURE_VIRTUAL;
4008 
4022  virtual const char* const ProductNameGet() PURE_VIRTUAL;
4023 
4037  virtual const char* const VendorNameGet() PURE_VIRTUAL;
4038 
4040  virtual uint32_t ProductCodeGet() PURE_VIRTUAL;
4041 
4043  virtual uint32_t RevisionGet() PURE_VIRTUAL;
4044 
4046  virtual uint32_t StationAliasGet() PURE_VIRTUAL;
4047 
4049  virtual const char* const SerialNumberGet() PURE_VIRTUAL;
4050 
4052  virtual uint32_t AxisCountGet() PURE_VIRTUAL;
4053 
4055  virtual uint16_t StatusWordGet(int32_t axisIndex) PURE_VIRTUAL;
4056 };
4057 
4059 
4063 class RSI_API IO : public virtual RapidCodeObject {
4064 public:
4065 
4066  friend class MotionController;
4067 
4072 
4074  RapidCodeNetworkNode* NetworkNode;
4077 
4079 
4084 
4085 
4086 
4122  virtual bool IOExists() PURE_VIRTUAL;
4123 
4141  virtual int32_t NumberGet() PURE_VIRTUAL;
4143 
4148 
4149 
4150 
4182  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
4183 
4218  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
4219 
4252  virtual void DigitalOutSet(int32_t digitalOutNumber, bool outValue) PURE_VIRTUAL;
4253 
4278  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
4279 
4313  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
4314 
4348  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
4350 
4352  virtual const char* const UserLabelGet() PURE_VIRTUAL;
4353  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
4354 };
4355 
4357 
4360 class RSI_API RapidCodeMotion : public virtual RapidCodeInterrupt{
4361 public:
4362 
4368 
4371 
4373 
4374 
4378 
4397  virtual int32_t NumberGet() PURE_VIRTUAL;
4398 
4416  virtual int32_t AxisCountGet() PURE_VIRTUAL;
4417 
4421 
4448  virtual void TriggeredModify() PURE_VIRTUAL;
4449 
4478  virtual void Stop() PURE_VIRTUAL;
4479 
4506  virtual void Resume() PURE_VIRTUAL;
4507 
4534  virtual void EStop() PURE_VIRTUAL;
4535 
4558  virtual void EStopAbort() PURE_VIRTUAL;
4559 
4578  virtual void EStopModify() PURE_VIRTUAL;
4579 
4582  virtual void EStopModifyAbort() PURE_VIRTUAL;
4583 
4607  virtual void Abort() PURE_VIRTUAL;
4608 
4637  virtual void ClearFaults() PURE_VIRTUAL;
4638 
4667  virtual void AmpEnableSet(bool enable) PURE_VIRTUAL;
4668 
4700  virtual int32_t AmpEnableSet(bool enable, int32_t ampActiveTimeoutMilliseconds) PURE_VIRTUAL;
4701 
4724 
4725  virtual void Map() PURE_VIRTUAL;
4726 
4747  virtual void Unmap() PURE_VIRTUAL;
4748 
4754  virtual bool IsMapped() PURE_VIRTUAL;
4755 
4774  virtual void FeedRateSet(double rate) PURE_VIRTUAL;
4775 
4796  virtual double FeedRateGet() PURE_VIRTUAL;
4797 
4801 
4802 
4803 
4804 
4826  virtual RSIState StateGet() PURE_VIRTUAL;
4827 
4841 
4843 
4864  virtual RSISource SourceGet() PURE_VIRTUAL;
4865 
4897  virtual const char* const SourceNameGet(RSISource source) PURE_VIRTUAL;
4898 
4923  virtual int32_t MotionDoneWait() PURE_VIRTUAL;
4924 
4953  virtual int32_t MotionDoneWait(int32_t waitTimeoutMilliseconds) PURE_VIRTUAL;
4954 
4977  virtual bool MotionDoneGet() PURE_VIRTUAL;
4978 
5003 
5004  virtual bool StatusBitGet(RSIEventType bitMask) PURE_VIRTUAL;
5005 
5009 
5010 
5011 
5041  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
5042 
5043 
5044 
5059  virtual void InterruptWake() PURE_VIRTUAL;
5060 
5064 
5065 
5066 
5084  virtual double StopTimeGet() PURE_VIRTUAL;
5085 
5103  virtual void StopTimeSet(double seconds) PURE_VIRTUAL;
5104 
5122  virtual double EStopTimeGet() PURE_VIRTUAL;
5123 
5141  virtual void EStopTimeSet(double seconds) PURE_VIRTUAL;
5142 
5161  virtual double MotionDelayGet() PURE_VIRTUAL;
5162 
5185  virtual void MotionDelaySet(double seconds) PURE_VIRTUAL;
5186 
5209  virtual uint16_t MotionIdGet() PURE_VIRTUAL;
5210 
5230  virtual void MotionIdSet(uint16_t id) PURE_VIRTUAL;
5231 
5233  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
5234 
5236  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
5237 
5253  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
5254 
5263  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
5264 
5286  virtual RSIMotionHoldType MotionHoldTypeGet() PURE_VIRTUAL;
5287 
5322  virtual void MotionHoldTypeSet(RSIMotionHoldType type) PURE_VIRTUAL;
5323 
5337  virtual int32_t MotionHoldGateNumberGet() PURE_VIRTUAL;
5338 
5359 
5360  virtual void MotionHoldGateNumberSet(int32_t gateNumber) PURE_VIRTUAL;
5361 
5380  virtual double MotionHoldTimeoutGet() PURE_VIRTUAL;
5381 
5402  virtual void MotionHoldTimeoutSet(double seconds) PURE_VIRTUAL;
5403 
5429  virtual bool MotionHoldGateGet() PURE_VIRTUAL;
5430 
5455  virtual void MotionHoldGateSet(bool hold) PURE_VIRTUAL;
5456 
5475  virtual int32_t MotionHoldAxisNumberGet() PURE_VIRTUAL;
5476 
5495  virtual void MotionHoldAxisNumberSet(int32_t number) PURE_VIRTUAL;
5496 
5515 
5516  virtual double MotionHoldAxisPositionGet() PURE_VIRTUAL;
5517 
5536  virtual void MotionHoldAxisPositionSet(double position) PURE_VIRTUAL;
5537 
5539  virtual RSIUserLimitLogic MotionHoldAxisLogicGet() PURE_VIRTUAL;
5540 
5542  virtual void MotionHoldAxisLogicSet(RSIUserLimitLogic logic) PURE_VIRTUAL;
5543 
5562  virtual uint64_t MotionHoldUserAddressGet() PURE_VIRTUAL;
5563 
5582  virtual void MotionHoldUserAddressSet(uint64_t address) PURE_VIRTUAL;
5583 
5601  virtual int32_t MotionHoldUserMaskGet() PURE_VIRTUAL;
5602 
5620  virtual void MotionHoldUserMaskSet(int32_t holdMask) PURE_VIRTUAL;
5621 
5639  virtual int32_t MotionHoldUserPatternGet() PURE_VIRTUAL;
5640 
5658  virtual void MotionHoldUserPatternSet(int32_t pattern) PURE_VIRTUAL;
5659 
5661  virtual void MotionAttributeMaskDefaultSet() PURE_VIRTUAL;
5662 
5689 
5690  virtual bool MotionAttributeMaskOnGet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5691 
5712  virtual void MotionAttributeMaskOnSet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5713 
5732 
5733  virtual void MotionAttributeMaskOffSet(RSIMotionAttrMask maskOff) PURE_VIRTUAL;
5734 
5738 
5739 
5740 
5773  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;
5774 
5808  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;
5809 
5833  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;
5834 
5839  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address) PURE_VIRTUAL;
5840 
5864  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address, int32_t ptPointIndex) PURE_VIRTUAL;
5865 
5869  // @see StreamingOutputAdd
5870  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on) PURE_VIRTUAL;
5871 
5892  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on, int32_t ptPointIndex) PURE_VIRTUAL;
5893 
5910  virtual void StreamingOutputsClear() PURE_VIRTUAL;
5911 
5932  virtual void StreamingOutputsEnableSet(bool enable) PURE_VIRTUAL;
5933 };
5934 
5943 class RSI_API Axis : public virtual RapidCodeMotion{
5944 public:
5945 
5946  friend class MotionController;
5947  friend class MultiAxis;
5948 
5949 
5954 
5956  static inline constexpr uint32_t NetworkIndexInvalid = 65535;
5957 
5959  static inline constexpr double AmpEnableAmpFaultTimeoutSecondsDefault = 1.0;
5960 
5962 
5963 
5968 
5970  RapidCodeNetworkNode* NetworkNode;
5971 
5973 
5978 
6017  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel) PURE_VIRTUAL;
6018 
6041  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel) PURE_VIRTUAL;
6042 
6066  virtual void MoveTrapezoidal(double position) PURE_VIRTUAL; // use defaults Overload
6067  //virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel, bool checkLimits) PURE_VIRTUAL;
6068 
6108  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6109 
6114  virtual void MoveSCurve(double position) PURE_VIRTUAL;
6115 
6125  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6126 
6130  virtual void MoveVelocity(double velocity) PURE_VIRTUAL;
6131 
6167  virtual void MoveVelocity(double velocity, double accel) PURE_VIRTUAL;
6168 
6206  virtual void MoveVelocitySCurve(double velocity, double accel, double jerkPct) PURE_VIRTUAL;
6207 
6247  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6248 
6252  virtual void MoveRelative(double releativePosition) PURE_VIRTUAL;
6253 
6257  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6259 
6264 
6292  virtual void PositionSet(double position) PURE_VIRTUAL;
6293 
6317  virtual double ActualPositionGet() PURE_VIRTUAL;
6318 
6343  virtual void ActualPositionSet(double position) PURE_VIRTUAL;
6344 
6364  virtual double CompensationPositionGet() PURE_VIRTUAL;
6365 
6381  virtual void CompensationPositionSet(double position) PURE_VIRTUAL;
6382 
6397  virtual double TargetPositionGet() PURE_VIRTUAL;
6398 
6424 
6425  virtual double CommandPositionGet() PURE_VIRTUAL;
6426 
6463  virtual void CommandPositionSet(double position) PURE_VIRTUAL;
6464 
6491  virtual void CommandPositionDirectSet(double position) PURE_VIRTUAL;
6492 
6514  virtual double OriginPositionGet() PURE_VIRTUAL;
6515 
6541  virtual void OriginPositionSet(double position) PURE_VIRTUAL;
6542 
6566  virtual double PositionErrorGet() PURE_VIRTUAL;
6567 
6592  virtual double CommandVelocityGet() PURE_VIRTUAL;
6593 
6619  virtual double ActualVelocityGet() PURE_VIRTUAL;
6620 
6644  virtual double CommandAccelGet() PURE_VIRTUAL;
6645 
6647  virtual double CommandJerkGet() PURE_VIRTUAL;
6648 
6672  virtual double EncoderPositionGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
6673 
6698  virtual double UserUnitsGet() PURE_VIRTUAL;
6699 
6725  virtual void UserUnitsSet(double countsPerUserUnit) PURE_VIRTUAL;
6726 
6728  virtual double UserUnitsToCounts(double userUnits) PURE_VIRTUAL;
6729 
6731  virtual double CountsToUserUnits(double counts) PURE_VIRTUAL;
6732 
6754  virtual int32_t FramesToExecuteGet() PURE_VIRTUAL;
6756 
6761 
6784 
6785  virtual void Home() PURE_VIRTUAL; // this one moves to zero by default
6786 
6790  virtual void Home(bool moveToZero) PURE_VIRTUAL;
6791 
6812 
6813  virtual RSIHomeMethod HomeMethodGet() PURE_VIRTUAL;
6814 
6835 
6836  virtual void HomeMethodSet(RSIHomeMethod method) PURE_VIRTUAL;
6837 
6860 
6861  virtual double HomeOffsetGet() PURE_VIRTUAL;
6862 
6883 
6884  virtual void HomeOffsetSet(double offset) PURE_VIRTUAL;
6885 
6906 
6907  virtual double HomeVelocityGet() PURE_VIRTUAL;
6908 
6911  virtual double HomeVelocityGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6912 
6936 
6937  virtual void HomeVelocitySet(double velocity) PURE_VIRTUAL;
6938 
6941  virtual void HomeVelocitySet(RSIHomeStage homeStage, double velocity) PURE_VIRTUAL;
6942 
6961  virtual double HomeSlowVelocityGet() PURE_VIRTUAL;
6962 
6980  virtual void HomeSlowVelocitySet(double velocity) PURE_VIRTUAL;
6981 
7002 
7003  virtual double HomeAccelerationGet() PURE_VIRTUAL;
7004 
7006  virtual double HomeAccelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
7007 
7030 
7031  virtual void HomeAccelerationSet(double accel) PURE_VIRTUAL;
7032 
7034  virtual void HomeAccelerationSet(RSIHomeStage homeStage, double accel) PURE_VIRTUAL;
7035 
7055 
7056  virtual double HomeDecelerationGet() PURE_VIRTUAL;
7057 
7059  virtual double HomeDecelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
7060 
7082 
7083  virtual void HomeDecelerationSet(double decel) PURE_VIRTUAL;
7084 
7086  virtual void HomeDecelerationSet(RSIHomeStage homeStage, double decel) PURE_VIRTUAL;
7087 
7108 
7109  virtual double HomeJerkPercentGet() PURE_VIRTUAL;
7110 
7112  virtual double HomeJerkPercentGet(RSIHomeStage homeStage) PURE_VIRTUAL;
7113 
7136 
7137  virtual void HomeJerkPercentSet(double percent) PURE_VIRTUAL;
7138 
7141  virtual void HomeJerkPercentSet(RSIHomeStage homeStage, double percent) PURE_VIRTUAL;
7142 
7164  virtual void HomeCancelSet(bool cancel) PURE_VIRTUAL;
7165 
7186  virtual bool HomeStateGet() PURE_VIRTUAL;
7187 
7201  virtual void HomeStateSet(bool homed) PURE_VIRTUAL;
7202 
7207  virtual void HomeLimitCustomConfigSet(uint64_t address, int32_t bitIndex) PURE_VIRTUAL;
7208 
7210  virtual void HomeLimitCustomConfigReset() PURE_VIRTUAL;
7211 
7213  virtual uint64_t HomeLimitCustomConfigAddressGet() PURE_VIRTUAL;
7214 
7217  virtual int32_t HomeLimitCustomConfigBitIndexGet() PURE_VIRTUAL;
7218 
7242 
7243  virtual void HomeTravelDistanceSet(RSIHomeStage stage, double distanceToTravel) PURE_VIRTUAL;
7244 
7266 
7267  virtual RSIHomeStage HomeStageGet() PURE_VIRTUAL;
7268 
7284  virtual void HomeBehaviorSet(RSIAction behavior) PURE_VIRTUAL;
7285 
7299  virtual RSIAction HomeBehaviorGet() PURE_VIRTUAL;
7301 
7307 
7309  virtual bool FaultMaskBitGet(RSIMotorFaultMask bitMask) PURE_VIRTUAL;
7310 
7312  virtual uint16_t StatusWordGet() PURE_VIRTUAL;
7314 
7319  // reads active configuration to report state
7320 
7346 
7347  virtual bool NegativeLimitGet() PURE_VIRTUAL;
7348 
7374  virtual bool PositiveLimitGet() PURE_VIRTUAL;
7375 
7406  virtual bool HomeLimitGet() PURE_VIRTUAL;
7407 
7437  virtual bool HomeSwitchGet() PURE_VIRTUAL;
7438 
7461  virtual bool AmpFaultGet() PURE_VIRTUAL;
7462 
7488  virtual bool AmpEnableGet() PURE_VIRTUAL;
7489 
7516  virtual bool DedicatedInExists(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7517 
7544  virtual bool DedicatedOutExists(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7545 
7570  virtual bool DedicatedInGet(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7571 
7596  virtual bool DedicatedOutGet(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7598 
7603 
7626  virtual bool DigitalInGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7627 
7650  virtual bool DigitalOutGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7651 
7674 
7675  virtual void DigitalOutSet(RSIMotorGeneralIo motorGeneralIoNumber, bool outValue) PURE_VIRTUAL;
7676 
7697  virtual bool DigitalIoExists(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7698 
7719  virtual const char* const DigitalIoNameGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7720 
7745  virtual RSIMotorIoTypeMask DigitalIoValidTypesMaskGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7746 
7767  virtual void DigitalIoTypeSet(RSIMotorGeneralIo motorGeneralIoNumber, RSIMotorIoType type) PURE_VIRTUAL;
7768 
7787  virtual double AnalogInGet(int32_t channel) PURE_VIRTUAL;
7789 
7794 
7811  virtual double EStopDecelerationGet() PURE_VIRTUAL;
7812 
7830  virtual void EStopDecelerationSet(double decel) PURE_VIRTUAL;
7831 
7845  virtual double EStopJerkPercentGet() PURE_VIRTUAL;
7846 
7867  virtual void EStopJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7868 
7881  virtual double TriggeredModifyDecelerationGet() PURE_VIRTUAL;
7882 
7903  virtual void TriggeredModifyDecelerationSet(double decel) PURE_VIRTUAL;
7904 
7918  virtual double TriggeredModifyJerkPercentGet() PURE_VIRTUAL;
7919 
7940  virtual void TriggeredModifyJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7941 
7960  virtual int32_t FrameBufferSizeGet() PURE_VIRTUAL;
7961 
7978  virtual void FrameBufferSizeSet(int32_t frameSize) PURE_VIRTUAL;
7979 
8001  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
8002 
8025  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
8027 
8032 
8034  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
8035 
8037  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
8038 
8040  virtual double DefaultVelocityGet() PURE_VIRTUAL;
8041 
8043  virtual void DefaultVelocitySet(double velocity) PURE_VIRTUAL;
8044 
8046  virtual double DefaultAccelerationGet() PURE_VIRTUAL;
8047 
8049  virtual void DefaultAccelerationSet(double acceleration) PURE_VIRTUAL;
8050 
8052  virtual double DefaultDecelerationGet() PURE_VIRTUAL;
8053 
8055  virtual void DefaultDecelerationSet(double deceleration) PURE_VIRTUAL;
8056 
8058  virtual double DefaultJerkPercentGet() PURE_VIRTUAL;
8059 
8061  virtual void DefaultJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
8062 
8064  virtual double DefaultPosition1Get() PURE_VIRTUAL;
8065 
8067  virtual void DefaultPosition1Set(double position1) PURE_VIRTUAL;
8068 
8070  virtual double DefaultPosition2Get() PURE_VIRTUAL;
8071 
8073  virtual void DefaultPosition2Set(double position2) PURE_VIRTUAL;
8074 
8076  virtual double DefaultRelativeIncrementGet() PURE_VIRTUAL;
8077 
8079  virtual void DefaultRelativeIncrementSet(double relativeIncrement) PURE_VIRTUAL;
8081 
8085  // /@{
8086 
8111  virtual RSIAction AmpFaultActionGet() PURE_VIRTUAL;
8112 
8137  virtual void AmpFaultActionSet(RSIAction action) PURE_VIRTUAL;
8138 
8162  virtual bool AmpFaultTriggerStateGet() PURE_VIRTUAL;
8163 
8187  virtual void AmpFaultTriggerStateSet(bool state) PURE_VIRTUAL;
8188 
8211  virtual double AmpFaultDurationGet() PURE_VIRTUAL;
8212 
8235  virtual void AmpFaultDurationSet(double seconds) PURE_VIRTUAL;
8236 
8263  virtual RSIAction HomeActionGet() PURE_VIRTUAL;
8264 
8290  virtual void HomeActionSet(RSIAction action) PURE_VIRTUAL;
8291 
8319  virtual bool HomeTriggerStateGet() PURE_VIRTUAL;
8320 
8343  virtual void HomeTriggerStateSet(bool state) PURE_VIRTUAL;
8344 
8368  virtual double HomeDurationGet() PURE_VIRTUAL;
8369 
8394  virtual void HomeDurationSet(double seconds) PURE_VIRTUAL;
8395 
8426  virtual RSIAction ErrorLimitActionGet() PURE_VIRTUAL;
8427 
8456  virtual void ErrorLimitActionSet(RSIAction action) PURE_VIRTUAL;
8457 
8482  virtual double ErrorLimitTriggerValueGet() PURE_VIRTUAL;
8483 
8507  virtual void ErrorLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8508 
8532  virtual double ErrorLimitDurationGet() PURE_VIRTUAL;
8533 
8558  virtual void ErrorLimitDurationSet(double seconds) PURE_VIRTUAL;
8559 
8586  virtual RSIAction HardwareNegLimitActionGet() PURE_VIRTUAL;
8587 
8614  virtual void HardwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8615 
8641  virtual bool HardwareNegLimitTriggerStateGet() PURE_VIRTUAL;
8642 
8668  virtual void HardwareNegLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8669 
8694  virtual double HardwareNegLimitDurationGet() PURE_VIRTUAL;
8695 
8720 
8721  virtual void HardwareNegLimitDurationSet(double seconds) PURE_VIRTUAL;
8722 
8749  virtual RSIAction HardwarePosLimitActionGet() PURE_VIRTUAL;
8750 
8777  virtual void HardwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
8778 
8799  virtual bool HardwarePosLimitTriggerStateGet() PURE_VIRTUAL;
8800 
8826  virtual void HardwarePosLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8827 
8852  virtual double HardwarePosLimitDurationGet() PURE_VIRTUAL;
8853 
8878  virtual void HardwarePosLimitDurationSet(double seconds) PURE_VIRTUAL;
8879 
8907  virtual RSIAction SoftwareNegLimitActionGet() PURE_VIRTUAL;
8908 
8934  virtual void SoftwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8935 
8960  virtual double SoftwareNegLimitTriggerValueGet() PURE_VIRTUAL;
8961 
8986  virtual void SoftwareNegLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8987 
9013  virtual RSIAction SoftwarePosLimitActionGet() PURE_VIRTUAL;
9014 
9040  virtual void SoftwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
9041 
9066  virtual double SoftwarePosLimitTriggerValueGet() PURE_VIRTUAL;
9067 
9092  virtual void SoftwarePosLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
9093 
9121  virtual RSIAction EncoderFaultActionGet() PURE_VIRTUAL;
9122 
9149  virtual void EncoderFaultActionSet(RSIAction action) PURE_VIRTUAL;
9150 
9176  virtual RSIMotorFeedbackFault EncoderFaultTriggerGet() PURE_VIRTUAL;
9177 
9201  virtual void EncoderFaultTriggerSet(RSIMotorFeedbackFault encoder) PURE_VIRTUAL;
9202 
9226  virtual double EncoderFaultDurationGet() PURE_VIRTUAL;
9227 
9251  virtual void EncoderFaultDurationSet(double seconds) PURE_VIRTUAL;
9252 
9254  virtual RSIAction NodeFailureActionGet() PURE_VIRTUAL;
9255 
9257  virtual void NodeFailureActionSet(RSIAction action) PURE_VIRTUAL;
9258 
9276  virtual uint64_t AddressGet( RSIAxisAddressType addressType) PURE_VIRTUAL;
9277 
9292  virtual RSIDataType AddressDataTypeGet(RSIAxisAddressType type) PURE_VIRTUAL;
9293 
9294  // common limit methods
9295 
9297  virtual RSIAction LimitActionGet(RSIEventType limit) PURE_VIRTUAL;
9298 
9300  virtual void LimitActionSet(RSIEventType limit, RSIAction action) PURE_VIRTUAL;
9301 
9303  virtual bool LimitTriggerStateGet(RSIEventType limit) PURE_VIRTUAL;
9304 
9306  virtual void LimitTriggerStateSet(RSIEventType limit, bool triggerState) PURE_VIRTUAL;
9307 
9309  virtual double LimitTriggerValueGet(RSIEventType limit) PURE_VIRTUAL;
9310 
9312  virtual void LimitTriggerValueSet(RSIEventType limit, double triggerValue) PURE_VIRTUAL;
9313 
9315  virtual double LimitDurationGet(RSIEventType limit) PURE_VIRTUAL;
9316 
9318  virtual void LimitDurationSet(RSIEventType limit, double seconds) PURE_VIRTUAL;
9320 
9325 
9342  virtual double PositionToleranceFineGet() PURE_VIRTUAL;
9343 
9360  virtual void PositionToleranceFineSet(double tolerance) PURE_VIRTUAL;
9361 
9378  virtual double PositionToleranceCoarseGet() PURE_VIRTUAL;
9379 
9398 
9399  virtual void PositionToleranceCoarseSet(double tolerance) PURE_VIRTUAL;
9400 
9417  virtual double VelocityToleranceGet() PURE_VIRTUAL;
9418 
9435  virtual void VelocityToleranceSet(double tolerance) PURE_VIRTUAL;
9436 
9454  virtual double SettlingTimeGet() PURE_VIRTUAL;
9455 
9473  virtual void SettlingTimeSet(double time) PURE_VIRTUAL;
9474 
9494  virtual bool SettleOnStopGet() PURE_VIRTUAL;
9495 
9515 
9516  virtual void SettleOnStopSet(bool state) PURE_VIRTUAL;
9517 
9537  virtual bool SettleOnEStopGet() PURE_VIRTUAL;
9538 
9557  virtual void SettleOnEStopSet(bool state) PURE_VIRTUAL;
9558 
9578  virtual bool SettleOnEStopCmdEqActGet() PURE_VIRTUAL;
9579 
9598  virtual void SettleOnEStopCmdEqActSet(bool state) PURE_VIRTUAL;
9600 
9605 
9625  virtual RSIMotorType MotorTypeGet() PURE_VIRTUAL;
9626 
9645  virtual void MotorTypeSet(RSIMotorType type) PURE_VIRTUAL;
9646 
9666  virtual RSIMotorDisableAction AmpDisableActionGet() PURE_VIRTUAL;
9667 
9686  virtual void AmpDisableActionSet(RSIMotorDisableAction action) PURE_VIRTUAL;
9687 
9708 
9709  virtual RSIMotorBrakeMode BrakeModeGet() PURE_VIRTUAL;
9710 
9729  virtual void BrakeModeSet(RSIMotorBrakeMode mode) PURE_VIRTUAL;
9730 
9749  virtual double BrakeApplyDelayGet() PURE_VIRTUAL;
9750 
9751 
9771  virtual void BrakeApplyDelaySet(double seconds) PURE_VIRTUAL;
9772 
9791  virtual double BrakeReleaseDelayGet() PURE_VIRTUAL;
9792 
9813  virtual void BrakeReleaseDelaySet(double seconds) PURE_VIRTUAL;
9814 
9816  virtual void ClosedLoopStepperSet(bool enable) PURE_VIRTUAL;
9817 
9819  virtual int32_t ClosedLoopStepperVersionGet() PURE_VIRTUAL;
9820 
9822  virtual uint64_t EncoderPointerGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9823 
9825  virtual void EncoderPointerSet(RSIMotorFeedback encoder, uint64_t address) PURE_VIRTUAL;
9826 
9828  virtual uint64_t FeedbackDeltaPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9829 
9830 
9832  virtual void FeedbackDeltaPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9833 
9835  virtual uint64_t FeedbackPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9836 
9857  virtual void FeedbackPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9858 
9860  virtual int32_t EncoderRatioNumeratorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9861 
9863  virtual int32_t EncoderRatioDenominatorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9864 
9889  virtual void EncoderRatioSet(RSIMotorFeedback encoder, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9890 
9892  virtual const char* const EncoderRatioPrimaryGet() PURE_VIRTUAL;
9893 
9895  virtual void EncoderRatioPrimarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9896 
9898  virtual const char* const EncoderRatioSecondaryGet() PURE_VIRTUAL;
9899 
9901  virtual void EncoderRatioSecondarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9902 
9904  virtual int32_t EncoderCountGet() PURE_VIRTUAL;
9905 
9908  virtual void EncoderCountSet(int32_t count) PURE_VIRTUAL;
9909 
9911  virtual RSIAxisGantryType GantryTypeGet() PURE_VIRTUAL;
9912 
9914  virtual void GantryTypeSet(RSIAxisGantryType type) PURE_VIRTUAL;
9915 
9932  virtual RSIOperationMode OperationModeGet() PURE_VIRTUAL;
9933 
9950  virtual void OperationModeSet(RSIOperationMode mode) PURE_VIRTUAL;
9951 
9974  virtual int32_t MotorFaultMaskGet() PURE_VIRTUAL;
9975 
10004  virtual void MotorFaultMaskSet(int32_t faultMask) PURE_VIRTUAL;
10006 
10011 
10034  virtual void GearingEnable(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
10035 
10039  virtual void GearingEnable(Axis* masterAxis, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
10040 
10061  virtual void GearingRatioChange(int32_t numerator, int32_t denominator) PURE_VIRTUAL;
10062 
10081  virtual void GearingDisable() PURE_VIRTUAL;
10082 
10084  virtual int32_t GearingNumeratorGet() PURE_VIRTUAL;
10085 
10087  virtual int32_t GearingDenominatorGet() PURE_VIRTUAL;
10088 
10090  virtual bool GearingEnableGet() PURE_VIRTUAL;
10091 
10111  virtual int32_t GearingMasterAxisNumberGet() PURE_VIRTUAL;
10112 
10127  virtual RSIAxisMasterType GearingSourceGet() PURE_VIRTUAL;
10129 
10134 
10153  virtual double MotionCamMasterStartGet(Axis* master) PURE_VIRTUAL;
10154 
10171  virtual void MotionCamMasterStartSet(Axis* master, double startPosition) PURE_VIRTUAL;
10172 
10191  virtual int32_t MotionCamRepeatFromGet() PURE_VIRTUAL;
10192 
10212  virtual void MotionCamRepeatFromSet(int32_t repeatFrom) PURE_VIRTUAL;
10213 
10233  virtual void MotionCamRepeatStop() PURE_VIRTUAL;
10234 
10259  virtual void MoveCamLinear(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, const double* const masterDistances, const double* const slavePositions, int32_t pointCount) PURE_VIRTUAL;
10260 
10292  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;
10293 
10313 
10314  virtual int32_t DriveIndexGet() PURE_VIRTUAL;
10316 
10321 
10337  virtual double BacklashWidthGet() PURE_VIRTUAL;
10338 
10354  virtual void BacklashWidthSet(double width) PURE_VIRTUAL;
10355 
10371  virtual double BacklashRateGet() PURE_VIRTUAL;
10372 
10388  virtual void BacklashRateSet(double rate) PURE_VIRTUAL;
10389 
10390 
10404  virtual double BacklashValueGet() PURE_VIRTUAL;
10405 
10407 
10412 
10443  virtual RSIFilterAlgorithm FilterAlgorithmGet() PURE_VIRTUAL;
10444 
10474  virtual void FilterAlgorithmSet(RSIFilterAlgorithm algorithm) PURE_VIRTUAL;
10475 
10504  virtual double FilterCoeffGet(RSIFilterGainPIDCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10505 
10531  virtual void FilterCoeffSet(RSIFilterGainPIDCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10532 
10535  virtual double FilterCoeffGet(RSIFilterGainPIVCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10536 
10540  virtual void FilterCoeffSet(RSIFilterGainPIVCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10541 
10579  virtual int32_t FilterGainTableGet() PURE_VIRTUAL;
10580 
10612  virtual void FilterGainTableSet(int32_t gainTable) PURE_VIRTUAL;
10613 
10633  virtual int32_t FilterGainTableSizeGet() PURE_VIRTUAL;
10634 
10636  virtual double FilterOutputGet(void) PURE_VIRTUAL;
10637 
10653  virtual double FilterLowPassGet() PURE_VIRTUAL;
10654 
10673  virtual void FilterLowPassSet(double frequency) PURE_VIRTUAL;
10674 
10696  virtual void FilterDualLoopSet(Axis* velocityAxis, RSIMotorFeedback velocityEncoder, bool enable) PURE_VIRTUAL;
10697 
10698 
10700  virtual bool FilterGainSchedulingGet() PURE_VIRTUAL;
10701 
10702 
10704  virtual void FilterGainSchedulingSet(bool enable) PURE_VIRTUAL;
10705 
10707  virtual bool IsTuneable() PURE_VIRTUAL;
10708 
10728  virtual void PostFilterLowPassSet(int32_t sectionNumber, double frequency) PURE_VIRTUAL;
10729 
10748  virtual void PostFilterUnityGainSet(int32_t sectionNumber) PURE_VIRTUAL;
10749 
10771  virtual void PostFilterSingleOrderSet(int32_t sectionNumber, double aOne, double bZero, double bOne) PURE_VIRTUAL;
10772 
10788  virtual void PostFilterHighPassSet(int32_t sectionNumber, double cornerFreq) PURE_VIRTUAL;
10789 
10810  virtual void PostFilterNotchSet(int32_t sectionNumber, double centerFreq, double bandwidth) PURE_VIRTUAL;
10811 
10833  virtual void PostFilterResonatorSet(int32_t sectionNumber, double centerFreq, double bandwidth, double gain) PURE_VIRTUAL;
10834 
10856  virtual void PostFilterLeadLagSet(int32_t sectionNumber, double lowGain, double highGain, double centerFreq) PURE_VIRTUAL;
10857 
10876  virtual void PostFilterClear(int32_t sectionNumber) PURE_VIRTUAL;
10877 
10901  virtual void PostFilterBiquadSet(int32_t sectionNumber, double aOne, double aTwo, double bZero, double bOne, double bTwo) PURE_VIRTUAL;
10902 
10904  virtual const char* const PostFilterInfoGet() PURE_VIRTUAL;
10905  //virtual RSIFilterPostFilterSection PostFilterSection;
10907 
10912 
10933  virtual const char* const UserLabelGet() PURE_VIRTUAL;
10934 
10956  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
10958 
10963 
10965  virtual void PostTrajectoryGearingEnableSet(bool enable) PURE_VIRTUAL;
10966 
10968  virtual bool PostTrajectoryGearingEnableGet() PURE_VIRTUAL;
10969 
10971  virtual void PostTrajectoryGearingMasterAxisSet(int32_t masterAxisNumber) PURE_VIRTUAL;
10972 
10974  virtual int32_t PostTrajectoryGearingMasterAxisGet() PURE_VIRTUAL;
10975 
10977  virtual void PostTrajectoryGearingMultiplierSet(double multiplier) PURE_VIRTUAL;
10978 
10980  virtual double PostTrajectoryGearingMultiplierGet() PURE_VIRTUAL;
10981 
11000  virtual uint32_t NetworkIndexGet(RSINetworkIndexType indexType) PURE_VIRTUAL;
11001 
11021  virtual void NetworkIndexSet(RSINetworkIndexType indexType, uint32_t newIndex) PURE_VIRTUAL;
11023 
11026  virtual double BacklashHysteresisLimitGet() PURE_VIRTUAL;
11027  virtual void BacklashHysteresisLimitSet(double hysteresisLimit) PURE_VIRTUAL;
11028 
11055  virtual bool StepperMotorLoopbackGet() PURE_VIRTUAL;
11056 
11083  virtual void StepperMotorLoopbackSet(bool loopback) PURE_VIRTUAL;
11084  virtual RSIMotorStepperPulseType StepperMotorPulseTypeGet(RSIMotorStepperPulse pulse) PURE_VIRTUAL;
11085  virtual void StepperMotorPulseTypeSet(RSIMotorStepperPulse pulse, RSIMotorStepperPulseType type) PURE_VIRTUAL;
11086  virtual uint64_t GearingMasterAddressGet() PURE_VIRTUAL;
11088 };
11089 
11091 
11096 class RSI_API MultiAxis : public virtual RapidCodeMotion {
11097 public:
11098 
11102 
11119  virtual void AxisAdd(Axis *axis) PURE_VIRTUAL;
11120 
11123  virtual void AxesAdd(Axis* *axes, int32_t axisCount) PURE_VIRTUAL;
11124 
11140  virtual void AxisRemoveAll() PURE_VIRTUAL;
11141 
11145 
11164  virtual Axis* AxisGet(int32_t index) PURE_VIRTUAL;
11165 
11186  virtual const char* const UserLabelGet() PURE_VIRTUAL;
11187 
11209  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
11210 
11214 
11232  virtual double VectorVelocityGet() PURE_VIRTUAL;
11233 
11252  virtual void VectorVelocitySet(double velocity) PURE_VIRTUAL;
11253 
11271  virtual double VectorAccelerationGet() PURE_VIRTUAL;
11272 
11298  virtual void VectorAccelerationSet(double acceleration) PURE_VIRTUAL;
11299 
11317  virtual double VectorDecelerationGet() PURE_VIRTUAL;
11318 
11344  virtual void VectorDecelerationSet(double deceleration) PURE_VIRTUAL;
11345 
11363  virtual double VectorJerkPercentGet() PURE_VIRTUAL;
11364 
11390  virtual void VectorJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
11391 
11418  virtual void MoveVector(const double* const position) PURE_VIRTUAL;
11419 
11422  virtual void MoveVectorRelative(const double* const relativePosition) PURE_VIRTUAL;
11423 
11427 
11450 
11451  virtual double PathTimeSliceGet() PURE_VIRTUAL;
11452 
11476 
11477  virtual void PathTimeSliceSet(double seconds) PURE_VIRTUAL;
11478 
11506  virtual void PathRatioSet(const double* const ratio) PURE_VIRTUAL;
11507 
11510  virtual double PathRatioGet(int32_t index) PURE_VIRTUAL;
11511 
11531  virtual void PathBlendSet(bool blend) PURE_VIRTUAL;
11532 
11544 
11545  virtual void PathPlanTypeSet(RSIPathPlanType type) PURE_VIRTUAL;
11546 
11558 
11559  virtual RSIPathPlanType PathPlanTypeGet() PURE_VIRTUAL;
11560 
11582  virtual void PathListStart(const double* const startPosition) PURE_VIRTUAL;
11583 
11607  virtual void PathLineAdd(const double* const position) PURE_VIRTUAL;
11608 
11631  virtual void PathArcAdd(const double* const center, double angle) PURE_VIRTUAL;
11632 
11654  virtual void PathListEnd() PURE_VIRTUAL;
11655 
11675  virtual void PathMotionStart() PURE_VIRTUAL;
11676 
11680 
11700  virtual void MoveTrapezoidal(const double* const position, const double* const vel, const double* const accel, const double* const decel) PURE_VIRTUAL;
11701 
11704  virtual void MoveTrapezoidal(const double* const position) PURE_VIRTUAL;
11705 
11734  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;
11735 
11738  virtual void MoveSCurve(const double* const position) PURE_VIRTUAL;
11739 
11757  virtual void MoveVelocity(const double* const velocity, const double* const accel) PURE_VIRTUAL;
11758 
11762  virtual void MoveVelocity(const double* const velocity) PURE_VIRTUAL;
11763 
11784  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;
11785 
11788  virtual void MoveRelative(const double* const relativePosition) PURE_VIRTUAL;
11789 
11808  virtual void MoveVelocitySCurve(const double* const velocity, const double* const accel, const double* const jerkPct) PURE_VIRTUAL;
11809 
11829  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
11830 
11851  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
11852 
11854  virtual int32_t AxisMapCountGet() PURE_VIRTUAL;
11855 
11870  virtual uint64_t AddressGet(RSIMultiAxisAddressType addressType) PURE_VIRTUAL;
11871 
11886  virtual RSIDataType AddressDataTypeGet(RSIMultiAxisAddressType type) PURE_VIRTUAL;
11887 
11898  virtual bool AmpEnableGet() PURE_VIRTUAL;
11899 
11900 
11901 };
11902 
11904 
11908 class RSI_API IOPoint : public virtual RapidCodeObject {
11909 public:
11913 
11932  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorDedicatedIn motorDedicatedInNumber);
11933 
11952  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
11953 
11970  static IOPoint* CreateDigitalInput(IO* io, int32_t bitNumber);
11971 
11985  static IOPoint* CreateDigitalInput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
11986 
12002  static IOPoint* CreateDigitalInput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
12003 
12022  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorDedicatedOut motorDedicatedOutNumber);
12023 
12042  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
12043 
12060  static IOPoint* CreateDigitalOutput(IO* io, int32_t bitNumber);
12061 
12062 
12077  static IOPoint* CreateDigitalOutput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
12078 
12094  static IOPoint* CreateDigitalOutput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
12095 
12111  static IOPoint* CreateAnalogInput(IO* io, int32_t analogChannel);
12112 
12128  static IOPoint* CreateAnalogOutput(IO* io, int32_t analogChannel);
12129 
12130 
12131 
12135 
12139  virtual uint64_t AddressGet() PURE_VIRTUAL;
12140 
12144  virtual int32_t MaskGet() PURE_VIRTUAL;
12145 
12149  virtual bool IsDigital() PURE_VIRTUAL;
12150 
12151 
12155  virtual bool IsOutput() PURE_VIRTUAL;
12156 
12160 
12165  virtual bool Get() PURE_VIRTUAL;
12166 
12174  virtual void Set(bool state) PURE_VIRTUAL;
12175 
12179 
12184  virtual double ValueGet() PURE_VIRTUAL;
12185 
12190  virtual void ValueSet(double valueDouble) PURE_VIRTUAL;
12191 };
12192 
12194 
12198 class RSI_API RTOS {
12199 
12200 public:
12201 #if defined(_WIN32)
12202 
12209  static INtimeStatus INtimeStatusGet();
12210 
12215  static INtimeStatus INtimeStatusGet(const char* const nodeName);
12216 
12219  static INtimeStatus INtimeStart();
12220 
12225  static INtimeStatus INtimeStart(const char* const nodeName);
12226 
12229  static INtimeStatus INtimeStop();
12230 
12235  static INtimeStatus INtimeStop(const char* const nodeName);
12236 
12239  static INtimeStatus INtimeRestart();
12240 
12245  static INtimeStatus INtimeRestart(const char* const nodeName);
12246 
12249  static const char* const INtimeCatalogRMPGet();
12250 
12253  static const char* const INtimeCatalogRMPNetworkGet();
12254 
12257  static uint32_t INtimeNodeCountGet();
12258 
12262  static const char* const INtimeNodeNameGet(uint32_t nodeNumber);
12263 
12267  static bool INtimeNodeIsLocal(uint32_t nodeNumber);
12269 #endif // _WIN32
12270 };
12271 
12273 class RSI_API Trace
12274 {
12275 public:
12280 
12295  static void MaskSet(RSITrace mask);
12296 
12314  static void MaskOnSet(RSITrace maskOn);
12315 
12316 
12338  static bool MaskOnGet(RSITrace maskOn);
12339 
12357  static void MaskOffSet(RSITrace maskOff);
12358 
12373  static void MaskClear();
12374 
12391  static int32_t FileSet(const char* const fileName);
12392 
12407  static void FileClose();
12408 
12425  static void InjectMessage(RSITrace traceLevel, const char* const message);
12426 
12428 };
12429 
12431 
12432 } // namespace RapidCode
12433 
12434 } // namespace RSI
12435 
12436 #if defined(__cplusplus)
12437 }
12438 #endif
12439 
12440 #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:1074
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:11096
RSI::RapidCode::RSIAxisMasterType
RSIAxisMasterType
Sources available to a slave Axis for electronic gearing & camming.
Definition: rsienums.h:1139
RSI::RapidCode::RSIHomeStage
RSIHomeStage
Predefined Homing Stage sections.
Definition: rsienums.h:403
RSI::RapidCode::RSIMotorFeedbackFault
RSIMotorFeedbackFault
Feedbacks to use for Feedback Fault action.
Definition: rsienums.h:1067
RSI::RapidCode::IO::IOExists
bool IOExists()
IOExists validates your IO object is an IO Node.
RSI::RapidCode::RSIControllerType
RSIControllerType
Controller type.
Definition: rsienums.h:281
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:964
RSI::RapidCode::Trace::MaskSet
static void MaskSet(RSITrace mask)
Sets the specified trace mask.
RSI::RapidCode::RsiError::number
RSIErrorMessage number
Error number.
Definition: rsi.h:103
RSI::RapidCode::Trace::MaskOnSet
static void MaskOnSet(RSITrace maskOn)
Turn on a particular trace output mask.
RSI::RapidCode::RSICompensatorOutputType
RSICompensatorOutputType
Compensator output types.
Definition: rsienums.h:1313
RSI::RapidCode::RsiError::isWarning
bool isWarning
Whether the error is or is not a warning.
Definition: rsi.h:109
RSI::RapidCode::RapidCodeOS::Sleep
void Sleep(int32_t milliseconds)
Put the current thread to sleep.
RSI::RapidCode::Trace::InjectMessage
static void InjectMessage(RSITrace traceLevel, const char *const message)
Add a message to the Trace Log.
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:607
RSI::RapidCode::RsiError
The RsiError object contains information about any RapidCode API object's error/exception.
Definition: rsi.h:100
RSI::RapidCode::IO
The IO object provides an interface to the inputs and outputs of a network node.
Definition: rsi.h:4063
RSI::RapidCode::INtimeStatus
INtimeStatus
INtime status values.
Definition: rsienums.h:1278
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::objectIndex
int32_t objectIndex
Object index (0-based index of the object that has the error).
Definition: rsi.h:107
RSI::RapidCode::RsiError::functionName
char functionName[RSI_ERROR_TEXT_SIZE]
Function name of the raised the error.
Definition: rsi.h:114
RSI::RapidCode::RSIEventType
RSIEventType
Event Types or Status Bits.
Definition: rsienums.h:896
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:1273
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:116
RSI::RapidCode::RSIAxisPositionInput
RSIAxisPositionInput
Feedback Positions for each Axis.
Definition: rsienums.h:1054
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:487
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:1246
RSI::RapidCode::RSINodeType
RSINodeType
Valid Node types.
Definition: rsienums.h:654
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:1240
RSI::RapidCode::Axis::MoveTrapezoidal
void MoveTrapezoidal(double position, double vel, double accel, double decel)
Point-to-point trapezoidal move.
RSI::RapidCode::RSIMotionHoldType
RSIMotionHoldType
Types for MotionHold attribute.
Definition: rsienums.h:1016
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:168
RSI::RapidCode::RSIUserLimitLogic
RSIUserLimitLogic
Logic options for User Limits.
Definition: rsienums.h:627
RSI::RapidCode::IOPoint::CreateAnalogOutput
static IOPoint * CreateAnalogOutput(IO *io, int32_t analogChannel)
Create an Analog Output from an I/O Node.
RSI::RapidCode::IO::NetworkNode
NetworkNode * NetworkNode
Gets the parent NetworkNode object.
Definition: rsi.h:4074
RSI::RapidCode::RSIMotorStepperPulse
RSIMotorStepperPulse
Pulse A or B.
Definition: rsienums.h:1170
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:980
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::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:4370
RSI::RapidCode::RSIMotorType
RSIMotorType
Motor Type.
Definition: rsienums.h:1232
RSI::RapidCode::Axis::PositionSet
void PositionSet(double position)
Set the Command and Actual positions.
RSI::RapidCode::RSINetworkStartError
RSINetworkStartError
Network start errors.
Definition: rsienums.h:582
RSI::RapidCode::Trace::MaskOffSet
static void MaskOffSet(RSITrace maskOff)
Turn off a particular trace output mask.
RSI::RapidCode::RSIFilterGainPIDCoeff
RSIFilterGainPIDCoeff
PID gain coefficients.
Definition: rsienums.h:1089
RSI::RapidCode::RSIMotorDedicatedIn
RSIMotorDedicatedIn
Dedicated Input bits per motor.
Definition: rsienums.h:819
RSI::RapidCode::Trace::MaskClear
static void MaskClear()
Clear the trace output mask.
RSI::RapidCode::RapidCodeInterrupt::InterruptWait
RSIEventType InterruptWait(int32_t milliseconds)
Suspend the current thread until an interrupt arrives from the controller.
RSI::RapidCode::Trace::FileClose
static void FileClose()
Stops Logging to the file.
RSI::RapidCode::Axis::MoveTrapezoidal
void MoveTrapezoidal(double position)
Point-to-point trapezoidal move.
RSI::RapidCode::RSIPDOType
RSIPDOType
Compensator output types.
Definition: rsienums.h:1319
RSI::RapidCode::RSINetworkOutputAddressType
RSINetworkOutputAddressType
Network output address types.
Definition: rsienums.h:1306
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::RSIMotorIoTypeMask
RSIMotorIoTypeMask
Possible mask bits for Motor I/O types.
Definition: rsienums.h:1186
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:292
RSI::RapidCode::RsiError::lineNumber
int32_t lineNumber
Source code line number.
Definition: rsi.h:105
RSI::RapidCode::RSIHomeMethod
RSIHomeMethod
Definition: rsienums.h:307
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::MotionController
The MotionController object represents the RMP INtime soft motion controller.
Definition: rsi.h:765
RSI::RapidCode::RSISource
RSISource
Possible sources that have caused an Error state.
Definition: rsienums.h:943
RSI::RapidCode::RsiError::RSI_ERROR_TEXT_SIZE
static constexpr uint32_t RSI_ERROR_TEXT_SIZE
Error message text.
Definition: rsi.h:111
RSI::RapidCode::RSIAxisGantryType
RSIAxisGantryType
How to combine Axis Feedback Positions.
Definition: rsienums.h:1060
RSI::RapidCode::RSINetworkState
RSINetworkState
State of network.
Definition: rsienums.h:557
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:529
RSI::RapidCode::RapidCodeInterrupt
Interface for objects which can use interrupts.
Definition: rsi.h:595
RSI
RSI::RapidCode::Trace::MaskOnGet
static bool MaskOnGet(RSITrace maskOn)
Check to see if a particular trace output mask is turned on.
RSI::RapidCode::IOPoint
The IOPoint object represents one specific point class such as: Digital Output, Digital Input,...
Definition: rsi.h:11908
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:569
RSI::RapidCode::RSIUserLimitTriggerType
RSIUserLimitTriggerType
Trigger types for UserLimits.
Definition: rsienums.h:614
RSI::RapidCode::RSIMotorFaultMask
RSIMotorFaultMask
Mask values for several motor faults.
Definition: rsienums.h:1220
RSI::RapidCode::RapidCodeOS
The RapidCodeOS object provides access to operating system (Windows) features. Accessible via MotionC...
Definition: rsi.h:492
RSI::RapidCode::Axis
The Axis object manages a single physical axis on a motion controller.
Definition: rsi.h:5943
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:411
RSI::RapidCode::RSIAction
RSIAction
Action to perform on an Axis.
Definition: rsienums.h:1036
RSI::RapidCode::RsiError::fileName
char fileName[RSI_ERROR_TEXT_SIZE]
source file name
Definition: rsi.h:118
RSI::RapidCode::IOPoint::CreateDigitalInput
static IOPoint * CreateDigitalInput(Axis *axis, RSIMotorDedicatedIn motorDedicatedInNumber)
Create a Digital Input from an Axis' Dedicated Input bits.
RSI::RapidCode::RSINetworkIndexType
RSINetworkIndexType
Network index types for Axis.
Definition: rsienums.h:1286
RSI::RapidCode::RapidCodeMotion
The RapidCodeMotion interface is implemented by Axis and MultiAxis .
Definition: rsi.h:4360
RSI::RapidCode::RSIProcessorType
RSIProcessorType
Controller's processor type.
Definition: rsienums.h:301
RSI::RapidCode::Trace
Tracing allows for low level logs to be generated.
Definition: rsi.h:12274
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::RapidCodeInterrupt::InterruptEnableSet
void InterruptEnableSet(bool enable)
Enable or disable interrupts.
RSI::RapidCode::RSIFilterAlgorithm
RSIFilterAlgorithm
Filter algorithms.
Definition: rsienums.h:1080
RSI::RapidCode::Trace::FileSet
static int32_t FileSet(const char *const fileName)
Channels Tracing messages to specified file.
RSI::RapidCode::RSIFilterGainPIVCoeff
RSIFilterGainPIVCoeff
PIV gain coefficients.
Definition: rsienums.h:1110
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:154
RSI::RapidCode::IO::rsiControl
MotionController * rsiControl
Gets the parent MotionController object.
Definition: rsi.h:4076
RSI::RapidCode::Axis::NetworkNode
NetworkNode * NetworkNode
Gets the parent NetworkNode object.
Definition: rsi.h:5970
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:1149
RSI::RapidCode::RSIDataType
RSIDataType
Data types for User Limits and other triggers.
Definition: rsienums.h:640
RSI::RapidCode::MultiAxis::AxesAdd
void AxesAdd(Axis **axes, int32_t axisCount)
RSI::RapidCode::RSIMotorStepperPulseType
RSIMotorStepperPulseType
Stepper pulse type.
Definition: rsienums.h:1176
RSI::RapidCode::RSIAxisAddressType
RSIAxisAddressType
Used to get firmware address used in User Limits, Sequencers, etc.
Definition: rsienums.h:426
RSI::RapidCode::RSIPathPlanType
RSIPathPlanType
Path motion planning types.
Definition: rsienums.h:974
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:12198
RSI::RapidCode::RSIMotorGeneralIo
RSIMotorGeneralIo
Motor I/O bit numbers.
Definition: rsienums.h:847
RSI::RapidCode::RSINetworkStartMode
RSINetworkStartMode
Network start modes.
Definition: rsienums.h:576
RSI::RapidCode::RSIOperationMode
RSIOperationMode
DS402 modes of operation.
Definition: rsienums.h:1252
RSI::RapidCode::RSIState
RSIState
State of an Axis or MultiAxis.
Definition: rsienums.h:809
RSI::RapidCode::RSIMotorDedicatedOut
RSIMotorDedicatedOut
Dedicated Output bits per motor.
Definition: rsienums.h:841
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