Files
sics/doc/programmer/mumo.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.