Files
sics/motor.h
cvs 0f4e959e22 - New batch file management module
- New oscillator module
- Bug fixes


SKIPPED:
	psi/buffer.c
	psi/el734hp.c
	psi/el737hpdriv.c
	psi/make_gen
	psi/nextrics.c
	psi/nxamor.c
	psi/pimotor.c
	psi/polterwrite.c
	psi/psi.c
	psi/swmotor2.c
	psi/tasscan.c
	psi/tricssupport.c
	psi/tricssupport.h
	psi/tecs/make_gen
	psi/utils/ecb_load_new/ecb_load.c
	psi/utils/ecb_load_new/ecb_load.h
	psi/utils/ecb_load_new/ecbdriv_els.c
	psi/utils/ecb_load_new/gpib_els.c
	psi/utils/ecb_load_new/makefile
	psi/utils/ecb_load_new/makefile_EGPIB
	psi/utils/ecb_load_new/makefile_GPIB
2004-11-17 10:50:15 +00:00

64 lines
2.4 KiB
C

/*--------------------------------------------------------------------------
SICS needs to run motors. This is where this happens.
Mark Koennecke, November 1996
copyright: see implementation file
----------------------------------------------------------------------------*/
#ifndef SICSMOTOR
#define SICSMOTOR
#include "Scommon.h"
#include "obpar.h"
#include "modriv.h"
#include "obdes.h"
#include "interface.h"
typedef struct __Motor {
pObjectDescriptor pDescriptor;
ObPar *ParArray;
pIDrivable pDrivInt;
pICallBack pCall;
char *drivername;
char *name;
MotorDriver *pDriver;
float fTarget;
float fPosition;
long endScriptID;
int posCount; /* counter for calling the
motor callback */
int retryCount; /* for retries in status */
int posFaultCount;
} Motor;
typedef Motor *pMotor;
/*-------------------------------------------------------------------------*/
/* parameter management */
int MotorGetPar(pMotor self, char *name, float *fVal);
int MotorSetPar(pMotor self, SConnection *pCon, char *name, float fVal);
/* driving */
long MotorRun(void *self, SConnection *pCon, float fNew);
int MotorCheckBoundary(pMotor self, float fVal, float *fHard,
char *error, int iErrLen);
int MotorCheckPosition(void *self, SConnection *pCon);
/* Where are we ? */
int MotorGetSoftPosition(pMotor self,SConnection *pCon, float *fVal);
int MotorGetHardPosition(pMotor self,SConnection *pCon, float *fVal);
float MotorHardToSoftPosition(pMotor self, float fHard);
/* creation */
int MotorCreate(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
pMotor MotorInit(char *drivername,char *name, MotorDriver *pDriv);
void MotorKill(void *self);
/* interface to interpreter */
int MotorAction(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
pMotor FindMotor(SicsInterp *pSics, char *name);
#endif