60 lines
2.1 KiB
C
60 lines
2.1 KiB
C
/*--------------------------------------------------------------------------
|
|
|
|
S E L E C T O R
|
|
|
|
This is an object to support a Crystal-Monochromator with
|
|
possibly two bending dimensions.
|
|
|
|
The monochromator can be used in two modes: to adjust wavelength
|
|
or to adjust energy for those triple axis people. This is reflected
|
|
in a code structure like this: There is the actual device, the
|
|
monochromator, as given here. This mono supports some configuration
|
|
commands. And provides basic routines to run the monochromator
|
|
common to the second part.
|
|
|
|
The second part are two variables, wavelength and energy, which
|
|
are configured with a monochromator to act upon. See file selvar.* for
|
|
more details.
|
|
|
|
Mark Koennecke, January 1996
|
|
|
|
copyright: see implementation file.
|
|
|
|
----------------------------------------------------------------------------*/
|
|
|
|
#ifndef SICSMONO
|
|
#define SICSMONO
|
|
#include "motor.h"
|
|
|
|
typedef struct __SicsSelector *pSicsSelector;
|
|
|
|
|
|
/* birth and death: The Selector himself */
|
|
pSicsSelector CreateSelector(char *name, pMotor pTheta, pMotor pTwoTheta,
|
|
pMotor pBend1, pMotor pBend2);
|
|
|
|
int MonoInit(SConnection * pCon, SicsInterp * pSics, void *pData,
|
|
int argc, char *argv[]);
|
|
|
|
void DeleteSelector(void *self);
|
|
|
|
|
|
/* Action! */
|
|
|
|
int MonoAction(SConnection * pCon, SicsInterp * pSics, void *pData,
|
|
int argc, char *argv[]);
|
|
|
|
int MonoRun(pSicsSelector self, SConnection * pCon, float fWaveLength);
|
|
struct __ComEntry *GetSelectorMotors(pSicsSelector self,
|
|
SConnection * pCon, float fNew);
|
|
int MonoLimits(pSicsSelector self, float fWaveLength, char *error,
|
|
int iErrLen);
|
|
int MonoCheck(pSicsSelector self, SConnection * pCon);
|
|
int MonoHalt(pSicsSelector self);
|
|
float GetMonoPosition(pSicsSelector self, SConnection * pCon);
|
|
char *MonoGetType(pSicsSelector self);
|
|
int GetMonoPositions(pSicsSelector self, SConnection * pCon,
|
|
float *fTheta, float *fTwtTh, float *fB1, float *fB2);
|
|
|
|
#endif
|