- Reworked the connection object and the IO system
- Reworked the support for TRICS - Added a second generation motor
This commit is contained in:
26
hkl.w
26
hkl.w
@@ -15,47 +15,29 @@ The object uses the following object data structure:
|
||||
@d hkldat @{
|
||||
typedef struct __HKL {
|
||||
pObjectDescriptor pDes;
|
||||
double fUB[9];
|
||||
MATRIX UBinv;
|
||||
double fLambda;
|
||||
int iManual;
|
||||
double fLastHKL[5];
|
||||
int iNOR;
|
||||
int iQuad;
|
||||
int iHM;
|
||||
pMotor pTheta;
|
||||
pMotor pOmega;
|
||||
pMotor pChi;
|
||||
pMotor pPhi;
|
||||
pMotor pNu;
|
||||
pSelVar pMono;
|
||||
long lID;
|
||||
float scanTolerance;
|
||||
float targetHKL[3];
|
||||
int targetDirty;
|
||||
pIDrivable pMotDriv;
|
||||
} HKL;
|
||||
@}
|
||||
|
||||
The fields are more or less self explaining:
|
||||
\begin{description}
|
||||
\item[pDes] The standard object descriptor.
|
||||
\item[fUB] The UB matrix.
|
||||
\item[iUB] is a flag which spcifies if a UB is specified.
|
||||
\item[fLambda] The wavelength of the neutrons.
|
||||
\item[iManual] A flag which defines if the wavelength has been set manually
|
||||
or is updated automatically from a wavelength variable.
|
||||
\item[fLastHKL] the HKL of the last reflection calculated.
|
||||
\item[iNor] a flag for normal beam calculation mode.
|
||||
\item[iHM] a flag for histogram memory mode. In this mode two theta
|
||||
limits are checked alos for detector 2 and 3.
|
||||
\item[pTheta] The two theta motor. All motor are needed for boundary
|
||||
checking.
|
||||
\item[pOmega] The omega axis motor.
|
||||
\item[pChi] The chi axis motor.
|
||||
\item[pPhi] the phi axis motor.
|
||||
\item[pNu] the nu axis motor for normal beam geometry.
|
||||
This is detector tilt.
|
||||
\item[pMono] The selector variable doing the wavelength.
|
||||
\item[scanTolerance] The hkl module refuses to position a reflection if it is
|
||||
to close to omega limits for scanning. This is the tolerance to use.
|
||||
\item[targetHKL] The target HKL values to support the H, K, L virtual motors
|
||||
@@ -78,15 +60,12 @@ module:
|
||||
@d hklint @{
|
||||
typedef struct __HKL *pHKL;
|
||||
/*-------------------------------------------------------------------------*/
|
||||
pHKL CreateHKL(pMotor pTheta, pMotor pOmega,
|
||||
pMotor pChi, pMotor pPhi, pMotor pNu);
|
||||
pHKL CreateHKL();
|
||||
void DeleteHKL(void *pData);
|
||||
|
||||
int HKLFactory(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
int argc, char *argv[]);
|
||||
/*------------------------------------------------------------------------*/
|
||||
int SetWavelengthVariable(SConnection *pCon, pHKL self, pSelVar pVar);
|
||||
int SetWavelengthManual(pHKL self, float fVal);
|
||||
void SetHKLScanTolerance(pHKL self, float value);
|
||||
int SetUB(pHKL self, float fUB[9]);
|
||||
int GetUB(pHKL self, float fUB[9]);
|
||||
@@ -109,6 +88,7 @@ module:
|
||||
int argc, char *argv[]);
|
||||
int hklInRange(void *data, float fSet[4], int mask[4]);
|
||||
int startHKLMotors(pHKL self, SConnection *pCon, float fSet[4]);
|
||||
void stopHKLMotors(pHKL self);
|
||||
@}
|
||||
All functions return 0 on failure, 1 on success if not stated otherwise.
|
||||
Most functions take a pointer to a HKL data structure as first parameter.
|
||||
|
||||
Reference in New Issue
Block a user