43 lines
1.4 KiB
C
43 lines
1.4 KiB
C
/*---------------------------------------------------------------------------
|
|
This is a motor driver which is implemented in Tcl. This means
|
|
this code is only a wrapper which calls Tcl functions to do the
|
|
actual work.
|
|
|
|
copyright: see file COPYRIGHT
|
|
|
|
Mark Koennecke, December 2005
|
|
--------------------------------------------------------------------------*/
|
|
#ifndef TCLMOTDRIV
|
|
#define TCLMOTDRIV
|
|
#include "stringdict.h"
|
|
|
|
typedef struct ___TclDriv {
|
|
/* general motor driver interface
|
|
fields. REQUIRED!
|
|
*/
|
|
float fUpper; /* upper limit */
|
|
float fLower; /* lower limit */
|
|
char *name;
|
|
int (*GetPosition) (void *self, float *fPos);
|
|
int (*RunTo) (void *self, float fNewVal);
|
|
int (*GetStatus) (void *self);
|
|
void (*GetError) (void *self, int *iCode, char *buffer, int iBufLen);
|
|
int (*TryAndFixIt) (void *self, int iError, float fNew);
|
|
int (*Halt) (void *self);
|
|
int (*GetDriverPar) (void *self, char *name, float *value);
|
|
int (*SetDriverPar) (void *self, SConnection * pCon,
|
|
char *name, float newValue);
|
|
void (*ListDriverPar) (void *self, char *motorName, SConnection * pCon);
|
|
void (*KillPrivate) (void *self);
|
|
|
|
/* Tcl specific fields */
|
|
pStringDict mappings;
|
|
int errorCode;
|
|
char tclError[1024];
|
|
char motName[132];
|
|
} TCLDriv;
|
|
|
|
MotorDriver *CreateTclMotDriv(SConnection * pCon, int argc, char *argv[]);
|
|
|
|
#endif
|