The RMP Motion Controller APIs
rsi.h
1 // RapidCode 10.3.15.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 #if !defined(PURE_VIRTUAL)
23 #define PURE_VIRTUAL = 0
24 #endif
25 
26 
27 
28 #if defined(__cplusplus)
29 extern "C"
30 {
31 #endif
32 
34 namespace RSI
35 {
36 
38 namespace RapidCode
39 {
40 
41 class MotionController;
42 class Axis;
43 class MultiAxis;
44 class IO;
45 class IOPoint;
46 class RTOS;
47 
48 
51 
53 class RSI_API StaticInstanceMediator
54 {
55 private:
56  bool isValid;
57 public:
58  bool IsValid() { return isValid; }
59  void OnDelete() { isValid = false; }
60  void OnCreate() { isValid = true; }
61 };
62 
64 
92 class RsiError : public std::exception
93 {
94 public:
98  int32_t lineNumber;
100  bool isWarning;
102  static const uint32_t RSI_ERROR_TEXT_SIZE = 512U;
103  char text[RSI_ERROR_TEXT_SIZE];
110 
111  RsiError()
112  {
113  text[0] = '\0';
114  functionName[0] = '\0';
115  shortText[0] = '\0';
116  fileName[0] = '\0';
117  number = RSIErrorMessage::RSIMessageOK;
118  lineNumber = -1;
119  isWarning = false;
120  }
121  RsiError(const RsiError& copyFrom)
122  {
123  strncpy_s(text, sizeof(text), copyFrom.text, sizeof(copyFrom.text));
124  strncpy_s(functionName, sizeof(functionName), copyFrom.functionName, sizeof(copyFrom.functionName));
125  strncpy_s(shortText, sizeof(shortText), copyFrom.shortText, sizeof(copyFrom.shortText));
126  strncpy_s(fileName, sizeof(fileName), copyFrom.fileName, sizeof(copyFrom.fileName));
127  number = copyFrom.number;
128  lineNumber = copyFrom.lineNumber;
129  isWarning = copyFrom.isWarning;
130  }
131  ~RsiError()
132  {
133  }
134 
136  virtual const char* what() const noexcept { return text; }
137 };
138 
139 
140 
142 
150 class RSI_API RapidCodeObject {
151 public:
156 
157 
158 
172  virtual const char* const VersionGet() PURE_VIRTUAL;
173 
175  virtual int32_t MpiVersionMajor() PURE_VIRTUAL;
177  virtual int32_t MpiVersionMinor() PURE_VIRTUAL;
179  virtual int32_t MpiVersionRelease() PURE_VIRTUAL;
181  virtual int32_t RSIVersionMajor() PURE_VIRTUAL;
183  virtual int32_t RSIVersionMinor() PURE_VIRTUAL;
185  virtual int32_t RSIVersionMicro() PURE_VIRTUAL;
187  virtual int32_t RSIVersionPatch() PURE_VIRTUAL;
188 
192  virtual int32_t NumberGet() PURE_VIRTUAL;
194 
199 
200 
201 
202 
230  virtual int32_t ErrorLogCountGet() PURE_VIRTUAL;
231 
247  virtual const RsiError* const ErrorLogGet() PURE_VIRTUAL;
248 
264  virtual void ErrorLogClear() PURE_VIRTUAL;
265 
286  virtual void ThrowExceptions(bool state) PURE_VIRTUAL;
287 
289  virtual const char* const RsiErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
290 
292  virtual const char* const ErrorMessageGet(RSIErrorMessage msg) PURE_VIRTUAL;
293 
295  virtual bool WarningMsgCheck(RSIErrorMessage msg) PURE_VIRTUAL;
297 
302 
303 
320  virtual void Trace(bool state) PURE_VIRTUAL;
321 
338  virtual void TraceMaskOnSet(RSITrace maskOn) PURE_VIRTUAL;
339 
340 
363  virtual bool TraceMaskOnGet(RSITrace maskOn) PURE_VIRTUAL;
364 
382  virtual void TraceMaskOffSet(RSITrace maskOff) PURE_VIRTUAL;
383 
399  virtual void TraceMaskClear() PURE_VIRTUAL;
400 
417  virtual void TraceFileSet(const char* const fileName) PURE_VIRTUAL;
418 
433  virtual void TraceFileClose() PURE_VIRTUAL;
434 
451  virtual void TraceInjectMessage(RSITrace traceLevel, const char* const message) PURE_VIRTUAL;
452 
453 
454 
455 
457 };
458 
460 
474 class RSI_API RapidCodeOS {
475 public:
476 
481 
495  virtual void Sleep(int32_t milliseconds) PURE_VIRTUAL;
496 
516  virtual int32_t KeyGet(int32_t milliseconds) PURE_VIRTUAL;
517 
528  virtual int32_t TimerCountGet() PURE_VIRTUAL;
529 
539  virtual int32_t TimerFrequencyGet() PURE_VIRTUAL;
540 
541 
554  virtual int32_t PerformanceTimerCountGet() PURE_VIRTUAL;
555 
568  virtual int32_t PerformanceTimerFrequencyGet() PURE_VIRTUAL;
569 
571 };
572 
574 
577 class RSI_API RapidCodeInterrupt : public virtual RapidCodeObject {
578 public:
582 
584  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
585 
586 
610  virtual RSIEventType InterruptWait(int32_t milliseconds) PURE_VIRTUAL;
611 
632  virtual const char* const InterruptNameGet() PURE_VIRTUAL;
633 
656  virtual int32_t InterruptSampleTimeGet() PURE_VIRTUAL;
657 
658 
681  virtual int32_t InterruptSourceNumberGet() PURE_VIRTUAL;
682 
684  virtual uint16_t InterruptMotionIdGet() PURE_VIRTUAL;
685 
687  virtual void InterruptWake() PURE_VIRTUAL;
688 
690  virtual void InterruptMaskClear() PURE_VIRTUAL;
691 
693  virtual void InterruptMaskAllSet() PURE_VIRTUAL;
694 
696  virtual void InterruptMaskOnSet(RSIEventType eventType) PURE_VIRTUAL;
697 
699  virtual void InterruptMaskOffSet(RSIEventType eventType) PURE_VIRTUAL;
700 
702  virtual bool InterruptMaskOnGet(RSIEventType eventType) PURE_VIRTUAL;
703 
704 
719  virtual uint64_t InterruptUserDataGet(uint32_t userDataIndex) PURE_VIRTUAL;
720 
721 
735  virtual double InterruptUserDataDoubleGet(uint32_t userDataIndex) PURE_VIRTUAL;
736 };
737 
739 
747 class RSI_API MotionController : public virtual RapidCodeInterrupt {
748 protected:
750  StaticInstanceMediator* _mediator;
751 
752 public:
753 
754  // Static functions or attributes should be grouped together.
759 
761  static inline constexpr uint32_t NetworkStartTimeoutMillisecondsDefault = 30000;
762 
764  static inline constexpr uint32_t AxisCountMaximum = 64;
765 
767  static inline constexpr uint32_t MotionCountMaximum = 64;
768 
770  static inline constexpr uint32_t NetworkNodeCountMaximum = 64;
771 
773  static inline constexpr uint32_t RecorderCountMaximum = 64;
774 
776  static inline constexpr uint32_t CompensatorCountMaximum = 64;
777 
779  static inline constexpr uint32_t UserBufferDataCountMaximum = 1024;
780 
782  static inline constexpr uint32_t SequencerGlobalCountMaximum = 191;
783 
785  static inline constexpr double SampleRateDefault = 1000.0;
786 
788 
789  // Static functions or attributes should be grouped together.
794 
795 
826 
831  static MotionController* CreateFromSoftware(const char* const RtaPath);
832 
838  static MotionController* CreateFromSoftware(const char* const RtaPath, const char* const NodeName);
839 
870 
871 
873  static MotionController* CreateFromServer(const char* const server, int32_t serverPort);
874 
875 
877 
878 
879 
884 
909  virtual IO* IOGet(int32_t nodeNumber) PURE_VIRTUAL;
910 
911 
936  virtual Axis* AxisGet(int32_t axisNumber) PURE_VIRTUAL;
937 
961  virtual MultiAxis* MultiAxisGet(int32_t motionSupervisorNumber) PURE_VIRTUAL;
962 
981  virtual MultiAxis* LoadExistingMultiAxis(int32_t motionSupervisorNumber) PURE_VIRTUAL;
982 
1009  virtual void Delete(void) PURE_VIRTUAL;
1011 
1016 
1027  virtual void Reset() PURE_VIRTUAL;
1028 
1031  virtual void Refresh() PURE_VIRTUAL;
1032 
1038  virtual void Shutdown() PURE_VIRTUAL;
1040 
1045 
1046 
1047 
1072  virtual uint32_t SerialNumberGet(void) PURE_VIRTUAL;
1073 
1098  virtual int32_t SampleCounterGet() PURE_VIRTUAL;
1099 
1100 
1101 
1122  virtual void SampleWait(uint32_t samples) PURE_VIRTUAL;
1123 
1124 
1126  virtual RSIControllerType ControllerTypeGet() PURE_VIRTUAL;
1127 
1129  virtual const char* const ServerNameGet() PURE_VIRTUAL;
1130 
1132  virtual int32_t ServerPortGet() PURE_VIRTUAL;
1133  virtual int32_t NumberGet() PURE_VIRTUAL;
1134 
1135 
1136 
1161  virtual RSIProcessorType ProcessorTypeGet() PURE_VIRTUAL;
1162 
1179  virtual double ProcessorUsageGet() PURE_VIRTUAL;
1180 
1193  virtual void ProcessorUsageClear() PURE_VIRTUAL;
1194 
1199  virtual void SampleRateSet(double sampleRate) PURE_VIRTUAL;
1200 
1203  virtual double SampleRateGet() PURE_VIRTUAL;
1204 
1224  virtual int32_t AxisCountGet() PURE_VIRTUAL;
1225 
1247  virtual void AxisCountSet(int32_t axisCount) PURE_VIRTUAL;
1248 
1251  virtual void AxisCountSet(int32_t axisCount, bool setMotorFilterSupervisor) PURE_VIRTUAL;
1252 
1255  virtual bool IsLicensed() PURE_VIRTUAL;
1256 
1258  virtual int32_t PackageVariantGet() PURE_VIRTUAL;
1259 
1261  virtual int32_t AxisLicenseCountGet() PURE_VIRTUAL;
1262 
1264  virtual bool MechaWareLicenseGet() PURE_VIRTUAL;
1265 
1266  virtual int32_t UnsupportedOptionSet(int32_t option) PURE_VIRTUAL;
1267 
1294  virtual int32_t MotionCountGet() PURE_VIRTUAL;
1295 
1315  virtual void MotionCountSet(int32_t motionCount) PURE_VIRTUAL;
1316 
1344  virtual int32_t UserVersionGet() PURE_VIRTUAL;
1345 
1373  virtual void UserVersionSet(int32_t version) PURE_VIRTUAL;
1374 
1377  virtual int32_t ExternalMemorySizeGet() PURE_VIRTUAL;
1378 
1398  virtual void AxisFrameBufferSizeSet(int32_t axisNumber, int32_t frameBufferSize) PURE_VIRTUAL;
1399 
1416  virtual int32_t AxisFrameBufferSizeGet(int32_t axisNumber) PURE_VIRTUAL;
1418 
1423 
1424 
1425 
1446  virtual const char* const FirmwareVersionGet() PURE_VIRTUAL;
1447 
1468  virtual int32_t FirmwareOptionGet() PURE_VIRTUAL;
1469 
1471  virtual bool HasMechaWare() PURE_VIRTUAL;
1472 
1499  virtual int32_t MemoryGet(uint64_t address) PURE_VIRTUAL;
1500 
1501 
1522  virtual double MemoryDoubleGet(uint64_t address) PURE_VIRTUAL;
1523 
1552  virtual void MemoryBlockGet(uint64_t address, void* dataStart, int32_t size) PURE_VIRTUAL;
1553 
1571  virtual void MemorySet(uint64_t address, int32_t data) PURE_VIRTUAL;
1572 
1573 
1574 
1594  virtual void MemoryDoubleSet(uint64_t address, double dataDouble) PURE_VIRTUAL;
1595 
1624  virtual void MemoryBlockSet(uint64_t address, const void* const dataStart, int32_t size) PURE_VIRTUAL;
1625 
1647  virtual uint32_t FirmwareAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1648 
1649 
1650 
1651 
1677  virtual uint64_t HostAddressGet(uint32_t firmwareAddress) PURE_VIRTUAL;
1678 
1679 
1680 
1706  virtual int32_t BackgroundCycleCounterGet() PURE_VIRTUAL;
1707 
1708 
1709 
1710 
1722  virtual uint64_t AddressFromStringGet(const char* const addressName) PURE_VIRTUAL;
1723 
1724 
1725 
1736  virtual const char* const StringFromAddressGet(uint64_t hostAddress) PURE_VIRTUAL;
1737 
1755  virtual uint64_t AddressGet(RSIControllerAddressType type) PURE_VIRTUAL;
1756 
1777  virtual uint64_t AddressGet(RSIControllerAddressType type, int32_t objectIndex) PURE_VIRTUAL;
1778 
1779 
1795  virtual RSIDataType AddressDataTypeGet(RSIControllerAddressType type) PURE_VIRTUAL;
1796 
1813  virtual bool MotionHoldGateGet(int32_t gateNumber) PURE_VIRTUAL;
1814 
1815 
1816 
1835  virtual void MotionHoldGateSet(int32_t gateNumber, bool hold) PURE_VIRTUAL;
1837 
1842 
1844  virtual RSINetworkTechnologyType NetworkTechnologyTypeGet() PURE_VIRTUAL;
1845 
1847  virtual RSINetworkType NetworkTypeGet() PURE_VIRTUAL;
1848 
1851  virtual int32_t NetworkNodeCountGet() PURE_VIRTUAL;
1852 
1854  virtual void NetworkStart() PURE_VIRTUAL;
1855 
1864  virtual void NetworkStart(RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1865 
1868  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod) PURE_VIRTUAL;
1869 
1872  virtual void NetworkStart(RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
1873 
1875  virtual void NetworkShutdown() PURE_VIRTUAL;
1876 
1879  virtual RSINetworkState NetworkStateGet() PURE_VIRTUAL;
1880 
1882  virtual int32_t NetworkCounterGet() PURE_VIRTUAL;
1883 
1885  virtual int32_t NetworkInputCountGet() PURE_VIRTUAL;
1886 
1888  virtual int32_t NetworkInputBitSizeGet(int32_t index) PURE_VIRTUAL;
1889 
1893  virtual const char* const NetworkInputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1894 
1897  virtual int32_t NetworkInputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1898 
1901  virtual const char* const NetworkInputNameGet(int32_t index) PURE_VIRTUAL;
1902 
1906  virtual uint64_t NetworkInputValueGet(int32_t index) PURE_VIRTUAL;
1907 
1908 
1909 
1913  virtual uint64_t NetworkInputAddressGet(int32_t index) PURE_VIRTUAL;
1914 
1918  virtual int32_t NetworkOutputCountGet() PURE_VIRTUAL;
1919 
1922  virtual int32_t NetworkOutputBitSizeGet(int32_t index) PURE_VIRTUAL;
1923 
1924 
1928  virtual const char* const NetworkOutputDataTypeNameGet(int32_t index) PURE_VIRTUAL;
1929 
1931  virtual int32_t NetworkOutputBitOffsetGet(int32_t index) PURE_VIRTUAL;
1932 
1934  virtual const char* const NetworkOutputNameGet(int32_t index) PURE_VIRTUAL;
1935 
1952  virtual uint64_t NetworkOutputValueGet(int32_t index) PURE_VIRTUAL;
1953 
1971  virtual void NetworkOutputValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
1972 
1993  virtual uint64_t NetworkOutputAddressGet(int32_t index) PURE_VIRTUAL;
1994 
1997  virtual uint64_t NetworkOutputAddressGet(int32_t index, RSINetworkOutputAddressType type) PURE_VIRTUAL;
1998 
2010  virtual uint64_t NetworkOutputIntendedValueGet(int32_t index) PURE_VIRTUAL;
2011 
2024  virtual void NetworkOutputOverrideSet(int32_t index, bool outputOverride) PURE_VIRTUAL;
2025 
2037  virtual bool NetworkOutputOverrideGet(int32_t index) PURE_VIRTUAL;
2038 
2039 
2040 
2041 
2059  virtual void NetworkOutputOverrideValueSet(int32_t index, uint64_t outputValue) PURE_VIRTUAL;
2060 
2074  virtual uint64_t NetworkOutputOverrideValueGet(int32_t index) PURE_VIRTUAL;
2075 
2091  virtual uint64_t NetworkOutputSentValueGet(int32_t index) PURE_VIRTUAL;
2092 
2096  virtual int32_t NetworkLogMessageCountGet() PURE_VIRTUAL;
2097 
2099  virtual RSINetworkStartError LastNetworkStartErrorGet() PURE_VIRTUAL;
2100 
2105  virtual const char* const NetworkLogMessageGet(int32_t messageIndex) PURE_VIRTUAL;
2106 
2108  virtual void NetworkTimingEnableSet(bool enable) PURE_VIRTUAL;
2109 
2111  virtual void NetworkTimingClear() PURE_VIRTUAL;
2112 
2114  virtual uint32_t NetworkTimingDeltaGet() PURE_VIRTUAL;
2115 
2117  virtual uint32_t NetworkTimingMinGet() PURE_VIRTUAL;
2118 
2120  virtual uint32_t NetworkTimingMaxGet() PURE_VIRTUAL;
2121 
2123  virtual void NetworkTimingThresholdLowSet(uint32_t microseconds) PURE_VIRTUAL;
2124 
2126  virtual void NetworkTimingThresholdHighSet(uint32_t microseconds) PURE_VIRTUAL;
2127 
2129  virtual uint32_t NetworkTimingThresholdLowCountGet() PURE_VIRTUAL;
2130 
2132  virtual uint32_t NetworkTimingThresholdHighCountGet() PURE_VIRTUAL;
2133 
2135  virtual bool NetworkSynchronizedGet() PURE_VIRTUAL;
2137 
2142 
2143 
2144 
2164  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
2165 
2166 
2167 
2168 
2190  virtual void InterruptWake() PURE_VIRTUAL;
2191 
2222  virtual void SyncInterruptEnableSet(bool enable) PURE_VIRTUAL;
2223 
2252  virtual void SyncInterruptPeriodSet(uint32_t samples) PURE_VIRTUAL;
2253 
2276  virtual int32_t SyncInterruptWait() PURE_VIRTUAL;
2277 
2279  virtual bool ServiceThreadStateGet() PURE_VIRTUAL;
2280 
2294  virtual int32_t SyncInterruptHostProcessTimeGet() PURE_VIRTUAL;
2295 
2296 
2297 
2299  virtual int32_t SyncInterruptHostProcessFlagGet() PURE_VIRTUAL;
2300 
2316  virtual void SyncInterruptHostProcessFlagSet(bool hostProcessFlag) PURE_VIRTUAL;
2317 
2331  virtual bool SyncInterruptHostProcessStatusBitGet() PURE_VIRTUAL;
2332 
2345  virtual void SyncInterruptHostProcessStatusClear() PURE_VIRTUAL;
2346 
2375 
2376  virtual void ServiceThreadEnableSet(bool enable) PURE_VIRTUAL;
2378 
2383 
2384 
2385 
2406  virtual int32_t RecorderCountGet() PURE_VIRTUAL;
2407 
2428  virtual void RecorderCountSet(int32_t recorderCount) PURE_VIRTUAL;
2429 
2448  virtual void RecorderPeriodSet(uint32_t samples) PURE_VIRTUAL;
2449 
2451  virtual void RecorderPeriodSet(int32_t recorderNumber, uint32_t samples) PURE_VIRTUAL;
2452 
2471  virtual void RecorderCircularBufferSet(bool enable) PURE_VIRTUAL;
2472 
2474  virtual void RecorderCircularBufferSet(int32_t recorderNumber, bool enable) PURE_VIRTUAL;
2475 
2493  virtual void RecorderDataCountSet(int32_t count) PURE_VIRTUAL;
2494 
2496  virtual void RecorderDataCountSet(int32_t recorderNumber,int32_t count) PURE_VIRTUAL;
2497 
2516  virtual void RecorderDataAddressSet(int32_t index, uint64_t address) PURE_VIRTUAL;
2517 
2519  virtual void RecorderDataAddressSet(int32_t recorderNumber,int32_t index, uint64_t address) PURE_VIRTUAL;
2520 
2521 
2527  virtual void RecorderDataAddressesSet(int32_t recorderNumber, const uint64_t* const addresses, int32_t addressCount) PURE_VIRTUAL;
2528 
2549  virtual void RecorderConfigureToTriggerOnMotion(Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2550 
2552  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, Axis *axis, bool triggerOnMotion) PURE_VIRTUAL;
2553 
2554 
2556  virtual void RecorderConfigureToTriggerOnMotion(MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2557 
2559  virtual void RecorderConfigureToTriggerOnMotion(int32_t recorderNumber, MultiAxis *multiAxis, bool triggerOnMotion) PURE_VIRTUAL;
2560 
2578  virtual bool RecorderEnabledGet() PURE_VIRTUAL;
2579 
2581  virtual bool RecorderEnabledGet(int32_t recorderNumber ) PURE_VIRTUAL;
2582 
2601  virtual int32_t RecorderRecordCountGet() PURE_VIRTUAL;
2602 
2604  virtual int32_t RecorderRecordCountGet(int32_t recorderNumber ) PURE_VIRTUAL;
2605 
2621  virtual int32_t RecorderRecordMaxCountGet() PURE_VIRTUAL;
2622 
2624  virtual int32_t RecorderRecordMaxCountGet(int32_t recorderNumber) PURE_VIRTUAL;
2625 
2642  virtual void RecorderStart() PURE_VIRTUAL;
2643 
2645  virtual void RecorderStart(int32_t recorderNumber) PURE_VIRTUAL;
2646 
2665  virtual void RecorderStop() PURE_VIRTUAL;
2666 
2668  virtual void RecorderStop(int32_t recorderNumber) PURE_VIRTUAL;
2669 
2670 
2671 
2689  virtual const int32_t* const RecorderRecordDataGet() PURE_VIRTUAL;
2690 
2692  virtual const int32_t* const RecorderRecordDataGet(int32_t recorderNumber) PURE_VIRTUAL;
2693 
2710  virtual void RecorderRecordDataRetrieve() PURE_VIRTUAL;
2711 
2733  virtual int32_t RecorderRecordDataRetrieveBulk(int32_t recorderNumber, int32_t recordCount) PURE_VIRTUAL;
2734 
2736  virtual void RecorderRecordDataRetrieve(int32_t recorderNumber) PURE_VIRTUAL;
2737 
2756  virtual int32_t RecorderRecordDataValueGet(int32_t index) PURE_VIRTUAL;
2757 
2759  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2760 
2781  virtual int32_t RecorderRecordDataValueGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2782 
2784  virtual double RecorderRecordDataDoubleGet(int32_t index) PURE_VIRTUAL;
2785 
2787  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t index) PURE_VIRTUAL;
2788 
2809  virtual double RecorderRecordDataDoubleGet(int32_t recorderNumber, int32_t recordIndex, int32_t dataIndex) PURE_VIRTUAL;
2810 
2830  virtual void RecorderBufferHighCountSet(int32_t bufferHighCount) PURE_VIRTUAL;
2831 
2833  virtual void RecorderBufferHighCountSet(int32_t recorderNumber, int32_t bufferHighCount) PURE_VIRTUAL;
2834 
2851  virtual void RecorderReset() PURE_VIRTUAL;
2852 
2854  virtual void RecorderReset(int32_t recorderNumber) PURE_VIRTUAL;
2855 
2869  virtual int32_t RecorderBufferSizeGet(int32_t recorderNumber) PURE_VIRTUAL;
2870 
2890  virtual void RecorderBufferSizeSet(int32_t recorderNumber, int32_t bufferSize) PURE_VIRTUAL;
2892 
2897 
2898 
2899 
2900 
2927  virtual int32_t CompensatorCountGet() PURE_VIRTUAL;
2928 
2950  virtual void CompensatorCountSet(int32_t compensatorCount) PURE_VIRTUAL;
2951 
2964  virtual int32_t CompensatorPointCountGet(int32_t compensatorNumber) PURE_VIRTUAL;
2965 
2988  virtual void CompensatorPointCountSet(int32_t compensatorNumber, int32_t pointCount) PURE_VIRTUAL;
2989 
3005  virtual int32_t CompensatorDimensionGet(int32_t compensatorNumber) PURE_VIRTUAL;
3006 
3031  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;
3032 
3033 
3034 
3064 
3065  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;
3066 
3067 
3088  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;
3089 
3090 
3091 
3112  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;
3113 
3127  virtual void CompensatorTableSet(int32_t compensatorNumber, const double* const table) PURE_VIRTUAL;
3128 
3142  virtual void CompensatorTableGet(int32_t compensatorNumber, double* table) PURE_VIRTUAL;
3143 
3164  virtual double CompensatorPositionGet(int32_t compensatorNumber) PURE_VIRTUAL;
3165 
3166 
3167 
3168 
3169 
3170 
3184 
3185  virtual void CompensatorTableClear(int32_t compensatorNumber) PURE_VIRTUAL;
3186 
3198  virtual void CompensatorDisable(int32_t compensatorNumber) PURE_VIRTUAL;
3199 
3202  virtual void CompensatorDisable(int32_t compensatorNumber, bool force) PURE_VIRTUAL;
3203 
3212  virtual void CompensatorEnable(int32_t compensatorNumber) PURE_VIRTUAL;
3213 
3215 
3220 
3221 
3222 
3244  virtual int32_t UserLimitCountGet() PURE_VIRTUAL;
3245 
3267  virtual void UserLimitCountSet(int32_t userLimitCount) PURE_VIRTUAL;
3268 
3290  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration, bool singleShot) PURE_VIRTUAL;
3291 
3294  virtual void UserLimitConfigSet(int32_t number, RSIUserLimitTriggerType triggerType, RSIAction action, int32_t actionAxis, double duration) PURE_VIRTUAL;
3295 
3297  virtual RSIUserLimitTriggerType UserLimitTriggerTypeGet(int32_t number) PURE_VIRTUAL;
3298 
3300  virtual RSIAction UserLimitActionGet(int32_t number) PURE_VIRTUAL;
3301 
3303  virtual int32_t UserLimitAxisNumberGet(int32_t number) PURE_VIRTUAL;
3304 
3306  virtual double UserLimitDurationGet(int32_t number) PURE_VIRTUAL;
3307 
3309  virtual bool UserLimitSingleShotGet(int32_t number) PURE_VIRTUAL;
3310 
3337  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfUInt32, uint32_t userLimitMask, uint32_t limitValueUInt32) PURE_VIRTUAL;
3338 
3362  virtual void UserLimitConditionSet(int32_t number, int32_t conditionNumber, RSIUserLimitLogic logic, uint64_t addressOfDouble, double limitValueDouble) PURE_VIRTUAL;
3363 
3365  virtual RSIDataType UserLimitConditionDataTypeGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3366 
3368  virtual RSIUserLimitLogic UserLimitConditionLogicGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3369 
3371  virtual uint64_t UserLimitConditionAddressGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3372 
3374  virtual uint32_t UserLimitConditionMaskGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3375 
3377  virtual int32_t UserLimitConditionLimitValueGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3378 
3380  virtual double UserLimitConditionLimitValueDoubleGet(int32_t number, int32_t conditionNumber) PURE_VIRTUAL;
3381 
3410  virtual void UserLimitOutputSet(int32_t number, uint32_t andMask, uint32_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3411 
3414  virtual void UserLimitOutputSet(int32_t number, int32_t valueSet, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3415 
3418  virtual void UserLimitOutputSet(int32_t number, uint64_t andMask, uint64_t orMask, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3419 
3422  virtual void UserLimitOutputSet(int32_t number, double limitValueDouble, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3423 
3441  virtual void UserLimitOutputSet(int32_t number, RSIDataType dataType, uint64_t inputPtr, uint64_t outputPtr, bool enabled) PURE_VIRTUAL;
3442 
3443 
3444 
3446  virtual bool UserLimitOutputEnableGet(int32_t number) PURE_VIRTUAL;
3447 
3449  virtual RSIDataType UserLimitOutputDataTypeGet(int32_t number) PURE_VIRTUAL;
3450 
3452  virtual uint64_t UserLimitOutputAddressGet(int32_t number) PURE_VIRTUAL;
3453 
3455  virtual uint64_t UserLimitOutputInputAddressGet(int32_t number) PURE_VIRTUAL;
3456 
3458  virtual uint32_t UserLimitOutputAndMaskGet(int32_t number) PURE_VIRTUAL;
3459 
3461  virtual uint32_t UserLimitOutputOrMaskGet(int32_t number) PURE_VIRTUAL;
3462 
3464  virtual int32_t UserLimitOutputValueGet(int32_t number) PURE_VIRTUAL;
3465 
3467  virtual uint64_t UserLimitOutputAndMask64Get(int32_t number) PURE_VIRTUAL;
3468 
3470  virtual uint64_t UserLimitOutputOrMask64Get(int32_t number) PURE_VIRTUAL;
3471 
3472 
3474  virtual double UserLimitOutputDoubleGet(int32_t number) PURE_VIRTUAL;
3475 
3498  virtual bool UserLimitStateGet(int32_t number) PURE_VIRTUAL;
3499 
3522  virtual bool UserLimitEnableGet(int32_t number) PURE_VIRTUAL;
3523 
3525  virtual void UserLimitEnableSet(int32_t number, bool enable) PURE_VIRTUAL;
3526 
3543  virtual void UserLimitDisable(int32_t number) PURE_VIRTUAL;
3544 
3558  virtual void UserLimitReset(int32_t number) PURE_VIRTUAL;
3559 
3570 
3571  virtual int32_t UserLimitCountMax() PURE_VIRTUAL;
3572 
3592  virtual void UserLimitInterruptUserDataAddressSet(int32_t number, uint32_t userDataIndex, uint64_t address) PURE_VIRTUAL;
3593 
3595  virtual uint64_t UserLimitInterruptUserDataAddressGet(int32_t number, uint32_t userDataIndex) PURE_VIRTUAL;
3597 
3602 
3605 
3607 
3609  // Internal
3610  virtual RSIIMotionControllerInitializationState InitializationStateGet() PURE_VIRTUAL;
3611 
3616  static MotionController* CreateFromFile(const char* const fileName);
3617 
3620  static MotionController* CreateTrace();
3621 
3631  virtual void MemoryToFile(const char* const fileName) PURE_VIRTUAL;
3635 };
3636 
3638 
3641 class RSI_API RapidCodeNetworkNode : public virtual RapidCodeObject {
3642 public:
3643 
3649  static inline constexpr uint32_t SDOTimeoutMillisecondsDefault = 100;
3651 
3652 
3657 
3659  virtual bool Exists() PURE_VIRTUAL;
3660 
3662  virtual RSINodeType TypeGet() PURE_VIRTUAL;
3663 
3665  virtual bool IsEtherCAT() PURE_VIRTUAL;
3666 
3668  virtual bool IsSynqNet() PURE_VIRTUAL;
3669 
3671 
3676 
3678  virtual bool HasIO() PURE_VIRTUAL;
3679 
3681  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
3682 
3684  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
3685 
3687  virtual void DigitalOutSet(int32_t digitalOutNumber, bool state) PURE_VIRTUAL;
3688 
3690  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
3691 
3693  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
3694 
3696  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
3697 
3699 
3703 
3705  virtual int32_t DigitalInCountGet() PURE_VIRTUAL;
3706 
3708  virtual int32_t DigitalOutCountGet() PURE_VIRTUAL;
3709 
3711  virtual int32_t AnalogInCountGet() PURE_VIRTUAL;
3712 
3714  virtual int32_t AnalogOutCountGet() PURE_VIRTUAL;
3715 
3716 
3718  virtual int32_t SegmentCountGet() PURE_VIRTUAL;
3719 
3721  virtual int32_t SegmentDigitalInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3722 
3724  virtual int32_t SegmentDigitalOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3725 
3727  virtual int32_t SegmentAnalogInCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3728 
3730  virtual int32_t SegmentAnalogOutCountGet(int32_t segmentNumber) PURE_VIRTUAL;
3731 
3733  virtual int32_t SegmentIDGet(int32_t segmentNumber) PURE_VIRTUAL;
3734 
3750  virtual uint64_t DigitalInAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3751 
3767  virtual int32_t DigitalInMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3768 
3784  virtual uint64_t DigitalOutAddressGet(int32_t bitNumber) PURE_VIRTUAL;
3785 
3801  virtual int32_t DigitalOutMaskGet(int32_t bitNumber) PURE_VIRTUAL;
3802 
3818  virtual uint64_t AnalogInAddressGet(int32_t channel) PURE_VIRTUAL;
3819 
3835  virtual int32_t AnalogInMaskGet(int32_t channel) PURE_VIRTUAL;
3836 
3852  virtual uint64_t AnalogOutAddressGet(int32_t channel) PURE_VIRTUAL;
3853 
3869  virtual int32_t AnalogOutMaskGet(int32_t channel) PURE_VIRTUAL;
3870 
3883  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3884 
3888  virtual int32_t ServiceChannelRead(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3889 
3903 // RapidCodeEtherCATNode
3904  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount) PURE_VIRTUAL;
3905 
3909  virtual const char* const ServiceChannelReadString(int32_t index, int32_t subIndex, int32_t byteCount, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3910 
3927  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue) PURE_VIRTUAL;
3928 
3929 
3934  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3935 
3949  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue) PURE_VIRTUAL;
3950 
3958  virtual void ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char* const stringValue, uint32_t timeoutMilliseconds) PURE_VIRTUAL;
3959 
3965  virtual char* AKDASCIICommand(const char* const command) PURE_VIRTUAL;
3966 
3968  virtual void ClearFaults(int32_t axisNumber) PURE_VIRTUAL;
3969 
3971  virtual uint32_t VendorIdGet() PURE_VIRTUAL;
3972 
3986  virtual const char* const NameGet() PURE_VIRTUAL;
3987 
4001  virtual const char* const ProductNameGet() PURE_VIRTUAL;
4002 
4016  virtual const char* const VendorNameGet() PURE_VIRTUAL;
4017 
4019  virtual uint32_t ProductCodeGet() PURE_VIRTUAL;
4020 
4022  virtual uint32_t RevisionGet() PURE_VIRTUAL;
4023 
4025  virtual uint32_t StationAliasGet() PURE_VIRTUAL;
4026 
4028  virtual const char* const SerialNumberGet() PURE_VIRTUAL;
4029 
4030  // Get the number of Axis objects associated with this NetworkNode.
4031  virtual uint32_t AxisCountGet() PURE_VIRTUAL;
4032 
4034  virtual uint16_t StatusWordGet(int32_t axisIndex) PURE_VIRTUAL;
4035 };
4036 
4038 
4042 class RSI_API IO : public virtual RapidCodeObject {
4043 public:
4044 
4045  friend class MotionController;
4046 
4051 
4053  RapidCodeNetworkNode* NetworkNode;
4056 
4058 
4063 
4064 
4065 
4101  virtual bool IOExists() PURE_VIRTUAL;
4102 
4120  virtual int32_t NumberGet() PURE_VIRTUAL;
4122 
4127 
4128 
4129 
4161  virtual bool DigitalInGet(int32_t digitalInNumber) PURE_VIRTUAL;
4162 
4197  virtual bool DigitalOutGet(int32_t digitalOutNumber) PURE_VIRTUAL;
4198 
4231  virtual void DigitalOutSet(int32_t digitalOutNumber, bool outValue) PURE_VIRTUAL;
4232 
4257  virtual int32_t AnalogInGet(int32_t analogChannel) PURE_VIRTUAL;
4258 
4292  virtual int32_t AnalogOutGet(int32_t analogChannel) PURE_VIRTUAL;
4293 
4327  virtual void AnalogOutSet(int32_t analogChannel, int32_t analogValue) PURE_VIRTUAL;
4329 
4331  virtual const char* const UserLabelGet() PURE_VIRTUAL;
4332  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
4333 };
4334 
4336 
4339 class RSI_API RapidCodeMotion : public virtual RapidCodeInterrupt{
4340 public:
4341 
4347 
4350 
4352 
4353 
4357 
4376  virtual int32_t NumberGet() PURE_VIRTUAL;
4380 
4407  virtual void TriggeredModify() PURE_VIRTUAL;
4408 
4436  virtual void Stop() PURE_VIRTUAL;
4437 
4463  virtual void Resume() PURE_VIRTUAL;
4464 
4489  virtual void EStop() PURE_VIRTUAL;
4490 
4512  virtual void EStopAbort() PURE_VIRTUAL;
4513 
4532  virtual void EStopModify() PURE_VIRTUAL;
4533 
4536  virtual void EStopModifyAbort() PURE_VIRTUAL;
4537 
4560  virtual void Abort() PURE_VIRTUAL;
4561 
4590  virtual void ClearFaults() PURE_VIRTUAL;
4591 
4615  virtual void AmpEnableSet(bool enable) PURE_VIRTUAL;
4616 
4644  virtual int32_t AmpEnableSet(bool enable, int32_t ampActiveTimeoutMilliseconds) PURE_VIRTUAL;
4645 
4668 
4669  virtual void Map() PURE_VIRTUAL;
4670 
4691  virtual void Unmap() PURE_VIRTUAL;
4692 
4698  virtual bool IsMapped() PURE_VIRTUAL;
4699 
4718  virtual void FeedRateSet(double rate) PURE_VIRTUAL;
4719 
4740  virtual double FeedRateGet() PURE_VIRTUAL;
4741 
4745 
4746 
4747 
4748 
4770  virtual RSIState StateGet() PURE_VIRTUAL;
4771 
4785 
4787 
4808  virtual RSISource SourceGet() PURE_VIRTUAL;
4809 
4841  virtual const char* const SourceNameGet(RSISource source) PURE_VIRTUAL;
4842 
4867  virtual int32_t MotionDoneWait() PURE_VIRTUAL;
4868 
4897  virtual int32_t MotionDoneWait(int32_t waitTimeoutMilliseconds) PURE_VIRTUAL;
4898 
4921  virtual bool MotionDoneGet() PURE_VIRTUAL;
4922 
4947 
4948  virtual bool StatusBitGet(RSIEventType bitMask) PURE_VIRTUAL;
4949 
4953 
4954 
4955 
4985  virtual void InterruptEnableSet(bool enable) PURE_VIRTUAL;
4986 
4987 
4988 
5003  virtual void InterruptWake() PURE_VIRTUAL;
5004 
5008 
5009 
5010 
5028  virtual double StopTimeGet() PURE_VIRTUAL;
5029 
5047  virtual void StopTimeSet(double seconds) PURE_VIRTUAL;
5048 
5066  virtual double EStopTimeGet() PURE_VIRTUAL;
5067 
5085  virtual void EStopTimeSet(double seconds) PURE_VIRTUAL;
5086 
5105  virtual double MotionDelayGet() PURE_VIRTUAL;
5106 
5129  virtual void MotionDelaySet(double seconds) PURE_VIRTUAL;
5130 
5153  virtual uint16_t MotionIdGet() PURE_VIRTUAL;
5154 
5174  virtual void MotionIdSet(uint16_t id) PURE_VIRTUAL;
5175 
5177  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
5178 
5180  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
5181 
5197  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
5198 
5207  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
5208 
5230  virtual RSIMotionHoldType MotionHoldTypeGet() PURE_VIRTUAL;
5231 
5266  virtual void MotionHoldTypeSet(RSIMotionHoldType type) PURE_VIRTUAL;
5267 
5281  virtual int32_t MotionHoldGateNumberGet() PURE_VIRTUAL;
5282 
5303 
5304  virtual void MotionHoldGateNumberSet(int32_t gateNumber) PURE_VIRTUAL;
5305 
5324  virtual double MotionHoldTimeoutGet() PURE_VIRTUAL;
5325 
5346  virtual void MotionHoldTimeoutSet(double seconds) PURE_VIRTUAL;
5347 
5373  virtual bool MotionHoldGateGet() PURE_VIRTUAL;
5374 
5399  virtual void MotionHoldGateSet(bool hold) PURE_VIRTUAL;
5400 
5419  virtual int32_t MotionHoldAxisNumberGet() PURE_VIRTUAL;
5420 
5439  virtual void MotionHoldAxisNumberSet(int32_t number) PURE_VIRTUAL;
5440 
5459 
5460  virtual double MotionHoldAxisPositionGet() PURE_VIRTUAL;
5461 
5480  virtual void MotionHoldAxisPositionSet(double position) PURE_VIRTUAL;
5481 
5483  virtual RSIUserLimitLogic MotionHoldAxisLogicGet() PURE_VIRTUAL;
5484 
5486  virtual void MotionHoldAxisLogicSet(RSIUserLimitLogic logic) PURE_VIRTUAL;
5487 
5506  virtual uint64_t MotionHoldUserAddressGet() PURE_VIRTUAL;
5507 
5526  virtual void MotionHoldUserAddressSet(uint64_t address) PURE_VIRTUAL;
5527 
5545  virtual int32_t MotionHoldUserMaskGet() PURE_VIRTUAL;
5546 
5564  virtual void MotionHoldUserMaskSet(int32_t holdMask) PURE_VIRTUAL;
5565 
5583  virtual int32_t MotionHoldUserPatternGet() PURE_VIRTUAL;
5584 
5602  virtual void MotionHoldUserPatternSet(int32_t pattern) PURE_VIRTUAL;
5603 
5605  virtual void MotionAttributeMaskDefaultSet() PURE_VIRTUAL;
5606 
5633 
5634  virtual bool MotionAttributeMaskOnGet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5635 
5656  virtual void MotionAttributeMaskOnSet(RSIMotionAttrMask maskOn) PURE_VIRTUAL;
5657 
5676 
5677  virtual void MotionAttributeMaskOffSet(RSIMotionAttrMask maskOff) PURE_VIRTUAL;
5678 
5682 
5683 
5684 
5717  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;
5718 
5752  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;
5753 
5777  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;
5778 
5783  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address) PURE_VIRTUAL;
5784 
5808  virtual void StreamingOutputAdd(int32_t onMask, int32_t offMask, uint64_t address, int32_t ptPointIndex) PURE_VIRTUAL;
5809 
5813  // @see StreamingOutputAdd
5814  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on) PURE_VIRTUAL;
5815 
5836  virtual void StreamingOutputAdd(RapidCode::IOPoint* point, bool on, int32_t ptPointIndex) PURE_VIRTUAL;
5837 
5854  virtual void StreamingOutputsClear() PURE_VIRTUAL;
5855 
5876  virtual void StreamingOutputsEnableSet(bool enable) PURE_VIRTUAL;
5877 };
5878 
5887 class RSI_API Axis : public virtual RapidCodeMotion{
5888 public:
5889 
5890  friend class MotionController;
5891  friend class MultiAxis;
5892 
5893 
5899  static inline constexpr uint32_t NetworkIndexInvalid = 65535;
5901 
5902 
5907 
5909  RapidCodeNetworkNode* NetworkNode;
5910 
5912 
5917 
5956  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel) PURE_VIRTUAL;
5957 
5980  virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel) PURE_VIRTUAL;
5981 
6005  virtual void MoveTrapezoidal(double position) PURE_VIRTUAL; // use defaults Overload
6006  //virtual void MoveTrapezoidal(double position, double vel, double accel, double decel, double finalVel, bool checkLimits) PURE_VIRTUAL;
6007 
6047  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6048 
6053  virtual void MoveSCurve(double position) PURE_VIRTUAL;
6054 
6064  virtual void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6065 
6069  virtual void MoveVelocity(double velocity) PURE_VIRTUAL;
6070 
6106  virtual void MoveVelocity(double velocity, double accel) PURE_VIRTUAL;
6107 
6145  virtual void MoveVelocitySCurve(double velocity, double accel, double jerkPct) PURE_VIRTUAL;
6146 
6186  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct) PURE_VIRTUAL;
6187 
6191  virtual void MoveRelative(double releativePosition) PURE_VIRTUAL;
6192 
6196  virtual void MoveRelative(double relativePosition, double vel, double accel, double decel, double jerkPct, double finalVel) PURE_VIRTUAL;
6198 
6203 
6231  virtual void PositionSet(double position) PURE_VIRTUAL;
6232 
6256  virtual double ActualPositionGet() PURE_VIRTUAL;
6257 
6282  virtual void ActualPositionSet(double position) PURE_VIRTUAL;
6283 
6303  virtual double CompensationPositionGet() PURE_VIRTUAL;
6304 
6320  virtual void CompensationPositionSet(double position) PURE_VIRTUAL;
6321 
6336  virtual double TargetPositionGet() PURE_VIRTUAL;
6337 
6363 
6364  virtual double CommandPositionGet() PURE_VIRTUAL;
6365 
6402  virtual void CommandPositionSet(double position) PURE_VIRTUAL;
6403 
6430  virtual void CommandPositionDirectSet(double position) PURE_VIRTUAL;
6431 
6453  virtual double OriginPositionGet() PURE_VIRTUAL;
6454 
6480  virtual void OriginPositionSet(double position) PURE_VIRTUAL;
6481 
6505  virtual double PositionErrorGet() PURE_VIRTUAL;
6506 
6531  virtual double CommandVelocityGet() PURE_VIRTUAL;
6532 
6558  virtual double ActualVelocityGet() PURE_VIRTUAL;
6559 
6583  virtual double CommandAccelGet() PURE_VIRTUAL;
6584 
6586  virtual double CommandJerkGet() PURE_VIRTUAL;
6587 
6611  virtual double EncoderPositionGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
6612 
6637  virtual double UserUnitsGet() PURE_VIRTUAL;
6638 
6664  virtual void UserUnitsSet(double countsPerUserUnit) PURE_VIRTUAL;
6665 
6667  virtual double UserUnitsToCounts(double userUnits) PURE_VIRTUAL;
6668 
6670  virtual double CountsToUserUnits(double counts) PURE_VIRTUAL;
6671 
6693  virtual int32_t FramesToExecuteGet() PURE_VIRTUAL;
6695 
6700 
6723 
6724  virtual void Home() PURE_VIRTUAL; // this one moves to zero by default
6725 
6729  virtual void Home(bool moveToZero) PURE_VIRTUAL;
6730 
6751 
6752  virtual RSIHomeMethod HomeMethodGet() PURE_VIRTUAL;
6753 
6774 
6775  virtual void HomeMethodSet(RSIHomeMethod method) PURE_VIRTUAL;
6776 
6799 
6800  virtual double HomeOffsetGet() PURE_VIRTUAL;
6801 
6822 
6823  virtual void HomeOffsetSet(double offset) PURE_VIRTUAL;
6824 
6845 
6846  virtual double HomeVelocityGet() PURE_VIRTUAL;
6847 
6850  virtual double HomeVelocityGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6851 
6875 
6876  virtual void HomeVelocitySet(double velocity) PURE_VIRTUAL;
6877 
6880  virtual void HomeVelocitySet(RSIHomeStage homeStage, double velocity) PURE_VIRTUAL;
6881 
6900  virtual double HomeSlowVelocityGet() PURE_VIRTUAL;
6901 
6919  virtual void HomeSlowVelocitySet(double velocity) PURE_VIRTUAL;
6920 
6941 
6942  virtual double HomeAccelerationGet() PURE_VIRTUAL;
6943 
6945  virtual double HomeAccelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6946 
6969 
6970  virtual void HomeAccelerationSet(double accel) PURE_VIRTUAL;
6971 
6973  virtual void HomeAccelerationSet(RSIHomeStage homeStage, double accel) PURE_VIRTUAL;
6974 
6994 
6995  virtual double HomeDecelerationGet() PURE_VIRTUAL;
6996 
6998  virtual double HomeDecelerationGet(RSIHomeStage homeStage) PURE_VIRTUAL;
6999 
7021 
7022  virtual void HomeDecelerationSet(double decel) PURE_VIRTUAL;
7023 
7025  virtual void HomeDecelerationSet(RSIHomeStage homeStage, double decel) PURE_VIRTUAL;
7026 
7047 
7048  virtual double HomeJerkPercentGet() PURE_VIRTUAL;
7049 
7051  virtual double HomeJerkPercentGet(RSIHomeStage homeStage) PURE_VIRTUAL;
7052 
7075 
7076  virtual void HomeJerkPercentSet(double percent) PURE_VIRTUAL;
7077 
7080  virtual void HomeJerkPercentSet(RSIHomeStage homeStage, double percent) PURE_VIRTUAL;
7081 
7103  virtual void HomeCancelSet(bool cancel) PURE_VIRTUAL;
7104 
7125  virtual bool HomeStateGet() PURE_VIRTUAL;
7126 
7140  virtual void HomeStateSet(bool homed) PURE_VIRTUAL;
7141 
7146  virtual void HomeLimitCustomConfigSet(uint64_t address, int32_t bitIndex) PURE_VIRTUAL;
7147 
7149  virtual void HomeLimitCustomConfigReset() PURE_VIRTUAL;
7150 
7151  virtual uint64_t HomeLimitCustomConfigAddressGet() PURE_VIRTUAL;
7152 
7155  virtual int32_t HomeLimitCustomConfigBitIndexGet() PURE_VIRTUAL;
7156 
7180 
7181  virtual void HomeTravelDistanceSet(RSIHomeStage stage, double distanceToTravel) PURE_VIRTUAL;
7182 
7204 
7205  virtual RSIHomeStage HomeStageGet() PURE_VIRTUAL;
7206 
7222  virtual void HomeBehaviorSet(RSIAction behavior) PURE_VIRTUAL;
7223 
7237  virtual RSIAction HomeBehaviorGet() PURE_VIRTUAL;
7239 
7245 
7247  virtual bool FaultMaskBitGet(RSIMotorFaultMask bitMask) PURE_VIRTUAL;
7248 
7250  virtual uint16_t StatusWordGet() PURE_VIRTUAL;
7252 
7257  // reads active configuration to report state
7258 
7284 
7285  virtual bool NegativeLimitGet() PURE_VIRTUAL;
7286 
7312  virtual bool PositiveLimitGet() PURE_VIRTUAL;
7313 
7344  virtual bool HomeLimitGet() PURE_VIRTUAL;
7345 
7375  virtual bool HomeSwitchGet() PURE_VIRTUAL;
7376 
7399  virtual bool AmpFaultGet() PURE_VIRTUAL;
7400 
7426  virtual bool AmpEnableGet() PURE_VIRTUAL;
7427 
7454  virtual bool DedicatedInExists(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7455 
7482  virtual bool DedicatedOutExists(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7483 
7508  virtual bool DedicatedInGet(RSIMotorDedicatedIn motorDedicatedInNumber) PURE_VIRTUAL;
7509 
7534  virtual bool DedicatedOutGet(RSIMotorDedicatedOut motorDedicatedOutNumber) PURE_VIRTUAL;
7536 
7541 
7564  virtual bool DigitalInGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7565 
7588  virtual bool DigitalOutGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7589 
7612 
7613  virtual void DigitalOutSet(RSIMotorGeneralIo motorGeneralIoNumber, bool outValue) PURE_VIRTUAL;
7614 
7635  virtual bool DigitalIoExists(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7636 
7657  virtual const char* const DigitalIoNameGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7658 
7683  virtual RSIMotorIoTypeMask DigitalIoValidTypesMaskGet(RSIMotorGeneralIo motorGeneralIoNumber) PURE_VIRTUAL;
7684 
7705  virtual void DigitalIoTypeSet(RSIMotorGeneralIo motorGeneralIoNumber, RSIMotorIoType type) PURE_VIRTUAL;
7706 
7725  virtual double AnalogInGet(int32_t channel) PURE_VIRTUAL;
7727 
7732 
7749  virtual double EStopDecelerationGet() PURE_VIRTUAL;
7750 
7768  virtual void EStopDecelerationSet(double decel) PURE_VIRTUAL;
7769 
7783  virtual double EStopJerkPercentGet() PURE_VIRTUAL;
7784 
7805  virtual void EStopJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7806 
7819  virtual double TriggeredModifyDecelerationGet() PURE_VIRTUAL;
7820 
7841  virtual void TriggeredModifyDecelerationSet(double decel) PURE_VIRTUAL;
7842 
7856  virtual double TriggeredModifyJerkPercentGet() PURE_VIRTUAL;
7857 
7878  virtual void TriggeredModifyJerkPercentSet(double jerkPct) PURE_VIRTUAL;
7879 
7898  virtual int32_t FrameBufferSizeGet() PURE_VIRTUAL;
7899 
7916  virtual void FrameBufferSizeSet(int32_t frameSize) PURE_VIRTUAL;
7917 
7939  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
7940 
7963  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
7965 
7970  virtual double MotionFinalVelocityGet() PURE_VIRTUAL;
7971 
7972  virtual void MotionFinalVelocitySet(double finalVelocity) PURE_VIRTUAL;
7973 
7975  virtual double DefaultVelocityGet() PURE_VIRTUAL;
7976 
7978  virtual void DefaultVelocitySet(double velocity) PURE_VIRTUAL;
7979 
7981  virtual double DefaultAccelerationGet() PURE_VIRTUAL;
7982 
7984  virtual void DefaultAccelerationSet(double acceleration) PURE_VIRTUAL;
7985 
7987  virtual double DefaultDecelerationGet() PURE_VIRTUAL;
7988 
7990  virtual void DefaultDecelerationSet(double deceleration) PURE_VIRTUAL;
7991 
7993  virtual double DefaultJerkPercentGet() PURE_VIRTUAL;
7994 
7996  virtual void DefaultJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
7997 
7999  virtual double DefaultPosition1Get() PURE_VIRTUAL;
8000 
8002  virtual void DefaultPosition1Set(double position1) PURE_VIRTUAL;
8003 
8005  virtual double DefaultPosition2Get() PURE_VIRTUAL;
8006 
8008  virtual void DefaultPosition2Set(double position2) PURE_VIRTUAL;
8009 
8011  virtual double DefaultRelativeIncrementGet() PURE_VIRTUAL;
8012 
8014  virtual void DefaultRelativeIncrementSet(double relativeIncrement) PURE_VIRTUAL;
8016 
8020  // /@{
8021 
8046  virtual RSIAction AmpFaultActionGet() PURE_VIRTUAL;
8047 
8072  virtual void AmpFaultActionSet(RSIAction action) PURE_VIRTUAL;
8073 
8097  virtual bool AmpFaultTriggerStateGet() PURE_VIRTUAL;
8098 
8122  virtual void AmpFaultTriggerStateSet(bool state) PURE_VIRTUAL;
8123 
8146  virtual double AmpFaultDurationGet() PURE_VIRTUAL;
8147 
8170  virtual void AmpFaultDurationSet(double seconds) PURE_VIRTUAL;
8171 
8198  virtual RSIAction HomeActionGet() PURE_VIRTUAL;
8199 
8225  virtual void HomeActionSet(RSIAction action) PURE_VIRTUAL;
8226 
8254  virtual bool HomeTriggerStateGet() PURE_VIRTUAL;
8255 
8278  virtual void HomeTriggerStateSet(bool state) PURE_VIRTUAL;
8279 
8303  virtual double HomeDurationGet() PURE_VIRTUAL;
8304 
8329  virtual void HomeDurationSet(double seconds) PURE_VIRTUAL;
8330 
8361  virtual RSIAction ErrorLimitActionGet() PURE_VIRTUAL;
8362 
8391  virtual void ErrorLimitActionSet(RSIAction action) PURE_VIRTUAL;
8392 
8417  virtual double ErrorLimitTriggerValueGet() PURE_VIRTUAL;
8418 
8442  virtual void ErrorLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8443 
8467  virtual double ErrorLimitDurationGet() PURE_VIRTUAL;
8468 
8493  virtual void ErrorLimitDurationSet(double seconds) PURE_VIRTUAL;
8494 
8521  virtual RSIAction HardwareNegLimitActionGet() PURE_VIRTUAL;
8522 
8549  virtual void HardwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8550 
8576  virtual bool HardwareNegLimitTriggerStateGet() PURE_VIRTUAL;
8577 
8603  virtual void HardwareNegLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8604 
8629  virtual double HardwareNegLimitDurationGet() PURE_VIRTUAL;
8630 
8655 
8656  virtual void HardwareNegLimitDurationSet(double seconds) PURE_VIRTUAL;
8657 
8684  virtual RSIAction HardwarePosLimitActionGet() PURE_VIRTUAL;
8685 
8712  virtual void HardwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
8713 
8734  virtual bool HardwarePosLimitTriggerStateGet() PURE_VIRTUAL;
8735 
8761  virtual void HardwarePosLimitTriggerStateSet(bool state) PURE_VIRTUAL;
8762 
8787  virtual double HardwarePosLimitDurationGet() PURE_VIRTUAL;
8788 
8813  virtual void HardwarePosLimitDurationSet(double seconds) PURE_VIRTUAL;
8814 
8842  virtual RSIAction SoftwareNegLimitActionGet() PURE_VIRTUAL;
8843 
8869  virtual void SoftwareNegLimitActionSet(RSIAction action) PURE_VIRTUAL;
8870 
8895  virtual double SoftwareNegLimitTriggerValueGet() PURE_VIRTUAL;
8896 
8921  virtual void SoftwareNegLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
8922 
8948  virtual RSIAction SoftwarePosLimitActionGet() PURE_VIRTUAL;
8949 
8975  virtual void SoftwarePosLimitActionSet(RSIAction action) PURE_VIRTUAL;
8976 
9001  virtual double SoftwarePosLimitTriggerValueGet() PURE_VIRTUAL;
9002 
9027  virtual void SoftwarePosLimitTriggerValueSet(double triggerValue) PURE_VIRTUAL;
9028 
9056  virtual RSIAction EncoderFaultActionGet() PURE_VIRTUAL;
9057 
9084  virtual void EncoderFaultActionSet(RSIAction action) PURE_VIRTUAL;
9085 
9111  virtual RSIMotorFeedbackFault EncoderFaultTriggerGet() PURE_VIRTUAL;
9112 
9136  virtual void EncoderFaultTriggerSet(RSIMotorFeedbackFault encoder) PURE_VIRTUAL;
9137 
9161  virtual double EncoderFaultDurationGet() PURE_VIRTUAL;
9162 
9186  virtual void EncoderFaultDurationSet(double seconds) PURE_VIRTUAL;
9187 
9189  virtual RSIAction NodeFailureActionGet() PURE_VIRTUAL;
9190 
9192  virtual void NodeFailureActionSet(RSIAction action) PURE_VIRTUAL;
9193 
9211  virtual uint64_t AddressGet( RSIAxisAddressType addressType) PURE_VIRTUAL;
9212 
9227  virtual RSIDataType AddressDataTypeGet(RSIAxisAddressType type) PURE_VIRTUAL;
9228 
9229  // common limit methods
9230 
9232  virtual RSIAction LimitActionGet(RSIEventType limit) PURE_VIRTUAL;
9233 
9235  virtual void LimitActionSet(RSIEventType limit, RSIAction action) PURE_VIRTUAL;
9236 
9238  virtual bool LimitTriggerStateGet(RSIEventType limit) PURE_VIRTUAL;
9239 
9241  virtual void LimitTriggerStateSet(RSIEventType limit, bool triggerState) PURE_VIRTUAL;
9242 
9244  virtual double LimitTriggerValueGet(RSIEventType limit) PURE_VIRTUAL;
9245 
9247  virtual void LimitTriggerValueSet(RSIEventType limit, double triggerValue) PURE_VIRTUAL;
9248 
9250  virtual double LimitDurationGet(RSIEventType limit) PURE_VIRTUAL;
9251 
9253  virtual void LimitDurationSet(RSIEventType limit, double seconds) PURE_VIRTUAL;
9255 
9260 
9277  virtual double PositionToleranceFineGet() PURE_VIRTUAL;
9278 
9295  virtual void PositionToleranceFineSet(double tolerance) PURE_VIRTUAL;
9296 
9313  virtual double PositionToleranceCoarseGet() PURE_VIRTUAL;
9314 
9333 
9334  virtual void PositionToleranceCoarseSet(double tolerance) PURE_VIRTUAL;
9335 
9352  virtual double VelocityToleranceGet() PURE_VIRTUAL;
9353 
9370  virtual void VelocityToleranceSet(double tolerance) PURE_VIRTUAL;
9371 
9389  virtual double SettlingTimeGet() PURE_VIRTUAL;
9390 
9408  virtual void SettlingTimeSet(double time) PURE_VIRTUAL;
9409 
9429  virtual bool SettleOnStopGet() PURE_VIRTUAL;
9430 
9450 
9451  virtual void SettleOnStopSet(bool state) PURE_VIRTUAL;
9452 
9472  virtual bool SettleOnEStopGet() PURE_VIRTUAL;
9473 
9492  virtual void SettleOnEStopSet(bool state) PURE_VIRTUAL;
9493 
9513  virtual bool SettleOnEStopCmdEqActGet() PURE_VIRTUAL;
9514 
9533  virtual void SettleOnEStopCmdEqActSet(bool state) PURE_VIRTUAL;
9535 
9540 
9560  virtual RSIMotorType MotorTypeGet() PURE_VIRTUAL;
9561 
9580  virtual void MotorTypeSet(RSIMotorType type) PURE_VIRTUAL;
9581 
9601  virtual RSIMotorDisableAction AmpDisableActionGet() PURE_VIRTUAL;
9602 
9621  virtual void AmpDisableActionSet(RSIMotorDisableAction action) PURE_VIRTUAL;
9622 
9643 
9644  virtual RSIMotorBrakeMode BrakeModeGet() PURE_VIRTUAL;
9645 
9664  virtual void BrakeModeSet(RSIMotorBrakeMode mode) PURE_VIRTUAL;
9665 
9684  virtual double BrakeApplyDelayGet() PURE_VIRTUAL;
9685 
9686 
9706  virtual void BrakeApplyDelaySet(double seconds) PURE_VIRTUAL;
9707 
9726  virtual double BrakeReleaseDelayGet() PURE_VIRTUAL;
9727 
9748  virtual void BrakeReleaseDelaySet(double seconds) PURE_VIRTUAL;
9749 
9751  virtual void ClosedLoopStepperSet(bool enable) PURE_VIRTUAL;
9752 
9754  virtual int32_t ClosedLoopStepperVersionGet() PURE_VIRTUAL;
9755 
9757  virtual uint64_t EncoderPointerGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9758 
9760  virtual void EncoderPointerSet(RSIMotorFeedback encoder, uint64_t address) PURE_VIRTUAL;
9761 
9763  virtual uint64_t FeedbackDeltaPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9764 
9765 
9767  virtual void FeedbackDeltaPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9768 
9770  virtual uint64_t FeedbackPointerGet(RSIAxisPositionInput input) PURE_VIRTUAL;
9771 
9792  virtual void FeedbackPointerSet(RSIAxisPositionInput input, uint64_t address) PURE_VIRTUAL;
9793 
9795  virtual int32_t EncoderRatioNumeratorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9796 
9798  virtual int32_t EncoderRatioDenominatorGet(RSIMotorFeedback encoder) PURE_VIRTUAL;
9799 
9824  virtual void EncoderRatioSet(RSIMotorFeedback encoder, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9825 
9827  virtual const char* const EncoderRatioPrimaryGet() PURE_VIRTUAL;
9828 
9830  virtual void EncoderRatioPrimarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9831 
9833  virtual const char* const EncoderRatioSecondaryGet() PURE_VIRTUAL;
9834 
9836  virtual void EncoderRatioSecondarySet(char* numeratorCommaDenominator) PURE_VIRTUAL;
9837 
9839  virtual int32_t EncoderCountGet() PURE_VIRTUAL;
9840 
9843  virtual void EncoderCountSet(int32_t count) PURE_VIRTUAL;
9844 
9846  virtual RSIAxisGantryType GantryTypeGet() PURE_VIRTUAL;
9847 
9849  virtual void GantryTypeSet(RSIAxisGantryType type) PURE_VIRTUAL;
9850 
9867  virtual RSIOperationMode OperationModeGet() PURE_VIRTUAL;
9868 
9885  virtual void OperationModeSet(RSIOperationMode mode) PURE_VIRTUAL;
9886 
9909  virtual int32_t MotorFaultMaskGet() PURE_VIRTUAL;
9910 
9939  virtual void MotorFaultMaskSet(int32_t faultMask) PURE_VIRTUAL;
9941 
9946 
9969  virtual void GearingEnable(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9970 
9974  virtual void GearingEnable(Axis* masterAxis, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9975 
9996  virtual void GearingRatioChange(int32_t numerator, int32_t denominator) PURE_VIRTUAL;
9997 
10016  virtual void GearingDisable() PURE_VIRTUAL;
10017 
10019  virtual int32_t GearingNumeratorGet() PURE_VIRTUAL;
10020 
10022  virtual int32_t GearingDenominatorGet() PURE_VIRTUAL;
10023 
10025  virtual bool GearingEnableGet() PURE_VIRTUAL;
10026 
10046  virtual int32_t GearingMasterAxisNumberGet() PURE_VIRTUAL;
10047 
10062  virtual RSIAxisMasterType GearingSourceGet() PURE_VIRTUAL;
10064 
10069 
10088  virtual double MotionCamMasterStartGet(Axis* master) PURE_VIRTUAL;
10089 
10106  virtual void MotionCamMasterStartSet(Axis* master, double startPosition) PURE_VIRTUAL;
10107 
10126  virtual int32_t MotionCamRepeatFromGet() PURE_VIRTUAL;
10127 
10147  virtual void MotionCamRepeatFromSet(int32_t repeatFrom) PURE_VIRTUAL;
10148 
10168  virtual void MotionCamRepeatStop() PURE_VIRTUAL;
10169 
10194  virtual void MoveCamLinear(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, const double* const masterDistances, const double* const slavePositions, int32_t pointCount) PURE_VIRTUAL;
10195 
10227  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;
10228 
10248 
10249  virtual int32_t DriveIndexGet() PURE_VIRTUAL;
10251 
10256 
10272  virtual double BacklashWidthGet() PURE_VIRTUAL;
10273 
10289  virtual void BacklashWidthSet(double width) PURE_VIRTUAL;
10290 
10306  virtual double BacklashRateGet() PURE_VIRTUAL;
10307 
10323  virtual void BacklashRateSet(double rate) PURE_VIRTUAL;
10324 
10325 
10339  virtual double BacklashValueGet() PURE_VIRTUAL;
10340 
10342 
10347 
10378  virtual RSIFilterAlgorithm FilterAlgorithmGet() PURE_VIRTUAL;
10379 
10409  virtual void FilterAlgorithmSet(RSIFilterAlgorithm algorithm) PURE_VIRTUAL;
10410 
10439  virtual double FilterCoeffGet(RSIFilterGainPIDCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10440 
10466  virtual void FilterCoeffSet(RSIFilterGainPIDCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10467 
10470  virtual double FilterCoeffGet(RSIFilterGainPIVCoeff coeff, int32_t gainTable) PURE_VIRTUAL;
10471 
10475  virtual void FilterCoeffSet(RSIFilterGainPIVCoeff coeff, int32_t gainTable, double coeffValue) PURE_VIRTUAL;
10476 
10514  virtual int32_t FilterGainTableGet() PURE_VIRTUAL;
10515 
10547  virtual void FilterGainTableSet(int32_t gainTable) PURE_VIRTUAL;
10548 
10568  virtual int32_t FilterGainTableSizeGet() PURE_VIRTUAL;
10569 
10571  virtual double FilterOutputGet(void) PURE_VIRTUAL;
10572 
10588  virtual double FilterLowPassGet() PURE_VIRTUAL;
10589 
10608  virtual void FilterLowPassSet(double frequency) PURE_VIRTUAL;
10609 
10631  virtual void FilterDualLoopSet(Axis* velocityAxis, RSIMotorFeedback velocityEncoder, bool enable) PURE_VIRTUAL;
10632 
10633 
10635  virtual bool FilterGainSchedulingGet() PURE_VIRTUAL;
10636 
10637 
10639  virtual void FilterGainSchedulingSet(bool enable) PURE_VIRTUAL;
10640 
10642  virtual bool IsTuneable() PURE_VIRTUAL;
10643 
10663  virtual void PostFilterLowPassSet(int32_t sectionNumber, double frequency) PURE_VIRTUAL;
10664 
10683  virtual void PostFilterUnityGainSet(int32_t sectionNumber) PURE_VIRTUAL;
10684 
10706  virtual void PostFilterSingleOrderSet(int32_t sectionNumber, double aOne, double bZero, double bOne) PURE_VIRTUAL;
10707 
10723  virtual void PostFilterHighPassSet(int32_t sectionNumber, double cornerFreq) PURE_VIRTUAL;
10724 
10745  virtual void PostFilterNotchSet(int32_t sectionNumber, double centerFreq, double bandwidth) PURE_VIRTUAL;
10746 
10768  virtual void PostFilterResonatorSet(int32_t sectionNumber, double centerFreq, double bandwidth, double gain) PURE_VIRTUAL;
10769 
10791  virtual void PostFilterLeadLagSet(int32_t sectionNumber, double lowGain, double highGain, double centerFreq) PURE_VIRTUAL;
10792 
10811  virtual void PostFilterClear(int32_t sectionNumber) PURE_VIRTUAL;
10812 
10836  virtual void PostFilterBiquadSet(int32_t sectionNumber, double aOne, double aTwo, double bZero, double bOne, double bTwo) PURE_VIRTUAL;
10837 
10839  virtual const char* const PostFilterInfoGet() PURE_VIRTUAL;
10840  //virtual RSIFilterPostFilterSection PostFilterSection;
10842 
10847 
10868  virtual const char* const UserLabelGet() PURE_VIRTUAL;
10869 
10891  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
10893 
10898 
10900  virtual void PostTrajectoryGearingEnableSet(bool enable) PURE_VIRTUAL;
10901 
10903  virtual bool PostTrajectoryGearingEnableGet() PURE_VIRTUAL;
10904 
10906  virtual void PostTrajectoryGearingMasterAxisSet(int32_t masterAxisNumber) PURE_VIRTUAL;
10907 
10909  virtual int32_t PostTrajectoryGearingMasterAxisGet() PURE_VIRTUAL;
10910 
10912  virtual void PostTrajectoryGearingMultiplierSet(double multiplier) PURE_VIRTUAL;
10913 
10915  virtual double PostTrajectoryGearingMultiplierGet() PURE_VIRTUAL;
10916 
10935  virtual uint32_t NetworkIndexGet(RSINetworkIndexType indexType) PURE_VIRTUAL;
10936 
10956  virtual void NetworkIndexSet(RSINetworkIndexType indexType, uint32_t newIndex) PURE_VIRTUAL;
10958 
10961  virtual double BacklashHysteresisLimitGet() PURE_VIRTUAL;
10962  virtual void BacklashHysteresisLimitSet(double hysteresisLimit) PURE_VIRTUAL;
10963 
10990  virtual bool StepperMotorLoopbackGet() PURE_VIRTUAL;
10991 
11018  virtual void StepperMotorLoopbackSet(bool loopback) PURE_VIRTUAL;
11019  virtual RSIMotorStepperPulseType StepperMotorPulseTypeGet(RSIMotorStepperPulse pulse) PURE_VIRTUAL;
11020  virtual void StepperMotorPulseTypeSet(RSIMotorStepperPulse pulse, RSIMotorStepperPulseType type) PURE_VIRTUAL;
11021  virtual uint64_t GearingMasterAddressGet() PURE_VIRTUAL;
11023 };
11024 
11026 
11031 class RSI_API MultiAxis : public virtual RapidCodeMotion {
11032 public:
11033 
11037 
11054  virtual void AxisAdd(Axis *axis) PURE_VIRTUAL;
11055 
11058  virtual void AxesAdd(Axis* *axes, int32_t axisCount) PURE_VIRTUAL;
11059 
11075  virtual void AxisRemoveAll() PURE_VIRTUAL;
11076 
11080 
11096  virtual int32_t AxisCountGet() PURE_VIRTUAL;
11097 
11116  virtual Axis* AxisGet(int32_t index) PURE_VIRTUAL;
11117 
11138  virtual const char* const UserLabelGet() PURE_VIRTUAL;
11139 
11161  virtual void UserLabelSet(const char* const userLabel) PURE_VIRTUAL;
11162 
11166 
11184  virtual double VectorVelocityGet() PURE_VIRTUAL;
11185 
11204  virtual void VectorVelocitySet(double velocity) PURE_VIRTUAL;
11205 
11223  virtual double VectorAccelerationGet() PURE_VIRTUAL;
11224 
11250  virtual void VectorAccelerationSet(double acceleration) PURE_VIRTUAL;
11251 
11269  virtual double VectorDecelerationGet() PURE_VIRTUAL;
11270 
11296  virtual void VectorDecelerationSet(double deceleration) PURE_VIRTUAL;
11297 
11315  virtual double VectorJerkPercentGet() PURE_VIRTUAL;
11316 
11342  virtual void VectorJerkPercentSet(double jerkPercent) PURE_VIRTUAL;
11343 
11370  virtual void MoveVector(const double* const position) PURE_VIRTUAL;
11371 
11374  virtual void MoveVectorRelative(const double* const relativePosition) PURE_VIRTUAL;
11375 
11379 
11402 
11403  virtual double PathTimeSliceGet() PURE_VIRTUAL;
11404 
11428 
11429  virtual void PathTimeSliceSet(double seconds) PURE_VIRTUAL;
11430 
11458  virtual void PathRatioSet(const double* const ratio) PURE_VIRTUAL;
11459 
11462  virtual double PathRatioGet(int32_t index) PURE_VIRTUAL;
11463 
11483  virtual void PathBlendSet(bool blend) PURE_VIRTUAL;
11484 
11496 
11497  virtual void PathPlanTypeSet(RSIPathPlanType type) PURE_VIRTUAL;
11498 
11510 
11511  virtual RSIPathPlanType PathPlanTypeGet() PURE_VIRTUAL;
11512 
11534  virtual void PathListStart(const double* const startPosition) PURE_VIRTUAL;
11535 
11559  virtual void PathLineAdd(const double* const position) PURE_VIRTUAL;
11560 
11583  virtual void PathArcAdd(const double* const center, double angle) PURE_VIRTUAL;
11584 
11606  virtual void PathListEnd() PURE_VIRTUAL;
11607 
11627  virtual void PathMotionStart() PURE_VIRTUAL;
11628 
11632 
11652  virtual void MoveTrapezoidal(const double* const position, const double* const vel, const double* const accel, const double* const decel) PURE_VIRTUAL;
11653 
11656  virtual void MoveTrapezoidal(const double* const position) PURE_VIRTUAL;
11657 
11686  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;
11687 
11690  virtual void MoveSCurve(const double* const position) PURE_VIRTUAL;
11691 
11709  virtual void MoveVelocity(const double* const velocity, const double* const accel) PURE_VIRTUAL;
11710 
11714  virtual void MoveVelocity(const double* const velocity) PURE_VIRTUAL;
11715 
11736  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;
11737 
11740  virtual void MoveRelative(const double* const relativePosition) PURE_VIRTUAL;
11741 
11760  virtual void MoveVelocitySCurve(const double* const velocity, const double* const accel, const double* const jerkPct) PURE_VIRTUAL;
11761 
11781  virtual uint16_t MotionIdExecutingGet() PURE_VIRTUAL;
11782 
11803  virtual uint16_t MotionElementIdExecutingGet() PURE_VIRTUAL;
11804 
11806  virtual int32_t AxisMapCountGet() PURE_VIRTUAL;
11807 
11822  virtual uint64_t AddressGet(RSIMultiAxisAddressType addressType) PURE_VIRTUAL;
11823 
11838  virtual RSIDataType AddressDataTypeGet(RSIMultiAxisAddressType type) PURE_VIRTUAL;
11839 
11850  virtual bool AmpEnableGet() PURE_VIRTUAL;
11851 
11852 
11853 };
11854 
11856 
11860 class RSI_API IOPoint : public virtual RapidCodeObject {
11861 public:
11865 
11884  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorDedicatedIn motorDedicatedInNumber);
11885 
11904  static IOPoint* CreateDigitalInput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
11905 
11922  static IOPoint* CreateDigitalInput(IO* io, int32_t bitNumber);
11923 
11937  static IOPoint* CreateDigitalInput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
11938 
11954  static IOPoint* CreateDigitalInput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
11955 
11974  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorDedicatedOut motorDedicatedOutNumber);
11975 
11994  static IOPoint* CreateDigitalOutput(Axis* axis, RSIMotorGeneralIo motorGeneralIoNumber);
11995 
12012  static IOPoint* CreateDigitalOutput(IO* io, int32_t bitNumber);
12013 
12014 
12029  static IOPoint* CreateDigitalOutput(MotionController* controller, int32_t pdoIndex, int32_t bitNumber, RSIPDOType type);
12030 
12046  static IOPoint* CreateDigitalOutput(MotionController* controller, uint64_t memoryAddress, int32_t bitNumber);
12047 
12063  static IOPoint* CreateAnalogInput(IO* io, int32_t analogChannel);
12064 
12080  static IOPoint* CreateAnalogOutput(IO* io, int32_t analogChannel);
12081 
12082 
12083 
12087 
12091  virtual uint64_t AddressGet() PURE_VIRTUAL;
12092 
12096  virtual int32_t MaskGet() PURE_VIRTUAL;
12097 
12101  virtual bool IsDigital() PURE_VIRTUAL;
12102 
12103 
12107  virtual bool IsOutput() PURE_VIRTUAL;
12108 
12112 
12117  virtual bool Get() PURE_VIRTUAL;
12118 
12126  virtual void Set(bool state) PURE_VIRTUAL;
12127 
12131 
12136  virtual double ValueGet() PURE_VIRTUAL;
12137 
12142  virtual void ValueSet(double valueDouble) PURE_VIRTUAL;
12143 };
12144 
12146 
12150 class RSI_API RTOS {
12151 
12152 public:
12157 
12161 
12166  static INtimeStatus INtimeStatusGet(const char*const nodeName);
12167 
12171 
12176  static INtimeStatus INtimeStart(const char* const nodeName);
12177 
12181 
12186  static INtimeStatus INtimeStop(const char* const nodeName);
12187 
12191 
12196  static INtimeStatus INtimeRestart(const char* const nodeName);
12197 
12200  static const char* const INtimeCatalogRMPGet();
12201 
12204  static const char* const INtimeCatalogRMPNetworkGet();
12205 
12208  static uint32_t INtimeNodeCountGet();
12209 
12213  static const char* const INtimeNodeNameGet(uint32_t nodeNumber);
12214 
12218  static bool INtimeNodeIsLocal(uint32_t nodeNumber);
12220 };
12221 
12223 class RSI_API Trace
12224 {
12225 public:
12230 
12245  static void MaskSet(RSITrace mask);
12246 
12264  static void MaskOnSet(RSITrace maskOn);
12265 
12266 
12288  static bool MaskOnGet(RSITrace maskOn);
12289 
12307  static void MaskOffSet(RSITrace maskOff);
12308 
12323  static void MaskClear();
12324 
12341  static int32_t FileSet(const char* const fileName);
12342 
12357  static void FileClose();
12358 
12375  static void InjectMessage(RSITrace traceLevel, const char* const message);
12376 
12378 };
12379 
12381 
12382 } // namespace RapidCode
12383 
12384 } // namespace RSI
12385 
12386 #if defined(__cplusplus)
12387 }
12388 #endif
12389 
12390 #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:1058
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:11031
RSI::RapidCode::RSIAxisMasterType
RSIAxisMasterType
Sources available to a slave Axis for electronic gearing & camming.
Definition: rsienums.h:1123
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:1051
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:948
RSI::RapidCode::Trace::MaskSet
static void MaskSet(RSITrace mask)
Sets the specified trace mask.
RSI::RapidCode::RTOS::INtimeCatalogRMPNetworkGet
static const char *const INtimeCatalogRMPNetworkGet()
Get the RMPNetwork catalog.
RSI::RapidCode::RsiError::number
RSIErrorMessage number
Error number.
Definition: rsi.h:96
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:1297
RSI::RapidCode::RsiError::isWarning
bool isWarning
Whether the error is or is not a warning.
Definition: rsi.h:100
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::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:606
RSI::RapidCode::RsiError
The RsiError object contains information about any RapidCode API object's error/exception.
Definition: rsi.h:93
RSI::RapidCode::IO
The IO object provides an interface to the inputs and outputs of a network node.
Definition: rsi.h:4042
RSI::RapidCode::INtimeStatus
INtimeStatus
INtime status values.
Definition: rsienums.h:1262
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:105
RSI::RapidCode::RSIEventType
RSIEventType
Event Types or Status Bits.
Definition: rsienums.h:880
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:1257
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:107
RSI::RapidCode::RSIAxisPositionInput
RSIAxisPositionInput
Feedback Positions for each Axis.
Definition: rsienums.h:1038
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:486
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:1230
RSI::RapidCode::RSINodeType
RSINodeType
Valid Node types.
Definition: rsienums.h:653
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:1224
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:1000
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:150
RSI::RapidCode::RSIUserLimitLogic
RSIUserLimitLogic
Logic options for User Limits.
Definition: rsienums.h:626
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:4053
RSI::RapidCode::RSIMotorStepperPulse
RSIMotorStepperPulse
Pulse A or B.
Definition: rsienums.h:1154
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:964
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:4349
RSI::RapidCode::RSIMotorType
RSIMotorType
Motor Type.
Definition: rsienums.h:1216
RSI::RapidCode::Axis::PositionSet
void PositionSet(double position)
Set the Command and Actual positions.
RSI::RapidCode::RSINetworkStartError
RSINetworkStartError
Network start errors.
Definition: rsienums.h:581
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:1073
RSI::RapidCode::RSIMotorDedicatedIn
RSIMotorDedicatedIn
Dedicated Input bits per motor.
Definition: rsienums.h:803
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:1303
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:1290
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:1170
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:98
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::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:747
RSI::RapidCode::RSISource
RSISource
Possible sources that have caused an Error state.
Definition: rsienums.h:927
RSI::RapidCode::RSIAxisGantryType
RSIAxisGantryType
How to combine Axis Feedback Positions.
Definition: rsienums.h:1044
RSI::RapidCode::RSINetworkState
RSINetworkState
State of network.
Definition: rsienums.h:556
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:528
RSI::RapidCode::RapidCodeInterrupt
Interface for objects which can use interrupts.
Definition: rsi.h:577
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:11860
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:568
RSI::RapidCode::RSIUserLimitTriggerType
RSIUserLimitTriggerType
Trigger types for UserLimits.
Definition: rsienums.h:613
RSI::RapidCode::RSIMotorFaultMask
RSIMotorFaultMask
Mask values for several motor faults.
Definition: rsienums.h:1204
RSI::RapidCode::RapidCodeOS
The RapidCodeOS object provides access to operating system (Windows) features. Accessible via MotionC...
Definition: rsi.h:474
RSI::RapidCode::Axis
The Axis object manages a single physical axis on a motion controller.
Definition: rsi.h:5887
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:1020
RSI::RapidCode::RsiError::fileName
char fileName[RSI_ERROR_TEXT_SIZE]
source file name
Definition: rsi.h:109
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:102
RSI::RapidCode::RSINetworkIndexType
RSINetworkIndexType
Network index types for Axis.
Definition: rsienums.h:1270
RSI::RapidCode::RapidCodeMotion
The RapidCodeMotion interface is implemented by Axis and MultiAxis .
Definition: rsi.h:4339
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:12224
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:1064
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:1094
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:136
RSI::RapidCode::IO::rsiControl
MotionController * rsiControl
Gets the parent MotionController object.
Definition: rsi.h:4055
RSI::RapidCode::Axis::NetworkNode
NetworkNode * NetworkNode
Gets the parent NetworkNode object.
Definition: rsi.h:5909
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:1133
RSI::RapidCode::RSIDataType
RSIDataType
Data types for User Limits and other triggers.
Definition: rsienums.h:639
RSI::RapidCode::MultiAxis::AxesAdd
void AxesAdd(Axis **axes, int32_t axisCount)
RSI::RapidCode::RSIMotorStepperPulseType
RSIMotorStepperPulseType
Stepper pulse type.
Definition: rsienums.h:1160
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:958
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:12150
RSI::RapidCode::RSIMotorGeneralIo
RSIMotorGeneralIo
Motor I/O bit numbers.
Definition: rsienums.h:831
RSI::RapidCode::RSINetworkStartMode
RSINetworkStartMode
Network start modes.
Definition: rsienums.h:575
RSI::RapidCode::RSIOperationMode
RSIOperationMode
DS402 modes of operation.
Definition: rsienums.h:1236
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:793
RSI::RapidCode::RSIMotorDedicatedOut
RSIMotorDedicatedOut
Dedicated Output bits per motor.
Definition: rsienums.h:825
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