/*--------------------------------------------------------------------------- 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