From d02634ff13051d21e1198d08cd31cd30494a2991 Mon Sep 17 00:00:00 2001 From: Jing Chen Date: Fri, 9 Nov 2012 14:12:31 +1100 Subject: [PATCH] init r3787 | jgn | 2012-11-09 14:12:31 +1100 (Fri, 09 Nov 2012) | 1 line --- site_ansto/jgn-tclmotdriv.h | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 site_ansto/jgn-tclmotdriv.h diff --git a/site_ansto/jgn-tclmotdriv.h b/site_ansto/jgn-tclmotdriv.h new file mode 100644 index 00000000..5fe77260 --- /dev/null +++ b/site_ansto/jgn-tclmotdriv.h @@ -0,0 +1,50 @@ +/*--------------------------------------------------------------------------- + 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]; + float speed; /**< physical units per second */ + float accel; /**< physical units per second^2 */ + float decel; /**< physical units per second^2 */ + char long_name[256]; /**< long name of motor */ + char units[256]; /**< physical units for axis */ + + } TCLDriv; + +MotorDriver *CreateTclMotDriv(SConnection *pCon, int argc, char *argv[]); + +#endif