Subversion Repositories f9daq

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
365 f9daq 1
// summary:     Declares the functions class
2
// The following ifdef block is the standard way of creating macros which make exporting 
3
// from a DLL simpler. All files within this DLL are compiled with the ISC_EXPORTS
4
// symbol defined on the command line. This symbol should not be defined on any project
5
// that uses this DLL. This way any other project whose source files include this file see 
6
// ISC_API functions as being imported from a DLL, whereas this DLL sees symbols
7
// defined with this macro as being exported.
8
 
9
#pragma once
10
 
11
#ifdef ISCDLL_EXPORTS
12
#define ISC_API __declspec(dllexport)
13
#else
14
#define ISC_API __declspec(dllimport)
15
#endif
16
 
17
#include <OaIdl.h>
18
 
19
/** @defgroup IntegratedStepperMotors Integrated Stepper Motors
20
 *  This section details the Structures and Functions relavent to the  @ref ISC000_page "Integrated Stepper Motors"<br />
21
 *  For an example of how to connect to the device and perform simple operations use the following links:
22
 *  <list type=bullet>
23
 *    <item> \ref namespaces_mff_ex_1 "Example of using the Thorlabs.MotionControl.IntegratedStepperMotors.DLL from a C or C++ project."<br />
24
 *                                                                        This requires the DLL to be dynamical linked. </item>
25
 *    <item> \ref namespaces_mff_ex_2 "Example of using the Thorlabs.MotionControl.IntegratedStepperMotors.DLL from a C# project"<br />
26
 *                                                                        This uses Marshalling to load and access the C DLL. </item>
27
 *  </list>
28
 *  The Thorlabs.MotionControl.IntegratedStepperMotors.DLL requires the following DLLs
29
 *  <list type=bullet>
30
 *    <item> Thorlabs.MotionControl.DeviceManager. </item>
31
 *  </list>
32
 *  @{
33
 */
34
 
35
extern "C"
36
{
37
        /// \cond NOT_MASTER
38
 
39
        /// <summary> Values that represent FT_Status. </summary>
40
        typedef enum FT_Status : short
41
        {
42
                FT_OK = 0x00, /// <OK - no error.
43
                FT_InvalidHandle = 0x01, ///<Invalid handle.
44
                FT_DeviceNotFound = 0x02, ///<Device not found.
45
                FT_DeviceNotOpened = 0x03, ///<Device not opened.
46
                FT_IOError = 0x04, ///<I/O error.
47
                FT_InsufficientResources = 0x05, ///<Insufficient resources.
48
                FT_InvalidParameter = 0x06, ///<Invalid parameter.
49
                FT_DeviceNotPresent = 0x07, ///<Device not present.
50
                FT_IncorrectDevice = 0x08 ///<Incorrect device.
51
         } FT_Status;
52
 
53
        /// <summary> Values that represent THORLABSDEVICE_API. </summary>
54
        typedef enum MOT_MotorTypes
55
        {
56
                MOT_NotMotor = 0,
57
                MOT_DCMotor = 1,
58
                MOT_StepperMotor = 2,
59
                MOT_BrushlessMotor = 3,
60
                MOT_CustomMotor = 100,
61
        } MOT_MotorTypes;
62
 
63
        /// <summary> Values that represent Travel Modes. </summary>
64
        typedef enum MOT_TravelModes : int
65
        {
66
                MOT_TravelModeUndefined,///<Undefined
67
                MOT_Linear = 0x01,///<Linear travel, default units are millimeters
68
                MOT_Rotational = 0x02,///<Rotational travel, default units are degrees
69
        } MOT_TravelModes;
70
 
71
        /// <summary> Values that represent Travel Modes. </summary>
72
        typedef enum MOT_TravelDirection : short
73
        {
74
                MOT_TravelDirectionUndefined,///<Undefined
75
                MOT_Forwards = 0x01,///<Move in a Forward direction
76
                MOT_Reverse = 0x02,///<Move in a Backward / Reverse direction
77
        } MOT_TravelDirection;
78
 
79
        /// <summary> Values that represent Limit Switch Directions. </summary>
80
        typedef enum MOT_HomeLimitSwitchDirection : short
81
        {
82
                MOT_LimitSwitchDirectionUndefined,///<Undefined
83
                MOT_ReverseLimitSwitch = 0x01,///<Limit switch in forward direction
84
                MOT_ForwardLimitSwitch = 0x04,///<Limit switch in reverse direction
85
        } MOT_HomeLimitSwitchDirection;
86
 
87
        /// <summary> Values that represent Direction Type. </summary>
88
        typedef enum MOT_DirectionSense : short
89
        {
90
                MOT_Normal = 0x00,///<Move / Jog direction is normal (clockwise).
91
                MOT_Backwards = 0x01,///<Move / Jog direction is reversed (anti clockwise).
92
        } MOT_DirectionSense;
93
 
94
        /// <summary> Values that represent the motor Jog Modes. </summary>
95
        typedef enum MOT_JogModes : short
96
        {
97
                MOT_JogModeUndefined = 0x00,///<Undefined
98
                MOT_Continuous = 0x01,///<Continuous jogging
99
                MOT_SingleStep = 0x02,///<Jog 1 step at a time
100
        } MOT_JogModes;
101
 
102
        /// <summary> Values that represent the motor Jog Modes. </summary>
103
        typedef enum MOT_StopModes : short
104
        {
105
                MOT_StopModeUndefined = 0x00,///<Undefined
106
                MOT_Immediate = 0x01,///<Stops immediate
107
                MOT_Profiled = 0x02,///<Stops using a velocity profile
108
        } MOT_StopModes;
109
 
110
        /// <summary> Values that represent the motor Button Modes. </summary>
111
        typedef enum MOT_ButtonModes : WORD
112
        {
113
                MOT_ButtonModeUndefined = 0x00,///<Undefined
114
                MOT_JogMode = 0x01,///<Jog motor in correct direction for button
115
                MOT_Preset = 0x02,///<Move to preset position
116
        } MOT_ButtonModes;
117
 
118
        /// <summary> Value that represent action to be taken when motor hits a limit switch. </summary>
119
        typedef enum MOT_LimitSwitchModes : WORD
120
        {
121
                MOT_LimitSwitchModeUndefined = 0x00,///<Undefined
122
                MOT_LimitSwitchIgnoreSwitch=0x01,///<Ignore limit switch
123
                MOT_LimitSwitchMakeOnContact=0x02,///<Switch makes on contact
124
                MOT_LimitSwitchBreakOnContact=0x03,///<Switch breaks on contact
125
                MOT_LimitSwitchMakeOnHome=0x04,///<Switch makes on contact when homing
126
                MOT_LimitSwitchBreakOnHome=0x05,///<Switch breaks on contact when homing
127
                MOT_PMD_Reserved=0x06,///<Reserved for PMD brushless servo controllers
128
                MOT_LimitSwitchIgnoreSwitchSwapped = 0x81,///<Ignore limit switch (swapped)
129
                MOT_LimitSwitchMakeOnContactSwapped = 0x82,///<Switch makes on contact (swapped)
130
                MOT_LimitSwitchBreakOnContactSwapped = 0x83,///<Switch breaks on contact (swapped)
131
                MOT_LimitSwitchMakeOnHomeSwapped = 0x84,///<Switch makes on contact when homing (swapped)
132
                MOT_LimitSwitchBreakOnHomeSwapped = 0x85,///<Switch breaks on contact when homing (swapped)
133
        } MOT_LimitSwitchModes;
134
 
135
        /// <summary> Value that represent action to be taken when motor hits a limit switch. </summary>
136
        typedef enum MOT_LimitSwitchSWModes : WORD
137
        {
138
                MOT_LimitSwitchSWModeUndefined = 0x00,///<Undefined
139
                MOT_LimitSwitchIgnored=0x01,///<Ignore limit switch
140
                MOT_LimitSwitchStopImmediate=0x02,///<Stop immediately when hitting limit switch
141
                MOT_LimitSwitchStopProfiled=0x03,///<Stop profiled when hitting limit switch
142
                MOT_LimitSwitchIgnored_Rotational=0x81,///<Ignore limit switch (rotational stage)
143
                MOT_LimitSwitchStopImmediate_Rotational=0x82,///<Stop immediately when hitting limit switch (rotational stage)
144
                MOT_LimitSwitchStopProfiled_Rotational=0x83,///<Stop profiled when hitting limit switch (rotational stage)
145
        } MOT_LimitSwitchSWModes;
146
 
147
        /// <summary> Values that represent MOT_LimitsSoftwareApproachPolicy. </summary>
148
        typedef enum MOT_LimitsSoftwareApproachPolicy : __int16
149
        {
150
                DisallowIllegalMoves = 0,///<Disable any move outside of the current travel range of the stage
151
                AllowPartialMoves,///<Truncate moves to within the current travel range of the stage.
152
                AllowAllMoves,///<Allow all moves, regardless of whether they are within the current travel range of the stage.
153
        } MOT_LimitsSoftwareApproachPolicy;
154
 
155
        /// <summary> Values that represent DeviceMessageClass message types. </summary>
156
        typedef enum MOT_MovementModes
157
        {
158
                LinearRange = 0x00,///< Fixed Angular Range defined by MinPosition and MaxPosition
159
                RotationalUnlimited = 0x01,///< Unlimited angle
160
                RotationalWrapping = 0x02,///< Angular Range 0 to 360 with wrap around
161
        } MOT_MovementModes;
162
 
163
        /// <summary> Values that represent DeviceMessageClass message types. </summary>
164
        typedef enum MOT_MovementDirections
165
        {
166
                Quickest = 0x00,///< Uses the shortest travel between two angles
167
                Forwards = 0x01,///< Only rotate in a forward direction
168
                Reverse = 0x02,///< Only rotate in a backward direction
169
        } MOT_MovementDirections;
170
        /// \endcond
171
 
172
        /// <summary> Information about the device generated from serial number. </summary>
173
        #pragma pack(1)
174
        typedef struct TLI_DeviceInfo
175
        {
176
                /// <summary> The device Type ID, see \ref C_DEVICEID_page "Device serial numbers". </summary>
177
                DWORD typeID;
178
                /// <summary> The device description. </summary>
179
                char description[65];
180
                /// <summary> The device serial number. </summary>
181
                char serialNo[16];
182
                /// <summary> The USB PID number. </summary>
183
                DWORD PID;
184
 
185
                /// <summary> <c>true</c> if this object is a type known to the Motion Control software. </summary>
186
                bool isKnownType;
187
                /// <summary> The motor type (if a motor).
188
                ///               <list type=table>
189
                ///                             <item><term>MOT_NotMotor</term><term>0</term></item>
190
                ///                             <item><term>MOT_DCMotor</term><term>1</term></item>
191
                ///                             <item><term>MOT_StepperMotor</term><term>2</term></item>
192
                ///                             <item><term>MOT_BrushlessMotor</term><term>3</term></item>
193
                ///                             <item><term>MOT_CustomMotor</term><term>100</term></item>
194
                ///               </list> </summary>
195
                MOT_MotorTypes motorType;
196
 
197
                /// <summary> <c>true</c> if the device is a piezo device. </summary>
198
                bool isPiezoDevice;
199
                /// <summary> <c>true</c> if the device is a laser. </summary>
200
                bool isLaser;
201
                /// <summary> <c>true</c> if the device is a custom type. </summary>
202
                bool isCustomType;
203
                /// <summary> <c>true</c> if the device is a rack. </summary>
204
                bool isRack;
205
                /// <summary> Defines the number of channels available in this device. </summary>
206
                short maxChannels;
207
        } TLI_DeviceInfo;
208
 
209
        /// <summary> Structure containing the Hardware Information. </summary>
210
        typedef struct TLI_HardwareInformation
211
        {
212
                /// <summary> The device serial number. </summary>
213
                /// <remarks> The device serial number is a serial number,<br />starting with 2 digits representing the device type<br /> and a 6 digit unique value.</remarks>
214
                DWORD serialNumber;
215
                /// <summary> The device model number. </summary>
216
                /// <remarks> The model number uniquely identifies the device type as a string. </remarks>
217
                char modelNumber[8];
218
                /// <summary> The type. </summary>
219
                /// <remarks> Do not use this value to identify a particular device type. Please use <see cref="TLI_DeviceInfo"/> typeID for this purpose.</remarks>
220
                WORD type;
221
                /// <summary> The device firmware version. </summary>
222
                DWORD firmwareVersion;
223
                /// <summary> The device notes read from the device. </summary>
224
                char notes[48];
225
                /// <summary> The device dependant data. </summary>
226
                BYTE deviceDependantData[12];
227
                /// <summary> The device hardware version. </summary>
228
                WORD hardwareVersion;
229
                /// <summary> The device modification state. </summary>
230
                WORD modificationState;
231
                /// <summary> The number of channels the device provides. </summary>
232
                short numChannels;
233
        } TLI_HardwareInformation;
234
 
235
        /// <summary> Structure containing the velocity parameters. </summary>
236
        /// <remarks> Moves are performed using a velocity profile.<br />
237
        ///               The move starts at the Minimum Velocity (always 0 at present) and accelerated to the Maximum Velocity using the defined Acceleration.<br/>
238
        ///               The move is usually completed using a similar deceleration.<br/>
239
        ///               For further information see \ref C_MOTOR_sec11 "Positioning" </remarks>
240
        /// <seealso cref="MOT_JogParameters"/>
241
        /// <seealso cref="MOT_HomingParameters"/>
242
        typedef struct MOT_VelocityParameters
243
        {
244
                /// <summary> The minimum velocity in \ref DeviceUnits_page usually 0. </summary>
245
                int minVelocity;
246
                /// <summary> The acceleration in \ref DeviceUnits_page. </summary>
247
                int acceleration;
248
                /// <summary> The maximum velocity in \ref DeviceUnits_page. </summary>
249
                int maxVelocity;
250
        } MOT_VelocityParameters;
251
 
252
        /// <summary> Structure containing the jog parameters. </summary>
253
        /// <remarks> Jogs are performed using a velocity profile over small fixed distances.<br />
254
        ///               The move starts at the Minimum Velocity (always 0 at present) and accelerated to the Maximum Velocity using the defined Acceleration.<br/>
255
        ///               The move is usually completed using a similar deceleration.<br/>
256
        ///               For further information see \ref C_MOTOR_sec12 "Jogging" </remarks>
257
        /// <seealso cref="MOT_VelocityParameters"/>
258
        /// <seealso cref="MOT_HomingParameters"/>
259
        typedef struct MOT_JogParameters
260
        {
261
                /// <summary> The jogging mode. </summary>
262
                /// <remarks> The mode can be one of the following:
263
                ///               <list type=table>
264
                ///                             <item><term>1</term><term>Continuous Jogging<br />The device will continue moving until the end stop is reached or the device button is raised</term></item>
265
                ///                             <item><term>2</term><term>Step Jogbr />The device will move by a fixed amount as defined in this structure.</term></item>
266
                ///               </list></remarks>
267
                MOT_JogModes mode;
268
                /// <summary> The step size in \ref DeviceUnits_page. </summary>
269
                unsigned int stepSize;
270
                /// <summary> The MOT_VelocityParameters for the jog. </summary>
271
                MOT_VelocityParameters velParams;
272
                /// <summary> The Stop Mode</summary>
273
                /// <remarks> The Stop Mode determines how the jog should stop.
274
                ///               <list type=table>
275
                ///                             <item><term>1</term><term>Immediate</term></item>
276
                ///                             <item><term>2</term><term>Profiled.</term></item>
277
                ///               </list> </remarks>
278
                MOT_StopModes stopMode;
279
        } MOT_JogParameters;
280
 
281
        /// <summary> Structure containing the homing parameters. </summary>
282
        /// <remarks> Homing is performed using a constant velocity.<br />
283
        ///               The home starts moving the motor in the defined direction until the limit switch is detected.<br/>
284
        ///               The device will then vback off from the limit switch by  the defined offset distance.<br />
285
        ///               For further information see \ref C_MOTOR_sec10 "Homing" </remarks>
286
        /// <seealso cref="MOT_VelocityParameters"/>
287
        /// <seealso cref="MOT_JogParameters"/>
288
        typedef struct MOT_HomingParameters
289
        {
290
                /// <summary> The Homing direction sense </summary>
291
                /// <remarks> The Homing Operation will always move in a decreasing position sense, but the actuator gearing may change the actual physical sense<br/>
292
                ///               Therefore the homing direction can correct the physical sense.
293
                ///              <list type=table>
294
                ///                             <item><term>1</term><term>Forwards</term></item>
295
                ///                             <item><term>2</term><term>Backwards.</term></item>
296
                ///               </list></remarks>
297
                MOT_TravelDirection direction;
298
                /// <summary> The limit switch direction. </summary>
299
                /// <remarks> The limit switch which will be hit when homing completes.
300
                ///              <list type=table>
301
                ///                             <item><term>1</term><term>Forward Limit Switch</term></item>
302
                ///                             <item><term>2</term><term>Reverse Limit Switch.</term></item>
303
                ///               </list</remarks>
304
                MOT_HomeLimitSwitchDirection limitSwitch;
305
                /// <summary> The velocity in small indivisible units. </summary>
306
                /// <remarks> As the homing operation is performed at a much lower velocity, to achieve accuracy, a profile is not required.</remarks>
307
                unsigned int velocity;
308
                /// <summary> Distance of home from limit in small indivisible units. </summary>
309
                unsigned int offsetDistance;
310
        } MOT_HomingParameters;
311
 
312
        /// <summary> Structure containing the limit switch parameters. </summary>
313
        typedef struct MOT_LimitSwitchParameters
314
        {
315
                /// <summary> Defines the clockwise hardware limit. </summary>
316
                /// <remarks> The clockwise hardware limit
317
                ///              <list type=table>
318
                ///                             <item><term>0x01</term><term>Ignore limit switch</term></item>
319
                ///                             <item><term>0x02</term><term>Make on contact.</term></item>
320
                ///                             <item><term>0x03</term><term>Break on contact.</term></item>
321
                ///                             <item><term>0x04</term><term>Makes on contact when homing</term></item>
322
                ///                             <item><term>0x05</term><term>Break on contact when homing.</term></item>
323
                ///                             <item><term>0x06</term><term>Reserved for PMD brushless servo controllers.</term></item>
324
                ///                             <item><term>0x80</term><term>Switch mode when using a rotational stage.</term></item>
325
                ///               </list> </remarks>
326
                MOT_LimitSwitchModes clockwiseHardwareLimit;
327
                /// <summary> Defines the anticlockwise hardware limit. </summary>
328
                /// <remarks> The anticlockwise hardware limit
329
                ///              <list type=table>
330
                ///                             <item><term>0x01</term><term>Ignore limit switch</term></item>
331
                ///                             <item><term>0x02</term><term>Make on contact.</term></item>
332
                ///                             <item><term>0x03</term><term>Break on contact.</term></item>
333
                ///                             <item><term>0x04</term><term>Makes on contact when homing</term></item>
334
                ///                             <item><term>0x05</term><term>Break on contact when homing.</term></item>
335
                ///                             <item><term>0x06</term><term>Reserved for PMD brushless servo controllers.</term></item>
336
                ///                             <item><term>0x80</term><term>Switch mode when using a rotational stage.</term></item>
337
                ///               </list> </remarks>
338
                MOT_LimitSwitchModes anticlockwiseHardwareLimit;
339
                /// <summary> poition of clockwise software limit in \ref DeviceUnits_page. </summary>
340
                DWORD clockwisePosition;
341
                /// <summary> poition of anticlockwise software limit in \ref DeviceUnits_page. </summary>
342
                DWORD anticlockwisePosition;
343
                /// <summary> Actions to take when software limit is detected. </summary>
344
                /// <remarks> The anticlockwise hardware limit
345
                ///              <list type=table>
346
                ///                             <item><term>0x01</term><term>Ignore limit switche.</term></item>
347
                ///                             <item><term>0x02</term><term>Stop Immediate.</term></item>
348
                ///                             <item><term>0x03</term><term>Profiled stop.</term></item>
349
                ///                             <item><term>0x82</term><term>Stop Immediate (rotational stage).</term></item>
350
                ///                             <item><term>0x83</term><term>Profiled stop (rotational stage).</term></item>
351
                ///               </list> </remarks>
352
                MOT_LimitSwitchSWModes softLimitMode;
353
        } MOT_LimitSwitchParameters;
354
 
355
        /// <summary> Structure containing power settings for the stepper controllers. </summary>
356
        typedef struct MOT_PowerParameters
357
        {
358
                /// <summary> Percentage of full power to give while not moving (0 - 100). </summary>
359
                WORD restPercentage;
360
                /// <summary> Percentage of full power to give while moving (0 - 100). </summary>
361
                WORD movePercentage;
362
        } MOT_PowerParameters;
363
 
364
        /// <summary> Structure containing the button action definition parameters. </summary>
365
        typedef struct MOT_ButtonParameters
366
        {
367
                /// <summary> Defines the mode of operation of the device buttons </summary>
368
                /// <remarks> The buttons on a Device can be defined to either jog or move to a preset position.
369
                ///              <list type=table>
370
                ///                             <item><term>1</term><term>Jog the device according to the MOT_JogParameters</term></item>
371
                ///                             <item><term>2</term><term>Move to the preset button positions.</term></item>
372
                ///               </list></remarks>
373
                MOT_ButtonModes buttonMode;
374
                /// <summary> Position in encoder counts to go to when left button is pressed. </summary>
375
                int leftButtonPosition;
376
                /// <summary> Position in encoder counts to go to when right button is pressed. </summary>
377
                int rightButtonPosition;
378
                /// <summary> The Time a button needs to be held down for to record the position as a preset. </summary>
379
                /// <remarks> For information only - cannot be set. </remarks>
380
                WORD timeout;
381
                /// <summary> Not Used. </summary>
382
                WORD unused;
383
        } MOT_ButtonParameters;
384
 
385
        /// <summary> Structure containing the Potentiometer step parameters. </summary>
386
        /// <remarks> MOT_PotentiometerStep define steps in the MOT_PotentiometerSteps structure as a look up table.</remarks>
387
        typedef struct MOT_PotentiometerStep
388
        {
389
                /// <summary> Deflection of potentiometer 0 - 127 from center point which defines step range. </summary>
390
                WORD thresholdDeflection;
391
                /// <summary> The velocity for the defined range. </summary>
392
                DWORD velocity;
393
        } MOT_PotentiometerStep;
394
 
395
        /// <summary> Structure containing the Potentiometer step look up table. </summary>
396
        /// <remarks> The structure defines a lookup table with 4 discrete steps</remarks>
397
        typedef struct MOT_PotentiometerSteps
398
        {
399
                /// <summary> The 4 defined MOT_PotentiometerStep positions. </summary>
400
                MOT_PotentiometerStep potentiometerStepParameters[4];
401
        } MOT_PotentiometerSteps;
402
 
403
        #pragma pack()
404
 
405
    /// <summary> Build the DeviceList. </summary>
406
    /// <remarks> This function builds an internal collection of all devices found on the USB that are not currently open. <br />
407
    ///                   NOTE, if a device is open, it will not appear in the list until the device has been closed. </remarks>
408
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
409
    ///                   \include CodeSnippet_identification.cpp
410
        /// <seealso cref="TLI_GetDeviceListSize()" />
411
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
412
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
413
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
414
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
415
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
416
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
417
        ISC_API short __cdecl TLI_BuildDeviceList(void);
418
 
419
        /// <summary> Gets the device list size. </summary>
420
        ///               \include CodeSnippet_identification.cpp
421
        /// <returns> Number of devices in device list. </returns>
422
        /// <seealso cref="TLI_BuildDeviceList()" />
423
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
424
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
425
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
426
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
427
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
428
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
429
        ISC_API short __cdecl TLI_GetDeviceListSize();
430
 
431
        /// <summary> Get the entire contents of the device list. </summary>
432
        /// <param name="stringsReceiver"> Outputs a SAFEARRAY of strings holding device serial numbers. </param>
433
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
434
    ///                   \include CodeSnippet_identification.cpp
435
        /// <seealso cref="TLI_GetDeviceListSize()" />
436
        /// <seealso cref="TLI_BuildDeviceList()" />
437
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
438
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
439
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
440
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
441
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
442
        ISC_API short __cdecl TLI_GetDeviceList(SAFEARRAY** stringsReceiver);
443
 
444
        /// <summary> Get the contents of the device list which match the supplied typeID. </summary>
445
        /// <param name="stringsReceiver"> Outputs a SAFEARRAY of strings holding device serial numbers. </param>
446
        /// <param name="typeID">The typeID of devices to match, see \ref C_DEVICEID_page "Device serial numbers". </param>
447
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
448
    ///                   \include CodeSnippet_identification.cpp
449
        /// <seealso cref="TLI_GetDeviceListSize()" />
450
        /// <seealso cref="TLI_BuildDeviceList()" />
451
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
452
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
453
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
454
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
455
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
456
        ISC_API short __cdecl TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID);
