/*---------------------------------------------------------------------- SICS interface to the triple axis spectrometer calculation module. copyright: see file COPYRIGHT Mark Koennecke, April-May 2005 ----------------------------------------------------------------------*/ #ifndef TASUB #define TASUB #include #include "tasublib.h" #include "cell.h" #include "motor.h" /*------------------- defines for tasMode -----------------------------------*/ #define KICONST 1 #define KFCONST 2 /*-----------------------------------------------------------------------------*/ typedef struct{ pObjectDescriptor pDes; tasMachine machine; int reflectionList; lattice cell; tasQEPosition target; tasQEPosition current; int tasMode; double targetEn, actualEn; int mustRecalculate; int mustDrive; pMotor motors[12]; }tasUB, *ptasUB; /*----------------------- defines for virtual motors -----------------------------*/ #define EI 1 #define KI 2 #define QH 3 #define QK 4 #define QL 5 #define EF 6 #define KF 7 #define EN 8 #define QM 9 /*--------------------- the tas virtual motor data structure ---------------------*/ typedef struct { pObjectDescriptor pDes; pIDrivable pDriv; ptasUB math; int code; }tasMot, *ptasMot; /*--------------------------------------------------------------------*/ int TasUBFactory(SConnection *pCon,SicsInterp *pSics, void *pData, int argc, char *argv[]); int TasUBWrapper(SConnection *pCon,SicsInterp *pSics, void *pData, int argc, char *argv[]); int TasMot(SConnection *pCon,SicsInterp *pSics, void *pData, int argc, char *argv[]); #endif