/*---------------------------------------------------------------------- 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 -----------------------------------*/ typedef struct { pObjectDescriptor pDes; tasMachine machine; int reflectionList; lattice cell; tasQEPosition target; tasQEPosition current; int tasMode; int outOfPlaneAllowed; double targetEn, actualEn; int mustRecalculate; int mustDrive; pMotor motors[12]; tasReflection r1, r2; int ubValid; int silent; } tasUB, *ptasUB; /*--------------------- 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 findReflection(int list, int idx, ptasReflection r); #endif