457
 
458
        /// <summary> Get the contents of the device list which match the supplied typeIDs. </summary>
459
        /// <param name="stringsReceiver"> Outputs a SAFEARRAY of strings holding device serial numbers. </param>
460
        /// <param name="typeIDs"> list of typeIDs of devices to be matched, see \ref C_DEVICEID_page "Device serial numbers"</param>
461
        /// <param name="length"> length of type list</param>
462
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
463
    ///                   \include CodeSnippet_identification.cpp
464
        /// <seealso cref="TLI_GetDeviceListSize()" />
465
        /// <seealso cref="TLI_BuildDeviceList()" />
466
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
467
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
468
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
469
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
470
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
471
        ISC_API short __cdecl TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length);
472
 
473
        /// <summary> Get the entire contents of the device list. </summary>
474
        /// <param name="receiveBuffer"> a buffer in which to receive the list as a comma separated string. </param>
475
        /// <param name="sizeOfBuffer"> The size of the output string buffer. </param>
476
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
477
    ///                   \include CodeSnippet_identification.cpp
478
        /// <seealso cref="TLI_GetDeviceListSize()" />
479
        /// <seealso cref="TLI_BuildDeviceList()" />
480
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
481
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
482
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
483
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
484
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
485
        ISC_API short __cdecl TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer);
486
 
487
        /// <summary> Get the contents of the device list which match the supplied typeID. </summary>
488
        /// <param name="receiveBuffer"> a buffer in which to receive the list as a comma separated string. </param>
489
        /// <param name="sizeOfBuffer"> The size of the output string buffer. </param>
490
        /// <param name="typeID"> The typeID of devices to be matched, see \ref C_DEVICEID_page "Device serial numbers"</param>
491
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
492
    ///                   \include CodeSnippet_identification.cpp
493
        /// <seealso cref="TLI_GetDeviceListSize()" />
494
        /// <seealso cref="TLI_BuildDeviceList()" />
495
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
496
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
497
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
498
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
499
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
500
        ISC_API short __cdecl TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID);
501
 
502
        /// <summary> Get the contents of the device list which match the supplied typeIDs. </summary>
503
        /// <param name="receiveBuffer"> a buffer in which to receive the list as a comma separated string. </param>
504
        /// <param name="sizeOfBuffer"> The size of the output string buffer. </param>
505
        /// <param name="typeIDs"> list of typeIDs of devices to be matched, see \ref C_DEVICEID_page "Device serial numbers"</param>
506
        /// <param name="length"> length of type list</param>
507
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
508
    ///                   \include CodeSnippet_identification.cpp
509
        /// <seealso cref="TLI_GetDeviceListSize()" />
510
        /// <seealso cref="TLI_BuildDeviceList()" />
511
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
512
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
513
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
514
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
515
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
516
        ISC_API short __cdecl TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length);
517
 
518
        /// <summary> Get the device information from the USB port. </summary>
519
        /// <remarks> The Device Info is read from the USB port not from the device itself.<remarks>
520
        /// <param name="serialNo"> The serial number of the device. </param>
521
        /// <param name="info">    The <see cref="TLI_DeviceInfo"/> device information. </param>
522
        /// <returns> 1 if successful, 0 if not. </returns>
523
    ///                   \include CodeSnippet_identification.cpp
524
        /// <seealso cref="TLI_GetDeviceListSize()" />
525
        /// <seealso cref="TLI_BuildDeviceList()" />
526
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
527
        /// <seealso cref="TLI_GetDeviceListByType(SAFEARRAY** stringsReceiver, int typeID)" />
528
        /// <seealso cref="TLI_GetDeviceListByTypes(SAFEARRAY** stringsReceiver, int * typeIDs, int length)" />
529
        /// <seealso cref="TLI_GetDeviceListExt(char *receiveBuffer, DWORD sizeOfBuffer)" />
530
        /// <seealso cref="TLI_GetDeviceListByTypeExt(char *receiveBuffer, DWORD sizeOfBuffer, int typeID)" />
531
        /// <seealso cref="TLI_GetDeviceListByTypesExt(char *receiveBuffer, DWORD sizeOfBuffer, int * typeIDs, int length)" />
532
        ISC_API short __cdecl TLI_GetDeviceInfo(char const * serialNo, TLI_DeviceInfo *info);
533
 
534
        /// <summary> Initialize a connection to the Simulation Manager, which must already be running. </summary>
535
        /// <remarks> Call TLI_InitializeSimulations before TLI_BuildDeviceList at the start of the program to make a connection to the simulation manager.<Br />
536
        ///               Any devices configured in the simulation manager will become visible TLI_BuildDeviceList is called and can be accessed using TLI_GetDeviceList.<Br />
537
        ///               Call TLI_InitializeSimulations at the end of the program to release the simulator.  </remarks>
538
        /// <seealso cref="TLI_UninitializeSimulations()" />
539
        /// <seealso cref="TLI_BuildDeviceList()" />
540
        /// <seealso cref="TLI_GetDeviceList(SAFEARRAY** stringsReceiver)" />
541
        ISC_API void __cdecl TLI_InitializeSimulations();
542
 
543
        /// <summary> Uninitialize a connection to the Simulation Manager, which must already be running. </summary>
544
        /// <seealso cref="TLI_InitializeSimulations()" />
545
        ISC_API void __cdecl TLI_UninitializeSimulations();
546
 
547
        /// <summary> Open the device for communications. </summary>
548
        /// <param name="serialNo">     The serial no of the device to be connected. </param>
549
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
550
    ///                   \include CodeSnippet_connection1.cpp
551
        /// <seealso cref="ISC_Close(char const * serialNo)" />
