Files
sics/hklscan.w
2000-02-07 10:38:55 +00:00

71 lines
2.6 KiB
OpenEdge ABL

\subsection{hklscan}
hklscan is an object which implements scanning in reciprocal space. It belongs
to the four circle diffraction line of commands. It requires the hkl object
for doing four circle calculations and a scan object for doing the scanning.
The scan object is configured by overloading its WriteScanPoints and
ScanDrive functions to do the right thing for this. Thus most of the work
is done in scan and hkl.
hklscan has its own data structure looking like this:
@d hklscandat @{
typedef struct __HKLSCAN {
pObjectDescriptor pDes;
pScanData pScan;
pHKL pCalc;
float fStart[3];
float fStep[3];
float fPos[3];
} sHklscan;
@}
\begin{description}
\item[pDes] The standard object descriptor.
\item[pScan] The scan object used for scanning.
\item[pCalc] The hkl object used for crystallographic computations.
\item[fStart] The start values in H, K, L for scanning.
\item[fStep] The step width in H, K, L.
\item[fPos] The last position in H, K, L.
\end{description}
The hklscan object defines the following external interface:
@d hklscanfunc @{
typedef struct __HKLSCAN *pHklscan;
/*--------------------------------------------------------------------------*/
int HklScan(pHklscan self, SConnection *pCon, int iNP, int iMode,
float fPreset);
/*---------------- interpreter functions -----------------------------------*/
int HklscanFactory(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
int HklscanAction(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
@}
@o hklscan.i @{
/*-------------------------------------------------------------------------
Internal data structure for the hklscan object. DO NOT MODIFY.
Modifications only in hklscan.i
Mark Koennecke, June 1999
--------------------------------------------------------------------------*/
@<hklscandat@>
@}
@o hklscan.h @{
/*--------------------------------------------------------------------------
H K L S C A N
A class for doing scans in reciprocal space. This makes only sense at an
four circle diffractometer. Most of the work is done in the HKL and scan
objects. This class just adapts and used both objects to do the right thing.
Mark Koennecke, June 1999
---------------------------------------------------------------------------*/
#ifndef HKLSCAN
#define HKLSCAN
@<hklscanfunc@>
#endif
@}