71 lines
2.6 KiB
OpenEdge ABL
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
|
|
@}
|
|
|