552
        ISC_API short __cdecl ISC_Open(char const * serialNo);
553
 
554
        /// <summary> Disconnect and close the device. </summary>
555
        /// <param name="serialNo">     The serial no of the device to be disconnected. </param>
556
    ///                   \include CodeSnippet_connection1.cpp
557
        /// <seealso cref="ISC_Open(char const * serialNo)" />
558
        ISC_API void __cdecl ISC_Close(char const * serialNo);
559
 
560
        /// <summary>   Check connection. </summary>
561
        /// <param name="serialNo">     The device serial no. </param>
562
        /// <returns> true if the USB is listed by the ftdi controller</returns>
563
        /// \include CodeSnippet_CheckConnection.cpp
564
        ISC_API bool __cdecl ISC_CheckConnection(char const * serialNo);
565
 
566
        /// <summary> Sends a command to the device to make it identify iteself. </summary>
567
        /// <param name="serialNo">     The device serial no. </param>
568
        ISC_API void __cdecl ISC_Identify(char const * serialNo);
569
 
570
        /// <summary> Get the LED indicator bits on device. </summary>
571
        /// <param name="serialNo">     The device serial no. </param>
572
        /// <returns> Sum of: 8 to indicate moving 2 to indicate end of track and 1 to flash on identify command. </returns>
573
        /// <seealso cref="ISC_SetLEDswitches(char const * serialNo, WORD LEDswitches)" />
574
        ISC_API WORD __cdecl ISC_GetLEDswitches(char const * serialNo);
575
 
576
        /// <summary> Set the LED indicator bits on device. </summary>
577
        /// <param name="serialNo">     The device serial no. </param>
578
        /// <param name="LEDswitches"> Sum of: 8 to indicate moving 2 to indicate end of track and 1 to flash on identify command. </param>
579
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
580
        /// <seealso cref="ISC_GetLEDswitches(char const * serialNo)" />
581
        ISC_API short __cdecl ISC_SetLEDswitches(char const * serialNo, WORD LEDswitches);
582
 
583
        /// <summary> Gets the hardware information from the device. </summary>
584
        /// <param name="serialNo">                 The device serial no. </param>
585
        /// <param name="modelNo">                  Address of a buffer to receive the model number string. Minimum 8 characters </param>
586
        /// <param name="sizeOfModelNo">            The size of the model number buffer, minimum of 8 characters. </param>
587
        /// <param name="type">             Address of a WORD to receive the hardware type number. </param>
588
        /// <param name="numChannels">      Address of a short to receive the  number of channels. </param>
589
        /// <param name="notes">                    Address of a buffer to receive the notes describing the device. </param>
590
        /// <param name="sizeOfNotes">              The size of the notes buffer, minimum of 48 characters. </param>
591
        /// <param name="firmwareVersion"> Address of a DWORD to receive the  firmware version number made up of 4 byte parts. </param>
592
        /// <param name="hardwareVersion"> Address of a WORD to receive the  hardware version number. </param>
593
        /// <param name="modificationState">        Address of a WORD to receive the hardware modification state number. </param>
594
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
595
    ///                   \include CodeSnippet_identify.cpp
596
        ISC_API short __cdecl ISC_GetHardwareInfo(char const * serialNo, char * modelNo, DWORD sizeOfModelNo, WORD * type, WORD * numChannels,
597
                                                                                                           char * notes, DWORD sizeOfNotes, DWORD * firmwareVersion, WORD * hardwareVersion, WORD * modificationState);
598
 
599
        /// <summary> Gets the hardware information in a block. </summary>
600
        /// <param name="serialNo">     The device serial no. </param>
601
        /// <param name="hardwareInfo"> Address of a TLI_HardwareInformation structure to receive the hardware information. </param>
602
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
603
    ///                   \include CodeSnippet_identify.cpp
604
        ISC_API short __cdecl ISC_GetHardwareInfoBlock(char const * serialNo, TLI_HardwareInformation *hardwareInfo);
605
 
606
        /// <summary> Gets version number of the device firmware. </summary>
607
        /// <param name="serialNo">     The device serial no. </param>
608
        /// <returns> The device firmware version number made up of 4 byte parts. </returns>
609
    ///                   \include CodeSnippet_identify.cpp
610
        ISC_API DWORD __cdecl ISC_GetFirmwareVersion(char const * serialNo);
611
 
612
        /// <summary> Gets version number of the device software. </summary>
613
        /// <param name="serialNo">     The device serial no. </param>
614
        /// <returns> The device software version number made up of 4 byte parts. </returns>
615
    ///                   \include CodeSnippet_identify.cpp
616
        ISC_API DWORD __cdecl ISC_GetSoftwareVersion(char const * serialNo);
617
 
618
        /// <summary> Set the calibration file for this motor. </summary>
619
        /// <param name="serialNo"> The device serial no. </param>
620
        /// <param name="filename"> Filename of the calibration file to load. </param>
621
        /// <param name="enabled">  <c>true</c> to enable,  <c>false</c> to disable. </param>
622
        /// <seealso cref="ISC_IsCalibrationActive(char const * serialNo)" />
623
        /// <seealso cref="ISC_GetCalibrationFile(char const * serialNo, char * filename, short sizeOfBuffer)" />
624
        ISC_API void __cdecl ISC_SetCalibrationFile(char const * serialNo, char const *filename, bool enabled);
625
 
626
        /// <summary> Is a calibration file active for this motor. </summary>
627
        /// <param name="serialNo"> The device serial no. </param>
628
        /// <returns> <c>true</c> if A calibration file is active. </returns>
629
        /// <seealso cref="ISC_GetCalibrationFile(char const * serialNo, char * filename, short sizeOfBuffer)" />
630
        /// <seealso cref="ISC_SetCalibrationFile(char const * serialNo, char const *filename, bool enabled)" />
631
        ISC_API bool __cdecl ISC_IsCalibrationActive(char const * serialNo);
632
 
633
        /// <summary> Get calibration file for this motor. </summary>
634
        /// <param name="serialNo"> The device serial no. </param>
635
        /// <param name="filename"> Address of an output buffer to receive the filename. </param>
636
        /// <param name="sizeOfBuffer"> The size of the filename output buffer. </param>
637
        /// <returns> <c>true</c> if successful, false if not. </returns>
638
        /// <seealso cref="ISC_IsCalibrationActive(char const * serialNo)" />
639
        /// <seealso cref="ISC_SetCalibrationFile(char const * serialNo, char const *filename, bool enabled)" />
640
        ISC_API bool __cdecl ISC_GetCalibrationFile(char const * serialNo, char * filename, short sizeOfBuffer);
641
 
642
        /// <summary> Update device with stored settings. </summary>
643
        /// <param name="serialNo"> The device serial no. </param>
644
        /// <returns> <c>true</c> if successful, false if not. </returns>
645
    ///                   \include CodeSnippet_connection1.cpp
646
        ISC_API bool __cdecl ISC_LoadSettings(char const * serialNo);
647
 
648
        /// <summary> Update device with named settings. </summary>
649
        /// <param name="serialNo"> The device serial no. </param>
650
        /// <param name="settingsName"> Name of settings stored away from device. </param>
651
        /// <returns> <c>true</c> if successful, false if not. </returns>
652
        ///             \include CodeSnippet_connection1.cpp
653
        ISC_API bool __cdecl ISC_LoadNamedSettings(char const * serialNo, char const *settingsName);
654
 
655
        /// <summary> persist the devices current settings. </summary>
656
        /// <param name="serialNo">     The device serial no. </param>
657
        /// <returns> <c>true</c> if successful, false if not. </returns>
658
        ISC_API bool __cdecl ISC_PersistSettings(char const * serialNo);
659
 
660
        /// <summary> Reset the stage settings to defaults. </summary>
661
        /// <param name="serialNo"> The device serial no. </param>
662
        /// <returns> <c>true</c> if successful, false if not. </returns>
663
        ISC_API short __cdecl ISC_ResetStageToDefaults(char const * serialNo);
664
 
665
        /// <summary> Disable the channel so that motor can be moved by hand. </summary>
666
        /// <remarks> When disabled power is removed from the motor and it can be freely moved.</remarks>
667
        /// <param name="serialNo">     The device serial no. </param>
668
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
669
        /// <seealso cref="ISC_EnableChannel(char const * serialNo)" />
670
        ISC_API short __cdecl ISC_DisableChannel(char const * serialNo);
671
 
672
        /// <summary> Enable channel for computer control. </summary>
673
        /// <remarks> When enabled power is applied to the motor so it is fixed in position.</remarks>
674
        /// <param name="serialNo">     The device serial no. </param>
675
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
676
        /// <seealso cref="ISC_DisableChannel(char const * serialNo)" />
677
        ISC_API short __cdecl ISC_EnableChannel(char const * serialNo);
678
 
679
        /// <summary> Get number of positions. </summary>
680
        /// <remarks> The GetNumberPositions function will get the maximum position reachable by the device.<br />
681
        ///               The motor may need to be \ref C_MOTOR_sec10 "Homed" before this parameter can be used. </remarks>
682
        /// <param name="serialNo">     The device serial no. </param>
683
        /// <returns> The number of positions. </returns>
684
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
685
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
686
        /// <seealso cref="ISC_Home(char const * serialNo)" />
687
    ///                   \include CodeSnippet_move.cpp
688
        ISC_API int __cdecl ISC_GetNumberPositions(char const * serialNo);
689
 
690
        /// <summary> Move the device to the specified position (index). </summary>
691
        /// <remarks> The motor may need to be \ref C_MOTOR_sec10 "Homed" before a position can be set<br />
692
        ///               see \ref C_MOTOR_sec11 "Positioning" for more detail. </remarks>
693
        /// <param name="serialNo">     The device serial no. </param>
694
        /// <param name="index">        The position in \ref DeviceUnits_page. </param>
695
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if move successfully started. </returns>
696
        /// <seealso cref="ISC_GetNumberPositions(char const * serialNo)" />
697
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
698
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
699
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
700
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
701
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
702
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
703
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
704
    ///                   \include CodeSnippet_move.cpp
705
        ISC_API short __cdecl ISC_MoveToPosition(char const * serialNo, int index);
706
 
707
        /// <summary> Get the current position. </summary>
708
        /// <remarks> The current position is the last recorded position.<br />
709
        ///               The current position is updated either by the polling mechanism or<br />
710
        ///               by calling <see cref="RequestPosition" /> or <see cref="RequestStatus" />.</remarks>
711
        /// <param name="serialNo">     The device serial no. </param>
712
        /// <returns> The current position in \ref DeviceUnits_page. </returns>
713
        /// <seealso cref="ISC_GetNumberPositions(char const * serialNo)" />
714
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
715
        /// <seealso cref="ISC_Home(char const * serialNo)" />
716
    ///                   \include CodeSnippet_move.cpp
717
        ISC_API int __cdecl ISC_GetPosition(char const * serialNo);
718
 
719
        /// <summary> Can the device perform a Home. </summary>
720
        /// <param name="serialNo"> The serial no. </param>
721
        /// <returns> <c>true</c> if the device can home. </returns>
722
        ISC_API bool __cdecl ISC_CanHome(char const * serialNo);
723
 
724
        /// \deprecated
725
        /// <summary> Does the device need to be Homed before a move can be performed. </summary>
726
        /// <remarks> superceded by <see cref="ISC_CanMoveWithoutHomingFirst(char const * serialNo)"/> </remarks>
727
        /// <param name="serialNo"> The serial no. </param>
728
        /// <returns> <c>true</c> if the device needs homing. </returns>
729
        ISC_API bool __cdecl ISC_NeedsHoming(char const * serialNo);
730
 
731
        /// <summary> Can this device be moved without Homing. </summary>
732
        /// <param name="serialNo"> The serial no. </param>
733
        /// <returns> <c>true</c> if the device does not need to be homed before a move can be commanded. </returns>
734
        ISC_API bool __cdecl ISC_CanMoveWithoutHomingFirst(char const * serialNo);
735
 
736
        /// <summary> Home the device. </summary>
737
        /// <remarks> Homing the device will set the device to a known state and determine the home position,<br />
738
        ///               see \ref C_MOTOR_sec10 "Homing" for more detail. </remarks>
739
        /// <param name="serialNo">     The device serial no. </param>
740
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if move successfully started. </returns>
741
        /// <seealso cref="ISC_GetNumberPositions(char const * serialNo)" />
742
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
743
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
744
    ///                   \include CodeSnippet_move.cpp
745
        ISC_API short __cdecl ISC_Home(char const * serialNo);
746
 
747
        /// <summary> Clears the device message queue. </summary>
748
        /// <remarks> see \ref C_MESSAGES_page "Device Messages" for details on how to use messages. </remarks>
749
        /// <param name="serialNo"> The device serial no. </param>
750
        ISC_API void __cdecl ISC_ClearMessageQueue(char const * serialNo);
751
 
752
        /// <summary> Registers a callback on the message queue. </summary>
753
        /// <remarks> see \ref C_MESSAGES_page "Device Messages" for details on how to use messages. </remarks>
754
        /// <param name="serialNo"> The device serial no. </param>
755
        /// <param name="functionPointer"> A function pointer to be called whenever messages are received. </param>
756
        /// <seealso cref="ISC_MessageQueueSize(char const * serialNo)" />
757
        /// <seealso cref="ISC_GetNextMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
758
        /// <seealso cref="ISC_WaitForMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
759
        ISC_API void __cdecl ISC_RegisterMessageCallback(char const * serialNo, void (* functionPointer)());
760
 
761
        /// <summary> Gets the MessageQueue size. </summary>
762
        /// <remarks> see \ref C_MESSAGES_page "Device Messages" for details on how to use messages. </remarks>
763
        /// <param name="serialNo"> The device serial no. </param>
764
        /// <returns> number of messages in the queue. </returns>
765
        /// <seealso cref="ISC_RegisterMessageCallback(char const * serialNo, void (* functionPointer)())" />
766
        /// <seealso cref="ISC_GetNextMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
767
        /// <seealso cref="ISC_WaitForMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
768
        ISC_API int __cdecl ISC_MessageQueueSize(char const * serialNo);
769
 
770
        /// <summary> Get the next MessageQueue item. </summary>
771
        /// <remarks> see \ref C_MESSAGES_page "Device Messages" for details on how to use messages. </remarks>
772
        /// <param name="serialNo"> The device serial no. </param>
773
        /// <param name="messageType"> The address of the parameter to receive the message Type. </param>
774
        /// <param name="messageID">   The address of the parameter to receive the message id. </param>
775
        /// <param name="messageData"> The address of the parameter to receive the message data. </param>
776
        /// <returns> <c>true</c> if successful, false if not. </returns>
777
        /// <seealso cref="ISC_RegisterMessageCallback(char const * serialNo, void (* functionPointer)())" />
778
        /// <seealso cref="ISC_MessageQueueSize(char const * serialNo)" />
779
        /// <seealso cref="ISC_WaitForMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
780
        ISC_API bool __cdecl ISC_GetNextMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData);
781
 
782
        /// <summary> Wait for next MessageQueue item. </summary>
783
        /// <remarks> see \ref C_MESSAGES_page "Device Messages" for details on how to use messages. </remarks>
784
        /// <param name="serialNo"> The device serial no. </param>
785
        /// <param name="messageType"> The address of the parameter to receive the message Type. </param>
