quDIS
qudis.h
Go to the documentation of this file.
1 /*****************************************************************************
2  *
3  * Project: quDIS Control Library
4  *
5  * Filename: qudis.h
6  *
7  * Author: NHands GmbH & Co KG
8  */
9 /*****************************************************************************/
28 /*****************************************************************************/
36 /******************************************************************/
37 /* $Id: qudis.h,v 1.13 2021/04/09 16:52:52 trurl Exp $ */
38 
39 #ifndef __QUDIS_H__
40 #define __QUDIS_H__
41 
47 #ifdef __cplusplus
48 #define EXTC extern "C"
49 #else
50 #define EXTC extern
51 #endif
52 
53 #ifdef unix
54 #define QDS_API EXTC
55 #define WINCC
56 #else
57 #define WINCC __stdcall
58 #ifdef QDS_EXPORTS
59 #define QDS_API EXTC __declspec(dllexport)
60 #else
61 #define QDS_API EXTC __declspec(dllimport)
62 #endif
63 #endif
64 
71 #define QDS_AXES_CNT 3
80 #define QDS_Ok 0
81 #define QDS_Error -1
82 #define QDS_Timeout 1
83 #define QDS_NotConnected 2
84 #define QDS_DriverError 3
85 #define QDS_DeviceLocked 7
86 #define QDS_Unknown 8
87 #define QDS_NoDevice 9
88 #define QDS_NoAxis 10
89 #define QDS_ParamOutOfRg 11
100 #define QDS_FeatureAbsolute 0x01
104 typedef int bln32;
109 typedef enum { IfNone = 0x00,
110  IfUsb3 = 0x10,
111  IfTcp = 0x02,
112  IfAll = 0x12
113 } QDS_InterfaceType;
114 
115 
118 typedef enum { LcOk = 0x00,
119  LcFail = 0x01,
120  LcCalib = 0x02
121 } QDS_LCtlState;
122 
123 
126 typedef enum { MrkOff = 0x00,
127  Mrk1Cnt = 0x01,
128  MrkNone = 0x02
129 } QDS_MrkMode;
130 
131 
134 typedef struct {
135  double contrast;
136  double reserved1;
137  double reserved2;
138  double reserved3;
139 } QDS_QMeasure;
140 
141 
175 typedef void (* QDS_PositionCallback) ( unsigned int devNo,
176  unsigned int length,
177  unsigned int index,
178  const double * const positions[QDS_AXES_CNT],
179  const Int32 * const markers[QDS_AXES_CNT] );
180 
181 
197  unsigned int * devCount );
198 
199 
216 QDS_API int WINCC QDS_getDeviceInfo( unsigned int devNo,
217  int * id,
218  char * serialNo,
219  char * address );
220 
221 
240 QDS_API int WINCC QDS_registerExternalIp( const char * hostname );
241 
242 
250 QDS_API int WINCC QDS_connect( unsigned int devNo );
251 
252 
259 QDS_API int WINCC QDS_disconnect( unsigned int devNo );
260 
261 
271 QDS_API int WINCC QDS_getDeviceConfig( unsigned int devNo,
272  unsigned int * axisCount,
273  int * features );
274 
275 
288 QDS_API int WINCC QDS_getLambdaControlState( unsigned int devNo,
289  QDS_LCtlState * state );
290 
291 
303 QDS_API int WINCC QDS_setSampleTime( unsigned int devNo,
304  unsigned int lbSampleTm );
305 
306 
315 QDS_API int WINCC QDS_getSampleTime( unsigned int devNo,
316  unsigned int * lbSampleTm );
317 
318 
326 QDS_API int WINCC QDS_resetRelPosition( unsigned int devNo,
327  unsigned int axisNo );
328 
329 
343 QDS_API int WINCC QDS_getPositions( unsigned int devNo,
344  double * positionsRel,
345  double * positionsAbs );
346 
347 
358 QDS_API int WINCC QDS_estimateSignalQuality( unsigned int devNo,
359  unsigned int axisNo,
360  QDS_QMeasure * qData );
361 
362 
376 QDS_API int WINCC QDS_setPositionCallback( unsigned int devNo,
377  QDS_PositionCallback cbRel,
378  QDS_PositionCallback cbAbs );
379 
380 
381 
394 QDS_API int WINCC QDS_enableMarkers( unsigned int devNo,
395  QDS_MrkMode mode,
396  unsigned int timeout );
397 
398 
407 QDS_API int WINCC QDS_resetMarkerCounter( unsigned int devNo );
408 
409 
431 QDS_API int WINCC QDS_setHsslParams( unsigned int devNo,
432  unsigned int axisNo,
433  bln32 enable,
434  bln32 useLvds,
435  unsigned int clock,
436  unsigned int gap,
437  unsigned int bits,
438  unsigned int lbResol,
439  unsigned int lbAvgTime );
440 
441 
460 QDS_API int WINCC QDS_setQuadratureParams( unsigned int devNo,
461  unsigned int axisNo,
462  bln32 enable,
463  bln32 zeroOnReset,
464  unsigned int resolution,
465  unsigned int clock,
466  unsigned int lbAvgTime );
467 
482 QDS_API int WINCC QDS_enableAngularMode( unsigned int devNo,
483  bln32 enable,
484  unsigned int base1_2,
485  unsigned int base1_3 );
486 
487 #endif
488 
QDS_LCtlState
Laser wavelength control status.
Definition: qudis.h:118
QDS_API int WINCC QDS_resetRelPosition(unsigned int devNo, unsigned int axisNo)
Reset relative position.
QDS_InterfaceType
Interface types.
Definition: qudis.h:109
QDS_API int WINCC QDS_setQuadratureParams(unsigned int devNo, unsigned int axisNo, bln32 enable, bln32 zeroOnReset, unsigned int resolution, unsigned int clock, unsigned int lbAvgTime)
Set quadrature parameters.
#define QDS_AXES_CNT
Number of axes.
Definition: qudis.h:71
QDS_API int WINCC QDS_getDeviceInfo(unsigned int devNo, int *id, char *serialNo, char *address)
Device information.
double reserved2
Reserved for future use.
Definition: qudis.h:137
QDS_MrkMode
Marker modes.
Definition: qudis.h:126
QDS_API int WINCC QDS_setHsslParams(unsigned int devNo, unsigned int axisNo, bln32 enable, bln32 useLvds, unsigned int clock, unsigned int gap, unsigned int bits, unsigned int lbResol, unsigned int lbAvgTime)
Set HSSL parameters.
QDS_API int WINCC QDS_setSampleTime(unsigned int devNo, unsigned int lbSampleTm)
Set sample time.
QDS_API int WINCC QDS_discover(QDS_InterfaceType ifaces, unsigned int *devCount)
Discover devices.
Wavelength control failed.
Definition: qudis.h:119
Marker feature off.
Definition: qudis.h:126
QDS_API int WINCC QDS_estimateSignalQuality(unsigned int devNo, unsigned int axisNo, QDS_QMeasure *qData)
Estimate signal quality.
void(* QDS_PositionCallback)(unsigned int devNo, unsigned int length, unsigned int index, const double *const positions[QDS_AXES_CNT], const Int32 *const markers[QDS_AXES_CNT])
Position callback function.
Definition: qudis.h:175
double contrast
Interferogram contrast in % of optimum.
Definition: qudis.h:135
double reserved1
Reserved for future use.
Definition: qudis.h:136
QDS_API int WINCC QDS_getSampleTime(unsigned int devNo, unsigned int *lbSampleTm)
Read back sample time.
QDS_API int WINCC QDS_enableMarkers(unsigned int devNo, QDS_MrkMode mode, unsigned int timeout)
Enable marker function.
double reserved3
Reserved for future use.
Definition: qudis.h:138
QDS_API int WINCC QDS_getDeviceConfig(unsigned int devNo, unsigned int *axisCount, int *features)
Read device configuration.
int bln32
Boolean; to avoid troubles with incomplete C99 implementations.
Definition: qudis.h:104
QDS_API int WINCC QDS_disconnect(unsigned int devNo)
Disconnect device.
QDS_API int WINCC QDS_connect(unsigned int devNo)
Connect device.
One single marker input, with counter.
Definition: qudis.h:127
QDS_API int WINCC QDS_getLambdaControlState(unsigned int devNo, QDS_LCtlState *state)
Get wavelength control status.
Temperature calibration is running.
Definition: qudis.h:120
QDS_API int WINCC QDS_getPositions(unsigned int devNo, double *positionsRel, double *positionsAbs)
Read positions.
#define QDS_API
For external use of this header.
Definition: qudis.h:61
QDS_API int WINCC QDS_enableAngularMode(unsigned int devNo, bln32 enable, unsigned int base1_2, unsigned int base1_3)
Enable Angular Measurement.
QDS_API int WINCC QDS_resetMarkerCounter(unsigned int devNo)
Reset marker counter.
QDS_API int WINCC QDS_setPositionCallback(unsigned int devNo, QDS_PositionCallback cbRel, QDS_PositionCallback cbAbs)
Register callback function.
#define WINCC
Calling convention for Windows.
Definition: qudis.h:57
Wavelength under control.
Definition: qudis.h:118
Signal quality measures.
Definition: qudis.h:134
Reserved for future marker modes.
Definition: qudis.h:128
QDS_API int WINCC QDS_registerExternalIp(const char *hostname)
Register IP device in external Network.