50 lines
2.2 KiB
TeX
50 lines
2.2 KiB
TeX
\subsection{Multiple Motors}
|
|
Multiple Motors is a module which implements a special syntax for SANS.
|
|
Motors are collected into a group. For example beamstop and manipulated
|
|
through them. Furthermore multiple motors support named positions and a
|
|
special position {\bf back} which is the position before the last movement.
|
|
Multiple Motors works, but it if larger changes become necessary it might be
|
|
sensible to drop it and replace it by a work alike in the macro language.
|
|
Please note, that multiple motors starts motors to run, but does not wait
|
|
for them to finish.
|
|
|
|
Multiple motors are characterized through the following data structure:
|
|
\begin{verbatim}
|
|
typedef struct __MULMOT {
|
|
pObjectDescriptor pDes;
|
|
char *name;
|
|
pStringDict pAlias;
|
|
pStringDict pNamPos;
|
|
ObPar *pParam;
|
|
} MulMot;
|
|
\end{verbatim}
|
|
The fields are:
|
|
\begin{description}
|
|
\item[pDes] A pointer to the usual SICS object descriptor.
|
|
\item[name] The name of the multi motor.
|
|
\item[pAlias] A string dictionary which maps group internal motor names to
|
|
real SICS motor names.
|
|
\item[pNamPos] A string dictionary which maps named positions to the SICS
|
|
command necessary to run to that position.
|
|
\end{description}
|
|
|
|
Multiple motors are interfaced to with the following functions:
|
|
\begin{description}
|
|
\item[pMulMot MakeMultiMotor(void)] creates multi motors device. Returns a
|
|
pointer to a new data structure on success, NULL in case of failure.
|
|
\item[void KillMultiMotor(void *pData)] deletes a multi motor device.
|
|
\item[int MultiWrapper(SConnection *pCon, SicsInterp *pSics, void *pData, \\
|
|
int argc, char *argv[])] The object wrapper function for
|
|
multiple motors.
|
|
\item[int MakeMulti(SConnection *pCon, SicsInterp *pSics, void *pData,\\
|
|
int argc, char *argv[])] The object factory function for
|
|
multiple motors.
|
|
\item[int ConfigMulti(SConnection *pCon, SicsInterp *pSics, void *pData,\\
|
|
int argc, char *argv[])] The configuration function for
|
|
multiple motors.
|
|
\end{description}
|
|
|
|
The implementation of multiple motors can be found in files mumo.c,
|
|
mumoconf.c, mumo.h and mumo.i.
|
|
|