786
        /// <param name="messageID">   The address of the parameter to receive the message id. </param>
787
        /// <param name="messageData"> The address of the parameter to receive the message data. </param>
788
        /// <returns> <c>true</c> if successful, false if not. </returns>
789
        /// <seealso cref="ISC_RegisterMessageCallback(char const * serialNo, void (* functionPointer)())" />
790
        /// <seealso cref="ISC_MessageQueueSize(char const * serialNo)" />
791
        /// <seealso cref="ISC_GetNextMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData)" />
792
        ISC_API bool __cdecl ISC_WaitForMessage(char const * serialNo, WORD * messageType, WORD * messageID, DWORD *messageData);
793
 
794
        /// <summary> Requests the homing parameters. </summary>
795
        /// <param name="serialNo"> The serial no. </param>
796
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
797
        /// <seealso cref="ISC_GetHomingVelocity(char const * serialNo)" />
798
        /// <seealso cref="ISC_GetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
799
        ISC_API short __cdecl ISC_RequestHomingParams(char const * serialNo);
800
 
801
        /// <summary> Gets the homing velocity. </summary>
802
        /// <param name="serialNo">     The device serial no. </param>
803
        /// <returns> The homing velocity in \ref DeviceUnits_page. </returns>
804
        /// <seealso cref="ISC_SetHomingVelocity(char const * serialNo, unsigned int velocity)" />
805
        /// <seealso cref="ISC_RequestHomingParams(char const * serialNo)" />
806
        /// <seealso cref="ISC_GetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
807
        /// <seealso cref="ISC_SetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
808
        ISC_API unsigned int __cdecl ISC_GetHomingVelocity(char const * serialNo);
809
 
810
        /// <summary> Sets the homing velocity. </summary>
811
        /// <param name="serialNo">     The device serial no. </param>
812
        /// <param name="velocity"> The homing velocity in \ref DeviceUnits_page. </param>
813
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
814
        /// <seealso cref="ISC_RequestHomingParams(char const * serialNo)" />
815
        /// <seealso cref="ISC_GetHomingVelocity(char const * serialNo)" />
816
        /// <seealso cref="ISC_GetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
817
        /// <seealso cref="ISC_SetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
818
        ISC_API short __cdecl ISC_SetHomingVelocity(char const * serialNo, unsigned int velocity);
819
 
820
        /// <summary> Move the motor by a relative amount. </summary>
821
        /// <param name="serialNo">     The device serial no. </param>
822
        /// <param name="displacement"> Signed displacement in \ref DeviceUnits_page.</param>
823
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
824
        /// <seealso cref="ISC_GetNumberPositions(char const * serialNo)" />
825
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
826
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
827
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
828
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
829
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
830
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
831
    ///                   \include CodeSnippet_move.cpp
832
        ISC_API short __cdecl ISC_MoveRelative(char const * serialNo, int displacement);
833
 
834
        /// <summary> Requests the jog parameters. </summary>
835
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
836
        /// <param name="serialNo"> The device serial no. </param>
837
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
838
        /// <seealso cref="SISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
839
        /// <seealso cref="SISC_GetJogStepSize(char const * serialNo)" />
840
        /// <seealso cref="SISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
841
        /// <seealso cref="SISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
842
        ///               \include CodeSnippet_jogpars.cpp
843
        ISC_API short __cdecl ISC_RequestJogParams(const char * serialNo);
844
 
845
        /// <summary> Gets the jog mode. </summary>
846
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
847
        /// <param name="serialNo">     The device serial no. </param>
848
        /// <param name="mode"> The address of the short mode to recieve the Mode.
849
        ///                                      <list type=table>
850
        ///                                                     <item><term>Jog step</term><term>1</term></item>
851
        ///                                                     <item><term>Continuous</term><term>2</term></item>
852
        ///                                      </list> </param>
853
        /// <param name="stopMode"> The address of the short stopMode to recieve the StopMode.
854
        ///                                     <list type=table>
855
        ///                                                     <item><term>Immediate Stop</term><term>1</term></item>
856
        ///                                                     <item><term>Profiled Stop</term><term>2</term></item>
857
        ///                                      </list> </param>
858
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
859
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
860
        /// <seealso cref="ISC_RequestJogParams(char const * serialNo)" />
861
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
862
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
863
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
864
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
865
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
866
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
867
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
868
    ///                   \include CodeSnippet_jogpars.cpp
869
        ISC_API short __cdecl ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode);
870
 
871
        /// <summary> Sets the jog mode. </summary>
872
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
873
        /// <param name="serialNo">     The device serial no. </param>
874
        /// <param name="mode"> The jog mode.
875
        ///                                      <list type=table>
876
        ///                                                     <item><term>Jog step</term><term>1</term></item>
877
        ///                                                     <item><term>Continuous</term><term>2</term></item>
878
        ///                                      </list> </param>
879
        /// <param name="stopMode"> The StopMode.
880
        ///                                     <list type=table>
881
        ///                                                     <item><term>Immediate Stop</term><term>1</term></item>
882
        ///                                                     <item><term>Profiled Stop</term><term>2</term></item>
883
        ///                                      </list>  </param>
884
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
885
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
886
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
887
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
888
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
889
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
890
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
891
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
892
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
893
    ///                   \include CodeSnippet_jogpars.cpp
894
        ISC_API short __cdecl ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode);
895
 
896
        /// <summary> Gets the distance to move when jogging. </summary>
897
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
898
        /// <param name="serialNo">     The device serial no. </param>
899
        /// <returns> The step in \ref DeviceUnits_page. </returns>
900
        /// <seealso cref="ISC_RequestJogParams(char const * serialNo)" />
901
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
902
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
903
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
904
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
905
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
906
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
907
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
908
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
909
    ///                   \include CodeSnippet_jogpars.cpp
910
        ISC_API unsigned int __cdecl ISC_GetJogStepSize(char const * serialNo);
911
 
912
        /// <summary> Sets the distance to move on jogging. </summary>
913
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
914
        /// <param name="serialNo">     The device serial no. </param>
915
        /// <param name="stepSize"> The step in \ref DeviceUnits_page. </param>
916
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
917
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
918
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
919
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
920
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
921
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
922
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
923
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
924
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
925
    ///                   \include CodeSnippet_jogpars.cpp
926
        ISC_API short __cdecl ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize);
927
 
928
        /// <summary> Gets the jog velocity parameters. </summary>
929
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
930
        /// <param name="serialNo">     The device serial no. </param>
931
        /// <param name="acceleration"> Address of the parameter to receive the acceleration in \ref DeviceUnits_page. </param>
932
        /// <param name="maxVelocity"> Address of the parameter to receive the velocity in \ref DeviceUnits_page. </param>
933
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
934
        /// <seealso cref="ISC_RequestJogParams(char const * serialNo)" />
935
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
936
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
937
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
938
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
939
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
940
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
941
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
942
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
943
    ///                   \include CodeSnippet_jogpars.cpp
944
        ISC_API short __cdecl ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity);
945
 
946
        /// <summary> Sets jog velocity parameters. </summary>
947
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
948
        /// <param name="serialNo">     The device serial no. </param>
949
        /// <param name="acceleration">   The acceleration in \ref DeviceUnits_page. </param>
950
        /// <param name="maxVelocity"> The maximum velocity in \ref DeviceUnits_page. </param>
951
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
952
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
953
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
954
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
955
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
956
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
957
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
958
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
959
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
960
    ///                   \include CodeSnippet_jogpars.cpp
961
        ISC_API short __cdecl ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity);
962
 
963
        /// <summary> Perform a jog. </summary>
964
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
965
        /// <param name="serialNo">     The device serial no. </param>
966
        /// <param name="jogDirection"> The jog direction
967
        ///                                      <list type=table>
968
        ///                                                     <item><term>Forwards</term><term>1</term></item>
969
        ///                                                     <item><term>Backwards</term><term>2</term></item>
970
        ///                                      </list> </param>
971
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
972
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
973
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
974
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
975
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
976
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
977
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
978
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
979
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
980
    ///                   \include CodeSnippet_jog.cpp
981
        ISC_API short __cdecl ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection);
982
 
983
        /// <summary> Requests the velocity parameters. </summary>
984
        /// <param name="serialNo"> The serial no. </param>
985
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
986
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
987
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
988
        ISC_API short __cdecl ISC_RequestVelParams(char const * serialNo);
989
 
990
        /// <summary> Gets the move velocity parameters. </summary>
991
        /// <remarks> see \ref C_MOTOR_sec11 "Positioning" for more detail.<remarks>
992
        /// <param name="serialNo">     The device serial no. </param>
993
        /// <param name="acceleration"> Address of the parameter to receive the acceleration value in \ref DeviceUnits_page. </param>
994
        /// <param name="maxVelocity"> Address of the parameter to receive the maximum velocity value in \ref DeviceUnits_page. </param>
995
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
996
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
997
        /// <seealso cref="ISC_RequestVelParams(char const * serialNo)" />
998
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
999
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
1000
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
1001
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
1002
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
1003
    ///                   \include CodeSnippet_movepars.cpp
1004
        ISC_API short __cdecl ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity);
1005
 
1006
        /// <summary> Sets the move velocity parameters. </summary>
1007
        /// <remarks> see \ref C_MOTOR_sec11 "Positioning" for more detail.<remarks>
1008
        /// <param name="serialNo">     The device serial no. </param>
1009
        /// <param name="acceleration"> The new acceleration value in \ref DeviceUnits_page. </param>
1010
        /// <param name="maxVelocity"> The new maximum velocity value in \ref DeviceUnits_page. </param>
1011
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1012
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1013
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
1014
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
1015
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
1016
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
1017
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
1018
    ///                   \include CodeSnippet_movepars.cpp
1019
        ISC_API short __cdecl ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity);
1020
 
1021
        /// <summary> Start moving at the current velocity in the specified direction. </summary>
1022
        /// <remarks> see \ref C_MOTOR_sec11 "Positioning" for more detail.<remarks>
1023
        /// <param name="serialNo">     The device serial no. </param>
1024
        /// <param name="direction"> The required direction of travel.
1025
        ///                                      <list type=table>
1026
        ///                                                     <item><term>Forwards</term><term>1</term></item>
1027
        ///                                                     <item><term>Backwards</term><term>2</term></item>
1028
        ///                                      </list> </param>
1029
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1030
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1031
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
1032
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
1033
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
1034
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
1035
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
1036
    ///                   \include CodeSnippet_move.cpp
1037
        ISC_API short __cdecl ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction);
1038
 
1039
        /// <summary> Sets the motor direction sense. </summary>
1040
        /// <remarks> This function is used because some actuators use have directions of motion reversed.<br />
1041
        ///               This parameter will tell the system to reverse the direction sense whnd moving, jogging etc. </remarks>
1042
        /// <param name="serialNo">     The device serial no. </param>
1043
        /// <param name="reverse"> if  <c>true</c> then directions will be swapped on these moves. </param>
1044
        ISC_API void __cdecl ISC_SetDirection(char const * serialNo, bool reverse);
1045
 
1046
        /// <summary> Stop the current move immediately (with risk of losing track of position). </summary>
1047
        /// <param name="serialNo">     The device serial no. </param>
1048
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1049
        /// <seealso cref="ISC_StopProfiled(char const * serialNo)" />
1050
        ISC_API short __cdecl ISC_StopImmediate(char const * serialNo);
1051
 
1052
        /// <summary> Stop the current move using the current velocity profile. </summary>
1053
        /// <param name="serialNo">     The device serial no. </param>
1054
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1055
        /// <seealso cref="ISC_StopImmediate(char const * serialNo)" />
1056
        ISC_API short __cdecl ISC_StopProfiled(char const * serialNo);
1057
 
1058
        /// <summary> Requests the backlash. </summary>
1059
        /// <param name="serialNo"> The serial no. </param>
1060
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1061
        /// <seealso cref="ISC_GetBacklash(char const * serialNo)" />
1062
        /// <seealso cref="ISC_SetBacklash(char const * serialNo, long distance)" />
1063
        ISC_API short __cdecl ISC_RequestBacklash(char const * serialNo);
1064
 
1065
        /// <summary> Get the backlash distance setting (used to control hysteresis). </summary>
1066
        /// <param name="serialNo"> The device serial no. </param>
1067
        /// <returns> The backlash distance in \ref DeviceUnits_page. </returns>
1068
        /// <seealso cref="ISC_RequestBacklash(char const * serialNo)" />
1069
        /// <seealso cref="ISC_SetBacklash(char const * serialNo, long distance)" />
1070
        ISC_API long __cdecl ISC_GetBacklash(char const * serialNo);
1071
 
1072
        /// <summary> Sets the backlash distance (used to control hysteresis). </summary>
1073
        /// <param name="serialNo">  The serial no. </param>
1074
        /// <param name="distance"> The distance in \ref DeviceUnits_page. </param>
1075
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1076
        /// <seealso cref="ISC_RequestBacklash(char const * serialNo)" />
1077
        /// <seealso cref="ISC_GetBacklash(char const * serialNo)" />
1078
        ISC_API short __cdecl ISC_SetBacklash(char const * serialNo, long distance);
1079
 
1080
        /// <summary> Get the Position Counter. </summary>
1081
        /// <remarks> The position counter is identical to the position parameter.<br />
1082
        ///               The position counter is set to zero when homing is complete.<br />
1083
        ///               The position counter can also be set using <see cref="ISC_SetPositionCounter(char const * serialNo, short channel, long count)" /> <br />
1084
        ///               if homing is not to be perforned</remarks>
1085
        /// <param name="serialNo">     The device serial no. </param>
1086
        /// <returns> Position Counter in \ref DeviceUnits_page. </returns>
1087
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
1088
        /// <seealso cref="ISC_SetPositionCounter(char const * serialNo, long count)" />
1089
        ISC_API long __cdecl ISC_GetPositionCounter(char const * serialNo);
1090
 
1091
        /// <summary> Set the Position Counter. </summary>
1092
        /// <remarks> Setting the position counter will locate the current position. <br />
1093
        ///               Setting the position counter will effectively define the home position of a motor. </remarks>
1094
        /// <param name="serialNo">     The device serial no. </param>
1095
        /// <param name="count"> Position count in \ref DeviceUnits_page. </param>
1096
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1097
        /// <seealso cref="ISC_GetPositionCounter(char const * serialNo)" />
1098
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
1099
        ISC_API short __cdecl ISC_SetPositionCounter(char const * serialNo, long count);
1100
 
1101
        /// <summary> Requests the limit switch parameters. </summary>
1102
        /// <param name="serialNo"> The serial no. </param>
1103
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1104
        /// <seealso cref="ISC_GetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes * clockwiseHardwareLimit, MOT_LimitSwitchModes * anticlockwiseHardwareLimit, unsigned int * clockwisePosition, unsigned int * anticlockwisePosition, MOT_LimitSwitchSWModes * softLimitMode)" />
1105
        /// <seealso cref="ISC_GetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1106
        ISC_API short __cdecl ISC_RequestLimitSwitchParams(char const * serialNo);
1107
 
1108
        /// <summary> Gets the limit switch parameters. </summary>
1109
        /// <param name="serialNo">     The device serial no. </param>
1110
        /// <param name="clockwiseHardwareLimit"> The clockwise hardware limit mode.
1111
        ///                                     <list type=table>
