PSI sics-cvs-psi_pre-ansto
This commit is contained in:
49
doc/programmer/mumo.tex
Normal file
49
doc/programmer/mumo.tex
Normal file
@@ -0,0 +1,49 @@
|
||||
\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.
|
||||
|
||||
Reference in New Issue
Block a user