1112
        ///                                                     <item><term> Ignore switch or switch not present. </term><term>1</term></item>
1113
        ///                                                     <item><term> Switch makes on contact. </term><term>2</term></item>
1114
        ///                                                     <item><term> Switch breaks on contact. </term><term>3</term></item>
1115
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1116
        /// <param name="anticlockwiseHardwareLimit"> The anticlockwise hardware limit mode
1117
        ///                                      <list type=table>
1118
        ///                                                     <item><term> Ignore switch or switch not present. </term><term>1</term></item>
1119
        ///                                                     <item><term> Switch makes on contact. </term><term>2</term></item>
1120
        ///                                                     <item><term> Switch breaks on contact. </term><term>3</term></item>
1121
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1122
        /// 
1123
        /// <param name="clockwisePosition"> The poition of the clockwise software limit in \ref DeviceUnits_page. </param>
1124
        /// <param name="anticlockwisePosition"> The position of the anticlockwise software limit in \ref DeviceUnits_page. </param>
1125
        /// <param name="softLimitMode"> The soft limit mode
1126
        ///                                      <list type=table>
1127
        ///                                                     <item><term> Ignore limit. </term><term>1</term></item>
1128
        ///                                                     <item><term> Immediate Stop. </term><term>2</term></item>
1129
        ///                                                     <item><term> SProfiled stop. </term><term>3</term></item>
1130
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1131
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1132
        /// <seealso cref="ISC_SetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes clockwiseHardwareLimit, MOT_LimitSwitchModes anticlockwiseHardwareLimit, unsigned int clockwisePosition, unsigned int anticlockwisePosition, MOT_LimitSwitchSWModes softLimitMode)" />
1133
        /// <seealso cref="ISC_SetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1134
        /// <seealso cref="ISC_RequestLimitSwitchParams(char const * serialNo)" />
1135
        /// <seealso cref="ISC_GetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1136
        ISC_API short __cdecl ISC_GetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes * clockwiseHardwareLimit, MOT_LimitSwitchModes * anticlockwiseHardwareLimit, unsigned int * clockwisePosition, unsigned int * anticlockwisePosition, MOT_LimitSwitchSWModes * softLimitMode);
1137
 
1138
        /// <summary> Sets the limit switch parameters. </summary>
1139
        /// <param name="serialNo">     The device serial no. </param>
1140
        /// <param name="clockwiseHardwareLimit"> The clockwise hardware limit mode.
1141
        ///                                     <list type=table>
1142
        ///                                                     <item><term> Ignore switch or switch not present. </term><term>1</term></item>
1143
        ///                                                     <item><term> Switch makes on contact. </term><term>2</term></item>
1144
        ///                                                     <item><term> Switch breaks on contact. </term><term>3</term></item>
1145
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1146
        /// <param name="anticlockwiseHardwareLimit"> The anticlockwise hardware limit mode
1147
        ///                                      <list type=table>
1148
        ///                                                     <item><term> Ignore switch or switch not present. </term><term>1</term></item>
1149
        ///                                                     <item><term> Switch makes on contact. </term><term>2</term></item>
1150
        ///                                                     <item><term> Switch breaks on contact. </term><term>3</term></item>
1151
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1152
        /// 
1153
        /// <param name="clockwisePosition"> The poition of the clockwise software limit in \ref DeviceUnits_page. </param>
1154
        /// <param name="anticlockwisePosition"> The position of the anticlockwise software limit in \ref DeviceUnits_page. </param>
1155
        /// <param name="softLimitMode"> The soft limit mode
1156
        ///                                      <list type=table>
1157
        ///                                                     <item><term> Ignore limit. </term><term>1</term></item>
1158
        ///                                                     <item><term> Immediate Stop. </term><term>2</term></item>
1159
        ///                                                     <item><term> SProfiled stop. </term><term>3</term></item>
1160
        ///                                      </list> <remarks> If these are bitwise-ORed with 0x0080 then the limits are swapped. </remarks> </param>
1161
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1162
        /// <seealso cref="ISC_RequestLimitSwitchParams(char const * serialNo)" />
1163
        /// <seealso cref="ISC_GetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes * clockwiseHardwareLimit, MOT_LimitSwitchModes * anticlockwiseHardwareLimit, unsigned int * clockwisePosition, unsigned int * anticlockwisePosition, MOT_LimitSwitchSWModes * softLimitMode)" />
1164
        /// <seealso cref="ISC_SetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1165
        /// <seealso cref="ISC_GetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1166
        ISC_API short __cdecl ISC_SetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes clockwiseHardwareLimit, MOT_LimitSwitchModes anticlockwiseHardwareLimit, unsigned int clockwisePosition, unsigned int anticlockwisePosition, MOT_LimitSwitchSWModes softLimitMode);
1167
 
1168
        /// <summary> Gets the software limits mode. </summary>
1169
        /// <param name="serialNo">     The device serial no. </param>
1170
        /// <returns>   The software limits mode <list type=table>
1171
        ///                                                     <item><term> Disable any move outside of the current travel range of the stage. </term><term>0</term></item>
1172
        ///                                                     <item><term> Truncate moves to within the current travel range of the stage. </term><term>1</term></item>
1173
        ///                                                     <item><term> Allow all moves, regardless of whether they are within the current travel range of the stage. </term><term>2</term></item>
1174
        ///               </list>. </returns>
1175
        /// <returns> The software limits mode. </returns>
1176
        /// <seealso cref="ISC_SetLimitsSoftwareApproachPolicy(const char * serialNo, MOT_LimitsSoftwareApproachPolicy limitsSoftwareApproachPolicy)" />
1177
        ISC_API MOT_LimitsSoftwareApproachPolicy __cdecl ISC_GetSoftLimitMode(char const * serialNo);
1178
 
1179
        /// <summary> Sets the software limits mode. </summary>
1180
        /// <param name="serialNo">     The device serial no. </param>
1181
        /// <param name="limitsSoftwareApproachPolicy"> The soft limit mode
1182
        ///                                      <list type=table>
1183
        ///                                                     <item><term> Disable any move outside of the current travel range of the stage. </term><term>0</term></item>
1184
        ///                                                     <item><term> Truncate moves to within the current travel range of the stage. </term><term>1</term></item>
1185
        ///                                                     <item><term> Allow all moves, regardless of whether they are within the current travel range of the stage. </term><term>2</term></item>
1186
        ///                                      </list> </param>
1187
        /// <seealso cref="ISC_GetSoftLimitMode(const char * serialNo)" />
1188
        ISC_API void __cdecl ISC_SetLimitsSoftwareApproachPolicy(char const * serialNo, MOT_LimitsSoftwareApproachPolicy limitsSoftwareApproachPolicy);
1189
 
1190
        // Button Parameters
1191
 
1192
        /// <summary> Requests the LTS button parameters. </summary>
1193
        /// <param name="serialNo"> The serial no. </param>
1194
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1195
        /// <seealso cref="ISC_GetButtonParams(char const * serialNo, MOT_ButtonModes * buttonMode, int * leftButtonPosition, int * rightButtonPosition, short * timeout)" />
1196
        /// <seealso cref="ISC_SetButtonParams(char const * serialNo, MOT_ButtonModes buttonMode, int leftButtonPosition, int rightButtonPosition)" />
1197
        /// <seealso cref="ISC_GetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1198
        /// <seealso cref="ISC_SetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1199
        ISC_API short __cdecl ISC_RequestButtonParams(char const * serialNo);
1200
 
1201
        /// <summary> Gets the LTS button parameters. </summary>
1202
        /// <param name="serialNo">     The device serial no. </param>
1203
        /// <param name="buttonMode">   Address of the parameter to receive the button mode.
1204
        ///                                     <list type=table>
1205
        ///                                                     <item><term> Jogging Mode. </term><term>1</term></item>
1206
        ///                                                     <item><term> Preset Mode. </term><term>2</term></item>
1207
        ///                                      </list> </param>
1208
        /// <param name="leftButtonPosition">  Address of the parameter to receive the Preset position in \ref DeviceUnits_page for the left button (when in preset mode). </param>
1209
        /// <param name="rightButtonPosition"> Address of the parameter to receive the Preset position in \ref DeviceUnits_page for the right button (when in preset mode). </param>
1210
        /// <param name="timeout"> The time that buttons need to be pressed in order to go home or to recored a preset buttons defined position. </param>
1211
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1212
        /// <seealso cref="ISC_SetButtonParams(char const * serialNo, MOT_ButtonModes buttonMode, int leftButtonPosition, int rightButtonPosition)" />
1213
        /// <seealso cref="ISC_SetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1214
        /// <seealso cref="ISC_RequestButtonParams(char const * serialNo)" />
1215
        /// <seealso cref="ISC_GetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1216
        ISC_API short __cdecl ISC_GetButtonParams(char const * serialNo, MOT_ButtonModes * buttonMode, int * leftButtonPosition, int * rightButtonPosition, short * timeout);
1217
 
1218
        /// <summary> Sets the LTS button parameters. </summary>
1219
        /// <param name="serialNo">     The device serial no. </param>
1220
        /// <param name="buttonMode">   The button mode.
1221
        ///                                     <list type=table>
1222
        ///                                                     <item><term> Jogging Mode. </term><term>1</term></item>
1223
        ///                                                     <item><term> Preset Mode. </term><term>2</term></item>
1224
        ///                                      </list> </param>
1225
        /// <param name="leftButtonPosition">  The Preset position in \ref DeviceUnits_page for the left button (when in preset mode). </param>
1226
        /// <param name="rightButtonPosition"> The Preset position in \ref DeviceUnits_page for the right button (when in preset mode). </param>
1227
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1228
        /// <seealso cref="ISC_RequestButtonParams(char const * serialNo)" />
1229
        /// <seealso cref="ISC_GetButtonParams(char const * serialNo, MOT_ButtonModes * buttonMode, int * leftButtonPosition, int * rightButtonPosition, short * timeout)" />
1230
        /// <seealso cref="ISC_SetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1231
        /// <seealso cref="ISC_GetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1232
        ISC_API short __cdecl ISC_SetButtonParams(char const * serialNo, MOT_ButtonModes buttonMode, int leftButtonPosition, int rightButtonPosition);
1233
 
1234
        /// <summary> Requests the potentiometer parameters. </summary>
1235
        /// <param name="serialNo"> The serial no. </param>
1236
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1237
        /// <seealso cref="ISC_GetPotentiometerParams(char const * serialNo, short index, WORD * thresholdDeflection, DWORD * velocity)" />
1238
        /// <seealso cref="ISC_SetPotentiometerParams(char const * serialNo, short index, WORD thresholdDeflection, DWORD velocity)" />
1239
        ISC_API short __cdecl ISC_RequestPotentiometerParams(char const * serialNo);
1240
 
1241
        /// <summary> Gets the potentiometer parameters for the LTS. </summary>
1242
        /// <param name="serialNo">     The device serial no. </param>
1243
        /// <param name="index">        The potentiometer index to be read. </param>
1244
        /// <param name="thresholdDeflection"> Address of the parameter to recieve the potentiometer threshold, range 0 to 127. </param>
1245
        /// <param name="velocity"> Address of the parameter to recieve the velocity in \ref DeviceUnits_page for the current potentiometer threshold. </param>
1246
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1247
        /// <seealso cref="ISC_RequestPotentiometerParams(char const * serialNo)" />
1248
        /// <seealso cref="ISC_SetPotentiometerParams(char const * serialNo, short index, WORD thresholdDeflection, DWORD velocity)" />
1249
        ISC_API short __cdecl ISC_GetPotentiometerParams(char const * serialNo, short index, WORD * thresholdDeflection, DWORD * velocity);
1250
 
1251
        /// <summary> Sets the potentiometer parameters for the LTS. </summary>
1252
        /// <param name="serialNo">     The device serial no. </param>
1253
        /// <param name="index">        The potentiometer index to be stored. </param>
1254
        /// <param name="thresholdDeflection"> The potentiometer threshold, range 0 to 127. </param>
1255
        /// <param name="velocity"> The velocity in \ref DeviceUnits_page for the current potentiometer threshold. </param>
1256
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1257
        /// <seealso cref="ISC_RequestPotentiometerParams(char const * serialNo)" />
1258
        /// <seealso cref="ISC_GetPotentiometerParams(char const * serialNo, short index, WORD * thresholdDeflection, DWORD * velocity)" />
1259
        ISC_API short __cdecl ISC_SetPotentiometerParams(char const * serialNo, short index, WORD thresholdDeflection, DWORD velocity);
1260
 
1261
 
1262
        /// <summary> Get the move velocity parameters. </summary>
1263
        /// <remarks> see \ref C_MOTOR_sec11 "Positioning" for more detail.<remarks>
1264
        /// <param name="serialNo">     The device serial no. </param>
1265
        /// <param name="velocityParams"> Address of the MOT_VelocityParameters to recieve the velocity parameters. </param>
1266
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1267
        /// <seealso cref="ISC_RequestVelParams(char const * serialNo)" />
1268
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1269
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
1270
        /// <seealso cref="ISC_SetVelParamsBlock(char const * serialNo, MOT_VelocityParameters *velocityParams)" />
1271
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
1272
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
1273
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
1274
    ///                   \include CodeSnippet_movepars.cpp
1275
        ISC_API short __cdecl ISC_GetVelParamsBlock(const char * serialNo, MOT_VelocityParameters  *velocityParams);
1276
 
1277
        /// <summary> Set the move velocity parameters. </summary>
1278
        /// <remarks> see \ref C_MOTOR_sec11 "Positioning" for more detail.<remarks>
1279
        /// <param name="serialNo">     The device serial no. </param>
1280
        /// <param name="velocityParams"> The address of the MOT_VelocityParameters holding the new velocity parameters. </param>
1281
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1282
        /// <seealso cref="ISC_GetVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1283
        /// <seealso cref="ISC_SetVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
1284
        /// <seealso cref="ISC_GetVelParamsBlock(char const * serialNo, MOT_VelocityParameters  *velocityParams)" />
1285
        /// <seealso cref="ISC_MoveToPosition(char const * serialNo, int index)" />
1286
        /// <seealso cref="ISC_MoveRelative(char const * serialNo, int displacement)" />
1287
        /// <seealso cref="ISC_MoveAtVelocity(char const * serialNo, MOT_TravelDirection direction)" />
1288
    ///                   \include CodeSnippet_movepars.cpp
1289
        ISC_API short __cdecl ISC_SetVelParamsBlock(const char * serialNo, MOT_VelocityParameters *velocityParams);
1290
 
1291
        /// <summary> Sets the move absolute position. </summary>
1292
        /// <param name="serialNo">     The device serial no. </param>
1293
        /// <param name="position"> The absolute position in \ref DeviceUnits_page. </param>
1294
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1295
        /// <seealso cref="ISC_RequestMoveAbsolutePosition(char const * serialNo)" />
1296
        /// <seealso cref="ISC_GetMoveAbsolutePosition(const char * serialNo)" />
1297
        /// <seealso cref="ISC_MoveAbsolute(const char * serialNo)" />
1298
        ISC_API short __cdecl ISC_SetMoveAbsolutePosition(const char * serialNo, int position);
1299
 
1300
        /// <summary> Requests the position of next absolute move. </summary>
1301
        /// <param name="serialNo"> The serial no. </param>
1302
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1303
        /// <seealso cref="ISC_GetMoveAbsolutePosition(const char * serialNo)" />
1304
        /// <seealso cref="ISC_SetMoveAbsolutePosition(const char * serialNo, int position)" />
1305
        /// <seealso cref="ISC_MoveAbsolute(const char * serialNo)" />
1306
        ISC_API short __cdecl ISC_RequestMoveAbsolutePosition(char const * serialNo);
1307
 
1308
        /// <summary> Gets the move absolute position. </summary>
1309
        /// <param name="serialNo">     The device serial no. </param>
1310
        /// <returns> The move absolute position in \ref DeviceUnits_page. </returns>
1311
        /// <seealso cref="ISC_RequestMoveAbsolutePosition(char const * serialNo)" />
1312
        /// <seealso cref="ISC_SetMoveAbsolutePosition(const char * serialNo, int position)" />
1313
        /// <seealso cref="ISC_MoveAbsolute(const char * serialNo)" />
1314
        ISC_API int __cdecl ISC_GetMoveAbsolutePosition(const char * serialNo);
1315
 
1316
        /// <summary> Moves the device to the position defined in the SetMoveAbsolute command. </summary>
1317
        /// <param name="serialNo">     The device serial no. </param>
1318
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1319
        /// <seealso cref="ISC_RequestMoveAbsolutePosition(char const * serialNo)" />
1320
        /// <seealso cref="ISC_SetMoveAbsolutePosition(const char * serialNo, int position)" />
1321
        /// <seealso cref="ISC_GetMoveAbsolutePosition(const char * serialNo)" />
1322
        ISC_API short __cdecl ISC_MoveAbsolute(const char * serialNo);
1323
 
1324
        /// <summary> Sets the move relative distance. </summary>
1325
        /// <param name="serialNo">     The device serial no. </param>
1326
        /// <param name="distance"> The relative distance in \ref DeviceUnits_page. </param>
1327
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1328
        /// <seealso cref="ISC_RequestMoveRelativeDistance(char const * serialNo)" />
1329
        /// <seealso cref="ISC_GetMoveRelativeDistance(const char * serialNo)" />
1330
        /// <seealso cref="ISC_MoveRelativeDistance(const char * serialNo)" />
1331
        ISC_API short __cdecl ISC_SetMoveRelativeDistance(const char * serialNo, int distance);
1332
 
1333
        /// <summary> Requests the relative move distance. </summary>
1334
        /// <param name="serialNo"> The serial no. </param>
1335
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1336
        /// <seealso cref="ISC_GetMoveRelativeDistance(const char * serialNo)" />
1337
        /// <seealso cref="ISC_SetMoveRelativeDistance(const char * serialNo, int distance)" />
1338
        /// <seealso cref="ISC_MoveRelativeDistance(const char * serialNo)" />
1339
        ISC_API short __cdecl ISC_RequestMoveRelativeDistance(char const * serialNo);
1340
 
1341
        /// <summary> Gets the move relative distance. </summary>
1342
        /// <param name="serialNo">     The device serial no. </param>
1343
        /// <returns> The move relative distance in \ref DeviceUnits_page. </returns>
1344
        /// <seealso cref="ISC_RequestMoveRelativeDistance(char const * serialNo)" />
1345
        /// <seealso cref="ISC_SetMoveRelativeDistance(const char * serialNo, int distance)" />
1346
        /// <seealso cref="ISC_MoveRelativeDistance(const char * serialNo)" />
1347
        ISC_API int __cdecl ISC_GetMoveRelativeDistance(const char * serialNo);
1348
 
1349
        /// <summary> Moves the device by a relative distancce defined by SetMoveRelativeDistance. </summary>
1350
        /// <param name="serialNo">     The device serial no. </param>
1351
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1352
        /// <seealso cref="ISC_RequestMoveRelativeDistance(char const * serialNo)" />
1353
        /// <seealso cref="ISC_SetMoveRelativeDistance(const char * serialNo, int distance)" />
1354
        /// <seealso cref="ISC_GetMoveRelativeDistance(const char * serialNo)" />
1355
        ISC_API short __cdecl ISC_MoveRelativeDistance(const char * serialNo);
1356
 
1357
        /// <summary> Get the homing parameters. </summary>
1358
        /// <remarks> see \ref C_MOTOR_sec10 "Homing" for more detail.<remarks>
1359
        /// <param name="serialNo"> The device serial no. </param>
1360
        /// <param name="homingParams"> Address of the MOT_HomingParameters to recieve the homing parameters. </param>
1361
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1362
        /// <seealso cref="ISC_RequestHomingParams(char const * serialNo)" />
1363
        /// <seealso cref="ISC_GetHomingVelocity(char const * serialNo)" />
1364
        /// <seealso cref="ISC_SetHomingVelocity(char const * serialNo, unsigned int velocity)" />
1365
        /// <seealso cref="ISC_SetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
1366
        ISC_API short __cdecl ISC_GetHomingParamsBlock(const char * serialNo, MOT_HomingParameters *homingParams);
1367
 
1368
        /// <summary> Set the homing parameters. </summary>
1369
        /// <remarks> see \ref C_MOTOR_sec10 "Homing" for more detail.<remarks>
1370
        /// <param name="serialNo"> The device serial no. </param>
1371
        /// <param name="homingParams"> Address of the new homing parameters. </param>
1372
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1373
        /// <seealso cref="ISC_RequestHomingParams(char const * serialNo)" />
1374
        /// <seealso cref="ISC_GetHomingVelocity(char const * serialNo)" />
1375
        /// <seealso cref="ISC_SetHomingVelocity(char const * serialNo, unsigned int velocity)" />
1376
        /// <seealso cref="ISC_GetHomingParamsBlock(char const * serialNo, MOT_HomingParameters *homingParams)" />
1377
        ISC_API short __cdecl ISC_SetHomingParamsBlock(const char * serialNo, MOT_HomingParameters *homingParams);
1378
 
1379
        /// <summary> Get the jog parameters. </summary>
1380
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
1381
        /// <param name="serialNo">  The device serial no. </param>
1382
        /// <param name="jogParams"> The address of the MOT_JogParameters block to recieve the jog parameters </param>
1383
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1384
        /// <seealso cref="ISC_RequestJogParams(char const * serialNo)" />
1385
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
1386
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
1387
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
1388
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
1389
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
1390
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1391
        /// <seealso cref="ISC_SetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
1392
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
1393
    ///                   \include CodeSnippet_jogpars.cpp
1394
        ISC_API short __cdecl ISC_GetJogParamsBlock(const char * serialNo, MOT_JogParameters *jogParams);
1395
 
1396
        /// <summary> Set the jog parameters. </summary>
1397
        /// <remarks> see \ref C_MOTOR_sec12 "Jogging" for more detail.<remarks>
1398
        /// <param name="serialNo"> The device serial no. </param>
1399
        /// <param name="jogParams"> The address of the new MOT_JogParameters block. </param>
1400
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1401
        /// <seealso cref="ISC_GetJogMode(char const * serialNo, MOT_JogModes * mode, MOT_StopModes * stopMode)" />
1402
        /// <seealso cref="ISC_SetJogMode(char const * serialNo, MOT_JogModes mode, MOT_StopModes stopMode)" />
1403
        /// <seealso cref="ISC_GetJogStepSize(char const * serialNo)" />
1404
        /// <seealso cref="ISC_SetJogStepSize(char const * serialNo, unsigned int stepSize)" />
1405
        /// <seealso cref="ISC_SetJogVelParams(char const * serialNo, int acceleration, int maxVelocity)" />
1406
        /// <seealso cref="ISC_GetJogVelParams(char const * serialNo, int * acceleration, int * maxVelocity)" />
1407
        /// <seealso cref="ISC_GetJogParamsBlock(char const * serialNo, MOT_JogParameters *jogParams)" />
1408
        /// <seealso cref="ISC_MoveJog(char const * serialNo, MOT_TravelDirection jogDirection)" />
1409
    ///                   \include CodeSnippet_jogpars.cpp
1410
        ISC_API short __cdecl ISC_SetJogParamsBlock(const char * serialNo, MOT_JogParameters *jogParams);
1411
 
1412
        /// <summary> Get the limit switch parameters. </summary>
1413
        /// <param name="serialNo"> The device serial no. </param>
1414
        /// <param name="limitSwitchParams"> Address of the MOT_LimitSwitchParameters parameter to recieve the  limit switch parameters. </param>
1415
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1416
        /// <seealso cref="ISC_SetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes clockwiseHardwareLimit, MOT_LimitSwitchModes anticlockwiseHardwareLimit, unsigned int clockwisePosition, unsigned int anticlockwisePosition, MOT_LimitSwitchSWModes softLimitMode)" />
1417
        /// <seealso cref="ISC_RequestLimitSwitchParams(char const * serialNo)" />
1418
        /// <seealso cref="ISC_GetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes * clockwiseHardwareLimit, MOT_LimitSwitchModes * anticlockwiseHardwareLimit, unsigned int * clockwisePosition, unsigned int * anticlockwisePosition, MOT_LimitSwitchSWModes * softLimitMode)" />
1419
        /// <seealso cref="ISC_SetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1420
        ISC_API short __cdecl ISC_GetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams);
1421
 
1422
        /// <summary> Set the limit switch parameters. </summary>
1423
        /// <param name="serialNo"> The device serial no. </param>
1424
        /// <param name="limitSwitchParams"> Address of the MOT_LimitSwitchParameters parameter containing the new limit switch parameters. </param>
1425
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1426
        /// <seealso cref="ISC_RequestLimitSwitchParams(char const * serialNo)" />
1427
        /// <seealso cref="ISC_GetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes * clockwiseHardwareLimit, MOT_LimitSwitchModes * anticlockwiseHardwareLimit, unsigned int * clockwisePosition, unsigned int * anticlockwisePosition, MOT_LimitSwitchSWModes * softLimitMode)" />
1428
        /// <seealso cref="ISC_SetLimitSwitchParams(char const * serialNo, MOT_LimitSwitchModes clockwiseHardwareLimit, MOT_LimitSwitchModes anticlockwiseHardwareLimit, unsigned int clockwisePosition, unsigned int anticlockwisePosition, MOT_LimitSwitchSWModes softLimitMode)" />
1429
        /// <seealso cref="ISC_GetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams)" />
1430
        ISC_API short __cdecl ISC_SetLimitSwitchParamsBlock(const char * serialNo, MOT_LimitSwitchParameters *limitSwitchParams);
1431
 
1432
        /// <summary> Get the button parameters. </summary>
1433
        /// <param name="serialNo"> The device serial no. </param>
1434
        /// <param name="buttonParams"> Address of the MOT_ButtonParameters parameter to recieve the button parameters. </param>
1435
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1436
        /// <seealso cref="ISC_SetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1437
        /// <seealso cref="ISC_SetButtonParams(char const * serialNo, MOT_ButtonModes buttonMode, int leftButtonPosition, int rightButtonPosition)" />
1438
        /// <seealso cref="ISC_RequestButtonParams(char const * serialNo)" />
1439
        /// <seealso cref="ISC_GetButtonParams(char const * serialNo, MOT_ButtonModes * buttonMode, int * leftButtonPosition, int * rightButtonPosition, short * timeout)" />
1440
        ISC_API short __cdecl ISC_GetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams);
1441
 
1442
        /// <summary> Set the button parameters. </summary>
1443
        /// <param name="serialNo"> The device serial no. </param>
1444
        /// <param name="buttonParams"> Address of the MOT_ButtonParameters parameter containing the new button parameters. </param>
1445
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1446
        /// <seealso cref="ISC_RequestButtonParams(char const * serialNo)" />
1447
        /// <seealso cref="ISC_GetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams)" />
1448
        /// <seealso cref="ISC_GetButtonParams(char const * serialNo, MOT_ButtonModes * buttonMode, int * leftButtonPosition, int * rightButtonPosition, short * timeout)" />
1449
        /// <seealso cref="ISC_SetButtonParams(char const * serialNo, MOT_ButtonModes buttonMode, int leftButtonPosition, int rightButtonPosition)" />
1450
        ISC_API short __cdecl ISC_SetButtonParamsBlock(const char * serialNo, MOT_ButtonParameters *buttonParams);
1451
 
1452
        /// <summary> Get the potentiometer parameters. </summary>
1453
        /// <param name="serialNo"> The device serial no. </param>
1454
        /// <param name="potentiometerSteps"> Address of the MOT_PotentiometerSteps parameter to recieve the potentiometer parameters. </param>
1455
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1456
        /// <seealso cref="ISC_SetPotentiometerParamsBlock(const char * serialNo, MOT_PotentiometerSteps *potentiometerSteps)" />
1457
        /// <seealso cref="ISC_SetPotentiometerParams(char const * serialNo, short index, WORD thresholdDeflection, DWORD velocity)" />
1458
        /// <seealso cref="ISC_RequestPotentiometerParams(char const * serialNo)" />
1459
        /// <seealso cref="ISC_GetPotentiometerParams(char const * serialNo, short index, WORD * thresholdDeflection, DWORD * velocity)" />
1460
        ISC_API short __cdecl ISC_GetPotentiometerParamsBlock(const char * serialNo, MOT_PotentiometerSteps *potentiometerSteps);
1461
 
1462
        /// <summary> Set the potentiometer parameters. </summary>
1463
        /// <param name="serialNo"> The device serial no. </param>
1464
        /// <param name="potentiometerSteps"> Address of the MOT_PotentiometerSteps parameter containing the new potentiometer parameters. </param>
1465
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1466
        /// <seealso cref="ISC_RequestPotentiometerParams(char const * serialNo)" />
1467
        /// <seealso cref="ISC_GetPotentiometerParamsBlock(const char * serialNo, MOT_PotentiometerSteps *potentiometerSteps)" />
1468
        /// <seealso cref="ISC_SetPotentiometerParams(char const * serialNo, short index, WORD thresholdDeflection, DWORD velocity)" />
1469
        /// <seealso cref="ISC_GetPotentiometerParams(char const * serialNo, short index, WORD * thresholdDeflection, DWORD * velocity)" />
1470
        ISC_API short __cdecl ISC_SetPotentiometerParamsBlock(const char * serialNo, MOT_PotentiometerSteps *potentiometerSteps);
1471
 
1472
        /// <summary> Requests the power parameters. </summary>
1473
        /// <param name="serialNo"> The serial no. </param>
1474
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1475
        /// <seealso cref="ISC_GetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams)" />
1476
        /// <seealso cref="ISC_SetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams)" />
1477
        ISC_API short __cdecl ISC_RequestPowerParams(char const * serialNo);
1478
 
1479
        /// <summary> Gets the power parameters for the stepper motor. </summary>
1480
        /// <param name="serialNo"> The device serial no. </param>
1481
        /// <param name="powerParams"> Address of the MOT_PowerParameters parameter to recieve the power parameters. </param>
1482
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1483
        /// <seealso cref="ISC_RequestPowerParams(char const * serialNo)" />
1484
        /// <seealso cref="ISC_SetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams)" />
1485
        ISC_API short __cdecl ISC_GetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams);
1486
 
1487
        /// <summary> Sets the power parameters for the stepper motor. </summary>
1488
        /// <param name="serialNo"> The device serial no. </param>
1489
        /// <param name="powerParams"> Address of the MOT_PowerParameters parameter containing the new power parameters. </param>
1490
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1491
        /// <seealso cref="ISC_RequestPowerParams(char const * serialNo)" />
1492
        /// <seealso cref="ISC_GetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams)" />
1493
        ISC_API short __cdecl ISC_SetPowerParams(const char * serialNo, MOT_PowerParameters *powerParams);
1494
 
1495
        /// <summary> Requests the stepper motor bow index. </summary>
1496
        /// <param name="serialNo"> The serial no. </param>
1497
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1498
        /// <seealso cref="ISC_GetBowIndex(const char * serialNo)" />
1499
        /// <seealso cref="ISC_SetBowIndex(const char * serialNo, short bowIndex)" />
1500
        ISC_API short __cdecl ISC_RequestBowIndex(char const * serialNo);
1501
 
1502
        /// <summary> Gets the stepper motor bow index. </summary>
1503
        /// <param name="serialNo"> The device serial no. </param>
1504
        /// <returns> The bow index. </returns>
1505
        /// <seealso cref="ISC_RequestBowIndex(char const * serialNo)" />
1506
        /// <seealso cref="ISC_SetBowIndex(const char * serialNo, short bowIndex)" />
1507
        ISC_API short __cdecl ISC_GetBowIndex(const char * serialNo);
1508
 
1509
        /// <summary> Sets the stepper motor bow index. </summary>
1510
        /// <param name="serialNo"> The device serial no. </param>
1511
        /// <param name="bowIndex"> The bow index. </param>
1512
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1513
        /// <seealso cref="ISC_RequestBowIndex(char const * serialNo)" />
1514
        /// <seealso cref="ISC_GetBowIndex(const char * serialNo)" />
1515
        ISC_API short __cdecl ISC_SetBowIndex(const char * serialNo, short bowIndex);
1516
 
1517
        /// <summary> Requests, gets or sets trigger switch bits for Cage Rotator only. </summary>
1518
 
1519
        /// <summary> Requests the trigger switch bits. </summary>
1520
        /// <param name="serialNo"> The serial no. </param>
1521
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1522
        /// <seealso cref="BMC_GetTriggerSwitches(const char * serialNo)" />
1523
        /// <seealso cref="BMC_SetTriggerSwitches(char const * serialNo, byte indicatorBits)" />
1524
        ISC_API short __cdecl ISC_RequestTriggerSwitches(char const * serialNo);
1525
 
1526
        /// <summary> Gets the trigger switch bits. </summary>
1527
        /// <param name="serialNo">     The controller serial no. </param>
1528
        /// <returns> 8 bits indicating action on trigger input and events to trigger electronic output. </returns>
1529
        /// <seealso cref="ISC_RequestTriggerSwitches(char const * serialNo)" />
1530
        /// <seealso cref="ISC_SetTriggerSwitches(char const * serialNol, byte indicatorBits)" />
1531
        ISC_API byte __cdecl ISC_GetTriggerSwitches(char const * serialNo);
1532
 
1533
        /// <summary> Sets the trigger switch bits. </summary>
1534
        /// <param name="serialNo">     The controller serial no. </param>
1535
        /// <param name="indicatorBits"> Sets the 8 bits indicating action on trigger input and events to trigger electronic output. </param>
1536
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1537
        /// <seealso cref="ISC_RequestTriggerSwitches(char const * serialNo)" />
1538
        /// <seealso cref="ISC_GetTriggerSwitches(char const * serialNo)" />
1539
        ISC_API short __cdecl ISC_SetTriggerSwitches(char const * serialNo, byte indicatorBits);
1540
 
1541
        /// <summary> Requests the current position. </summary>
1542
        /// <remarks> This needs to be called to get the device to send it's current position.<br />
1543
        ///               NOTE this is called automatically if Polling is enabled for the device using <see cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />. </remarks>
1544
        /// <param name="serialNo"> The device serial no. </param>
1545
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successfully requested. </returns>
1546
    ///                   \include CodeSnippet_move.cpp
1547
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
1548
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1549
        ISC_API short __cdecl ISC_RequestPosition(char const * serialNo);
1550
 
1551
        /// <summary> Request the status bits which identify the current motor state. </summary>
1552
        /// <remarks> This needs to be called to get the device to send it's current status bits.<br />
1553
        ///               NOTE this is called automatically if Polling is enabled for the device using <see cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />. </remarks>
1554
        /// <param name="serialNo">     The device serial no. </param>
1555
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successfully requested. </returns>
1556
        /// <seealso cref="ISC_GetStatusBits(char const * serialNo)" />
1557
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1558
        ISC_API short __cdecl ISC_RequestStatusBits(char const * serialNo);
1559
 
1560
        /// <summary>   Request position and status bits. </summary>
1561
        /// <remarks> This needs to be called to get the device to send it's current status.<br />
1562
        ///               NOTE this is called automatically if Polling is enabled for the device using <see cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />. </remarks>
1563
        /// <param name="serialNo">     The device serial no. </param>
1564
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successfully requested. </returns>
1565
        /// <seealso cref="ISC_RequestPosition(char const * serialNo)" />
1566
        /// <seealso cref="ISC_RequestStatusBits(char const * serialNo)" />
1567
        /// <seealso cref="ISC_GetPosition(char const * serialNo)" />
1568
        /// <seealso cref="ISC_GetStatusBits(char const * serialNo)" />
1569
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1570
        ISC_API short __cdecl ISC_RequestStatus(char const * serialNo);
1571
 
1572
        /// <summary>Get the current status bits. </summary>
1573
        /// <remarks> This returns the latest status bits received from the device.<br />
1574
        ///               To get new status bits, use <see cref="ISC_RequestStatusBits(char const * serialNo)" />
1575
        ///                       or use <see cref="ISC_RequestStatus(char const * serialNo)" />
1576
        ///               or use the polling functions, <see cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />.  </remarks>
1577
        /// <param name="serialNo">     The device serial no. </param>
1578
        /// <returns>   The status bits from the device <list type=table>
1579
        ///                             <item><term>0x00000001</term><term>CW hardware limit switch (0=No contact, 1=Contact).</term></item>
1580
        ///                             <item><term>0x00000002</term><term>CCW hardware limit switch (0=No contact, 1=Contact).</term></item>
1581
        ///                             <item><term>0x00000004</term><term>CW software limit switch (0=No contact, 1=Contact).</term></item>
1582
        ///                             <item><term>0x00000008</term><term>CCW software limit switch (0=No contact, 1=Contact).</term></item>
1583
        ///                             <item><term>0x00000010</term><term>Motor shaft moving clockwise (1=Moving, 0=Stationary).</term></item>
1584
        ///                             <item><term>0x00000020</term><term>Motor shaft moving counterclockwise (1=Moving, 0=Stationary).</term></item>
1585
        ///                             <item><term>0x00000040</term><term>Shaft jogging clockwise (1=Moving, 0=Stationary).</term></item>
1586
        ///                             <item><term>0x00000080</term><term>Shaft jogging counterclockwise (1=Moving, 0=Stationary).</term></item>
1587
        ///                             <item><term>0x00000100</term><term>Motor connected (1=Connected, 0=Not connected).</term></item>
1588
        ///                             <item><term>0x00000200</term><term>Motor homing (1=Homing, 0=Not homing).</term></item>
1589
        ///                             <item><term>0x00000400</term><term>Motor homed (1=Homed, 0=Not homed).</term></item>
1590
        ///                             <item><term>0x00000800</term><term>For Future Use.</term></item>
1591
        ///                             <item><term>0x00001000</term><term>Not applicable.</term></item>
1592
        ///                             <item><term>0x00002000</term><term></term></item>
1593
        ///                             <item><term>...</term><term></term></item>
1594
        ///                             <item><term>0x00080000</term><term></term></item>
1595
        ///                             <item><term>0x00100000</term><term>Digital input 1 state (1=Logic high, 0=Logic low).</term></item>
1596
        ///                             <item><term>0x00200000</term><term>Digital input 2 state (1=Logic high, 0=Logic low).</term></item>
1597
        ///                             <item><term>0x00400000</term><term>Digital input 3 state (1=Logic high, 0=Logic low).</term></item>
1598
        ///                             <item><term>0x00800000</term><term>Digital input 4 state (1=Logic high, 0=Logic low).</term></item>
1599
        ///                             <item><term>0x01000000</term><term>Digital input 5 state (1=Logic high, 0=Logic low).</term></item>
1600
        ///                             <item><term>0x02000000</term><term>Digital input 6 state (1=Logic high, 0=Logic low).</term></item>
1601
        ///                             <item><term>0x04000000</term><term>For Future Use.</term></item>
1602
        ///                             <item><term>0x08000000</term><term>For Future Use.</term></item>
1603
        ///                             <item><term>0x10000000</term><term>For Future Use.</term></item>
1604
        ///                             <item><term>0x20000000</term><term>Active (1=Active, 0=Not active).</term></item>
1605
        ///                             <item><term>0x40000000</term><term>For Future Use.</term></item>
1606
        ///                             <item><term>0x80000000</term><term>Channel enabled (1=Enabled, 0=Disabled).</term></item>
1607
        ///               </list> <remarks> Bits 21 to 26 (Digital Input States) are only applicable if the associated digital input is fitted to your controller - see the relevant handbook for more details. </remarks> </returns>
1608
        /// <seealso cref="ISC_RequestStatusBits(char const * serialNo)" />
1609
        /// <seealso cref="ISC_RequestStatus(char const * serialNo)" />
1610
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1611
        ISC_API DWORD __cdecl ISC_GetStatusBits(char const * serialNo);
1612
 
1613
        /// <summary> Starts the internal polling loop which continuously requests position and status. </summary>
1614
        /// <param name="serialNo"> The device serial no. </param>
1615
        /// <param name="milliseconds">The milliseconds polling rate. </param>
1616
        /// <returns> <c>true</c> if successful, false if not. </returns>
1617
        /// <seealso cref="ISC_StopPolling(char const * serialNo)" />
1618
        /// <seealso cref="ISC_PollingDuration(char const * serialNo)" />
1619
        /// <seealso cref="ISC_RequestStatusBits(char const * serialNo)" />
1620
        /// <seealso cref="ISC_RequestPosition(char const * serialNo)" />
1621
        /// \include CodeSnippet_connection1.cpp
1622
        ISC_API bool __cdecl ISC_StartPolling(char const * serialNo, int milliseconds);
1623
 
1624
        /// <summary> Gets the polling loop duration. </summary>
1625
        /// <param name="serialNo"> The device serial no. </param>
1626
        /// <returns> The time between polls in milliseconds or 0 if polling is not active. </returns>
1627
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1628
        /// <seealso cref="ISC_StopPolling(char const * serialNo)" />
1629
        /// \include CodeSnippet_connection1.cpp
1630
        ISC_API long __cdecl ISC_PollingDuration(char const * serialNo);
1631
 
1632
        /// <summary> Stops the internal polling loop. </summary>
1633
        /// <param name="serialNo"> The device serial no. </param>
1634
        /// <seealso cref="ISC_StartPolling(char const * serialNo, int milliseconds)" />
1635
        /// <seealso cref="ISC_PollingDuration(char const * serialNo)" />
1636
        /// \include CodeSnippet_connection1.cpp
1637
        ISC_API void __cdecl ISC_StopPolling(char const * serialNo);
1638
 
1639
        /// <summary> Gets the time in milliseconds since tha last message was received from the device. </summary>
1640
        /// <remarks> This can be used to determine whether communications with the device is still good</remarks>
1641
        /// <param name="serialNo"> The device serial no. </param>
1642
        /// <param name="lastUpdateTimeMS"> The time since the last message was received in milliseconds. </param>
1643
        /// <returns> True if monitoring is enabled otherwize False. </returns>
1644
        /// <seealso cref="ISC_EnableLastMsgTimer(char const * serialNo, bool enable, __int32 lastMsgTimeout )" />
1645
        /// <seealso cref="ISC_HasLastMsgTimerOverrun(char const * serialNo)" />
1646
        /// \include CodeSnippet_connectionMonitoring.cpp
1647
        ISC_API bool __cdecl ISC_TimeSinceLastMsgReceived(char const * serialNo, __int64 *lastUpdateTimeMS );  //***
1648
 
1649
        /// <summary> Enables the last message monitoring timer. </summary>
1650
        /// <remarks> This can be used to determine whether communications with the device is still good</remarks>
1651
        /// <param name="serialNo"> The device serial no. </param>
1652
        /// <param name="enable"> True to enable monitoring otherwise False to disable. </param>
1653
        /// <param name="lastMsgTimeout"> The last message error timeout in ms. 0 to disable. </param>
1654
        /// <seealso cref="ISC_TimeSinceLastMsgReceived(char const * serialNo, __int64 &lastUpdateTimeMS )" />
1655
        /// <seealso cref="ISC_HasLastMsgTimerOverrun(char const * serialNo)" />
1656
        /// \include CodeSnippet_connectionMonitoring.cpp
1657
        ISC_API void __cdecl ISC_EnableLastMsgTimer(char const * serialNo, bool enable, __int32 lastMsgTimeout );
1658
 
1659
        /// <summary> Queries if the time since the last message has exceeded the lastMsgTimeout set by <see cref="ISC_EnableLastMsgTimer(char const * serialNo, bool enable, __int32 lastMsgTimeout )"/>. </summary>
1660
        /// <remarks> This can be used to determine whether communications with the device is still good</remarks>
1661
        /// <param name="serialNo"> The device serial no. </param>
1662
        /// <returns> True if last message timer has elapsed, False if monitoring is not enabled or if time of last message received is less than lastMsgTimeout. </returns>
1663
        /// <seealso cref="ISC_TimeSinceLastMsgReceived(char const * serialNo, __int64 &lastUpdateTimeMS )" />
1664
        /// <seealso cref="ISC_EnableLastMsgTimer(char const * serialNo, bool enable, __int32 lastMsgTimeout )" />
1665
        /// \include CodeSnippet_connectionMonitoring.cpp
1666
        ISC_API bool __cdecl ISC_HasLastMsgTimerOverrun(char const * serialNo);
1667
 
1668
        /// <summary> Requests that all settings are download from device. </summary>
1669
        /// <remarks> This function requests that the device upload all it's settings to the DLL.</remarks>
1670
        /// <param name="serialNo">     The device serial no. </param>
1671
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successfully requested. </returns>
1672
        ISC_API short __cdecl ISC_RequestSettings(char const * serialNo);
1673
 
1674
        /// <summary> Gets the LTS Motor minimum stage position. </summary>
1675
        /// <param name="serialNo">     The device serial no. </param>
1676
        /// <returns> The Minimum position in \ref DeviceUnits_page. </returns>
1677
        /// <seealso cref="ISC_SetStageAxisLimits(char const * serialNo, int minPosition, int maxPosition)" />
1678
        /// <seealso cref="ISC_GetStageAxisMaxPos(char const * serialNo)" />
1679
        ISC_API int __cdecl ISC_GetStageAxisMinPos(char const * serialNo);
1680
 
1681
        /// <summary> Gets the LTS Motor maximum stage position. </summary>
1682
        /// <param name="serialNo">     The device serial no. </param>
1683
        /// <returns> The Maximum position in \ref DeviceUnits_page. </returns>
1684
        /// <seealso cref="ISC_SetStageAxisLimits(char const * serialNo, int minPosition, int maxPosition)" />
1685
        /// <seealso cref="ISC_GetStageAxisMinPos(char const * serialNo)" />
1686
        ISC_API int __cdecl ISC_GetStageAxisMaxPos(char const * serialNo);
1687
 
1688
        /// <summary> Sets the stage axis position limits. </summary>
1689
        /// <remarks> This function sets the limits of travel for the stage.<Br />
1690
        ///               The implementation will depend upon the nature of the travel being requested and the Soft Limits mode which can be obtained using <see cref="ISC_GetSoftLimitMode(char const * serialNo)" />. <Br />
1691
        ///               <B>MoveAbsolute</B>, <B>MoveRelative</B> and <B>Jog (Single Step)</B> will obey the Soft Limit Mode.
1692
        ///               If the target position is outside the limits then either a full move, a partial move or no move will occur.<Br />
1693
        ///               <B>Jog (Continuous)</B> and <B>Move Continuous</B> will attempt to obey the limits, but as these moves rely on position information feedback from the device to detect if the travel is exceeding the limits, the device will stop, but it is likely to overshoot the limit, especially at high velocity.<Br />
1694
        ///               <B>Home</B> will always ignore the software limits.</remarks>
1695
        /// <param name="serialNo">     The device serial no. </param>
1696
        /// <param name="minPosition"> The minimum position in \ref DeviceUnits_page. </param>
1697
        /// <param name="maxPosition"> The maximum position in \ref DeviceUnits_page. </param>
1698
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1699
        /// <seealso cref="ISC_GetStageAxisMinPos(char const * serialNo)" />
1700
        /// <seealso cref="ISC_GetStageAxisMaxPos(char const * serialNo)" />
1701
        ISC_API short __cdecl ISC_SetStageAxisLimits(char const * serialNo, int minPosition, int maxPosition);
1702
 
1703
        /// <summary> Set the motor travel mode. </summary>
1704
        /// <param name="serialNo"> The device serial no. </param>
1705
        /// <param name="travelMode"> The travel mode.
1706
        ///                                               <list type=table>
1707
        ///                                                             <item><term>Linear motion</term><term>1</term></item>
1708
        ///                                                             <item><term>Rotational motion</term><term>2</term></item>
1709
        ///                                               </list> </param>
1710
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1711
        /// <seealso cref="ISC_GetMotorTravelMode(char const * serialNo)" />
1712
        ISC_API short __cdecl ISC_SetMotorTravelMode(char const * serialNo, MOT_TravelModes travelMode);
1713
 
1714
        /// <summary> Get the motor travel mode. </summary>
1715
        /// <param name="serialNo"> The device serial no. </param>
1716
        /// <returns> The travel mode.
1717
        ///                                               <list type=table>
1718
        ///                                                             <item><term>Linear motion</term><term>1</term></item>
1719
        ///                                                             <item><term>Rotational motion</term><term>2</term></item>
1720
        ///                                               </list> </returns>
1721
        /// <seealso cref="ISC_SetMotorTravelMode(char const * serialNo, int travelMode)" />
1722
        ISC_API MOT_TravelModes __cdecl ISC_GetMotorTravelMode(char const * serialNo);
1723
 
1724
        /// \deprecated
1725
        /// <summary> Sets the motor stage parameters. </summary>
1726
        /// <remarks> superceded by <see cref="ISC_SetMotorParamsExt(char const * serialNo, double stepsPerRevolution, double gearboxRatio, double pitch)"/> </remarks>
1727
        /// <remarks> These parameters, when combined define the stage motion in terms of \ref RealWorldUnits_page. (mm or degrees)<br />
1728
        ///               The real world unit is defined from stepsPerRev * gearBoxRatio / pitch.</remarks>
1729
        /// <param name="serialNo"> The device serial no. </param>
1730
        /// <param name="stepsPerRev">  The steps per revolution. </param>
1731
        /// <param name="gearBoxRatio"> The gear box ratio. </param>
1732
        /// <param name="pitch">            The pitch. </param>
1733
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1734
        /// <seealso cref="ISC_GetMotorParams(char const * serialNo, long *stepsPerRev, long *gearBoxRatio, float *pitch)" />
1735
        ISC_API short __cdecl ISC_SetMotorParams(char const * serialNo, long stepsPerRev, long gearBoxRatio, float pitch);
1736
 
1737
        /// \deprecated
1738
        /// <summary> Gets the motor stage parameters. </summary>
1739
        /// <remarks> superceded by <see cref="ISC_GetMotorParamsExt(char const * serialNo, double *stepsPerRevolution, double *gearboxRatio, double *pitch)"/> </remarks>
1740
        /// <remarks> These parameters, when combined define the stage motion in terms of \ref RealWorldUnits_page. (mm or degrees)<br />
1741
        ///               The real world unit is defined from stepsPerRev * gearBoxRatio / pitch.</remarks>
1742
        /// <param name="serialNo"> The device serial no. </param>
1743
        /// <param name="stepsPerRev">  Address of the parameter to receive the steps per revolution. </param>
1744
        /// <param name="gearBoxRatio"> Address of the parameter to receive the gear box ratio. </param>
1745
        /// <param name="pitch">            Address of the parameter to receive the pitch. </param>
1746
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1747
        /// <seealso cref="ISC_SetMotorParams(char const * serialNo, long stepsPerRev, long gearBoxRatio, float pitch)" />
1748
        ISC_API short __cdecl ISC_GetMotorParams(char const * serialNo, long *stepsPerRev, long *gearBoxRatio, float *pitch);
1749
 
1750
        /// <summary> Sets the motor stage parameters. </summary>
1751
        /// <remarks> These parameters, when combined define the stage motion in terms of \ref RealWorldUnits_page. (mm or degrees)<br />
1752
        ///               The real world unit is defined from stepsPerRev * gearBoxRatio / pitch.</remarks>
1753
        /// <param name="serialNo"> The device serial no. </param>
1754
        /// <param name="stepsPerRev">  The steps per revolution. </param>
1755
        /// <param name="gearBoxRatio"> The gear box ratio. </param>
1756
        /// <param name="pitch">            The pitch. </param>
1757
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1758
        /// <seealso cref="ISC_GetMotorParamsExt(char const * serialNo, long *stepsPerRev, long *gearBoxRatio, float *pitch)" />
1759
        ISC_API short __cdecl ISC_SetMotorParamsExt(char const * serialNo, double stepsPerRev, double gearBoxRatio, double pitch);
1760
 
1761
        /// <summary> Gets the motor stage parameters. </summary>
1762
        /// <remarks> These parameters, when combined define the stage motion in terms of \ref RealWorldUnits_page. (mm or degrees)<br />
1763
        ///               The real world unit is defined from stepsPerRev * gearBoxRatio / pitch.</remarks>
1764
        /// <param name="serialNo"> The device serial no. </param>
1765
        /// <param name="stepsPerRev">  Address of the parameter to receive the steps per revolution. </param>
1766
        /// <param name="gearBoxRatio"> Address of the parameter to receive the gear box ratio. </param>
1767
        /// <param name="pitch">            Address of the parameter to receive the pitch. </param>
1768
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1769
        /// <seealso cref="ISC_SetMotorParamsExt(char const * serialNo, long stepsPerRev, long gearBoxRatio, float pitch)" />
1770
        ISC_API short __cdecl ISC_GetMotorParamsExt(char const * serialNo, double *stepsPerRev, double *gearBoxRatio, double *pitch);
1771
 
1772
        /// \deprecated
1773
        /// <summary> Sets the absolute maximum velocity and acceleration constants for the current stage. </summary>
1774
        /// <remarks> These parameters are maintained for user info only and do not reflect the current stage parameters.<Br />
1775
    ///           The absolute maximum velocity and acceleration constants are initialized from the stage settings..</remarks>
1776
        /// <param name="serialNo"> The device serial no. </param>
1777
        /// <param name="maxVelocity">  The absolute maximum velocity in real world units. </param>
1778
        /// <param name="maxAcceleration"> The absolute maximum acceleration in real world units. </param>
1779
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1780
        /// <seealso cref="ISC_GetMotorVelocityLimits(char const * serialNo, double *maxVelocity, double *maxAcceleration)" />
1781
        ISC_API short __cdecl ISC_SetMotorVelocityLimits(char const * serialNo, double maxVelocity, double maxAcceleration);
1782
 
1783
        /// <summary> Gets the absolute maximum velocity and acceleration constants for the current stage. </summary>
1784
        /// <remarks> These parameters are maintained for user info only and do not reflect the current stage parameters.<Br />
1785
    ///           The absolute maximum velocity and acceleration constants are initialized from the stage settings..</remarks>
1786
        /// <param name="serialNo"> The device serial no. </param>
1787
        /// <param name="maxVelocity">  Address of the parameter to receive the absolute maximum velocity in real world units. </param>
1788
        /// <param name="maxAcceleration"> Address of the parameter to receive the absolute maximum acceleration in real world units. </param>
1789
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1790
        /// <seealso cref="ISC_SetMotorVelocityLimits(char const * serialNo, double maxVelocity, double maxAcceleration)" />
1791
        ISC_API short __cdecl ISC_GetMotorVelocityLimits(char const * serialNo, double *maxVelocity, double *maxAcceleration);
1792
 
1793
        /// <summary>   Reset the rotation modes for a rotational device. </summary>
1794
        /// <param name="serialNo"> The device serial no. </param>
1795
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1796
        /// <seealso cref="ISC_SetRotationModes(char const * serialNo, MOT_MovementModes mode, MOT_MovementDirections direction)" />
1797
        ISC_API short __cdecl ISC_ResetRotationModes(char const * serialNo);
1798
 
1799
        /// <summary>   Set the rotation modes for a rotational device. </summary>
1800
        /// <param name="serialNo"> The device serial no. </param>
1801
        /// <param name="mode"> The rotation mode.<list type=table>
1802
        ///                                                             <item><term>Linear Range (Fixed Limit, cannot rotate)</term><term>0</term></item>
1803
        ///                                                             <item><term>RotationalUnlimited (Ranges between +/- Infinity)</term><term>1</term></item>
1804
        ///                                                             <item><term>Rotational Wrapping (Ranges between 0 to 360 with wrapping)</term><term>2</term></item>
1805
        ///                                               </list> </param>
1806
        /// <param name="direction"> The rotation direction when moving between two angles.<list type=table>
1807
        ///                                                             <item><term>Quickets (Always takes the shortedt path)</term><term>0</term></item>
1808
        ///                                                             <item><term>Forwards (Always moves forwards)</term><term>1</term></item>
1809
        ///                                                             <item><term>Backwards (Always moves backwards)</term><term>2</term></item>
1810
        ///                                               </list> </param>
1811
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1812
        /// <seealso cref="ISC_ResetRotationModes(char const * serialNo)" />
1813
        ISC_API short __cdecl ISC_SetRotationModes(char const * serialNo, MOT_MovementModes mode, MOT_MovementDirections direction);
1814
 
1815
        /// \deprecated
1816
        /// <summary> Sets the absolute minimum and maximum travel range constants for the current stage. </summary>
1817
        /// <remarks> These parameters are maintained for user info only and do not reflect the current travel range of the stage.<Br />
1818
    ///           The absolute minimum and maximum travel range constants are initialized from the stage settings. These values can be adjusted to relative positions based upon the Home Offset.<Br />
1819
    ///           <Br />
1820
    ///           To set the working travel range of the stage use the function <see cref="ISC_SetStageAxisLimits(char const * serialNo, int minPosition, int maxPosition)" /><Br />
1821
    ///           Use the following to convert between real worl and device units.<Br />
1822
    ///           <see cref="ISC_GetRealValueFromDeviceUnit(char const * serialNo, int device_unit, double *real_unit, int unitType)" /><Br />
1823
    ///           <see cref="ISC_GetDeviceUnitFromRealValue(char const * serialNo, double real_unit, int *device_unit, int unitType)" /> </remarks>
1824
        /// <param name="serialNo"> The device serial no. </param>
1825
        /// <param name="minPosition">  The absolute minimum position in real world units. </param>
1826
        /// <param name="maxPosition"> The absolute maximum position in real world units. </param>
1827
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1828
        /// <seealso cref="ISC_GetMotorTravelLimits(char const * serialNo, double *minPosition, double *maxPosition)" />
1829
        ISC_API short __cdecl ISC_SetMotorTravelLimits(char const * serialNo, double minPosition, double maxPosition);
1830
 
1831
        /// <summary> Gets the absolute minimum and maximum travel range constants for the current stage. </summary>
1832
        /// <remarks> These parameters are maintained for user info only and do not reflect the current travel range of the stage.<Br />
1833
    ///           The absolute minimum and maximum travel range constants are initialized from the stage settings. These values can be adjusted to relative positions based upon the Home Offset.</remarks>
1834
        /// <param name="serialNo"> The device serial no. </param>
1835
        /// <param name="minPosition">  Address of the parameter to receive the absolute minimum position in real world units. </param>
1836
        /// <param name="maxPosition"> Address of the parameter to receive the absolute maximum position in real world units. </param>
1837
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1838
        /// <seealso cref="ISC_SetMotorTravelLimits(char const * serialNo, double minPosition, double maxPosition)" />
1839
        ISC_API short __cdecl ISC_GetMotorTravelLimits(char const * serialNo, double *minPosition, double *maxPosition);
1840
 
1841
        /// <summary>   Converts a device unit to a real world unit. </summary>
1842
        /// <param name="serialNo">     The serial no. </param>
1843
        /// <param name="device_unit">  The device unit. </param>
1844
        /// <param name="real_unit">    The real unit. </param>
1845
        /// <param name="unitType">     Type of the unit.<list type=table>
1846
        ///                                                             <item><term>Distance</term><term>0</term></item>
1847
        ///                                                             <item><term>Velocity</term><term>1</term></item>
1848
        ///                                                             <item><term>Acceleration</term><term>2</term></item>
1849
        ///                                               </list> </param>
1850
        /// <returns> The error code (see \ref C_DLL_ERRORCODES_page "Error Codes") or zero if successful. </returns>
1851
        /// <seealso cref="ISC_GetDeviceUnitFromRealValue(char const * serialNo, double real_unit, int *device_unit, int unitType)" />
1852
        ISC_API short __cdecl ISC_GetRealValueFromDeviceUnit(char const * serialNo, int device_unit, double *real_unit, int unitType);
1853
 
1854
        /// <summary>   Converts a device unit to a real world unit. </summary>
1855
        /// <param name="serialNo">     The serial no. </param>
1856
        /// <param name="device_unit">  The device unit. </param>
1857
        /// <param name="real_unit">    The real unit. </param>
1858
        /// <param name="unitType">     Type of the unit.<list type=table>
1859
        ///                                                             <item><term>Distance</term><term>0</term></item>
1860
        ///                                                             <item><term>Velocity</term><term>1</term></item>
1861
        ///                                                             <item><term>Acceleration</term><term>2</term></item>
1862
        ///                                               </list> </param>
1863
        /// <returns>   Success. </returns>
1864
        /// <seealso cref="ISC_GetRealValueFromDeviceUnit(char const * serialNo, int device_unit, double *real_unit, int unitType)" />
1865
        ISC_API short __cdecl ISC_GetDeviceUnitFromRealValue(char const * serialNo, double real_unit, int *device_unit, int unitType);
1866
}
1867
 
1868
/** @} */ // IntegratedStepperMotors