Files
sics/doc/programmer/evdrivers.tex

111 lines
4.5 KiB
TeX

\subsubsection{LTC-11 Driver}
This is a driver for the Kyocera LTC-11 temperature controller which
is used with the Kryo furnace at SINQ (funny idea, a kryo
furnace). As with the ITC-4 this device has a few special functions
and requires an additional interpreter function which delegates to the
standard one for the general stuff. This is mainly the switching of
the operation mode of the LTC-11. It has two modes: analog mode and
heater mode. For more details about this see the controller
manual. The driver is implemented in the
file ltc11.h and ltc11.c. The following functions, besides those
required for the standard driver, are defined:
\begin{verbatim}
pEVDriver CreateLTC11Driver(int argc, char *argv[]);
int LTC11GetMode(pEVDriver self, int *iMode);
int LTC11SetMode(pEVDriver self, int iMode);
int LTC11Action(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
\end{verbatim}
These are:
\begin{description}
\item[CreateLTC11Driver] creates a driver for a LTC-11. Returns a
pointer to a newly allocated LTC-11 driver or NULL in case of failure.
\item[LTC11GetMode] retrieves the current operation mode of the
LTC-11.
\item[LTC11SetMode] sets the operation mode for the LTC-11.
\item[LTC11Action] The interpreter interface function for the
LTC-11. Implements the special commands for the LTC-11 and calls
EVControlWrapper for anything else.
\end{description}
\subsubsection{The Dillution Cryostat}
This is the old monster cryostat inherited from Saphir. Its driver is
implemented in dilludriv.h and dilludriv.c. There is additional code
for this device in the hardsup subdirectory in the file dillutil.h and
dillutil.c. This device has a fairly involved command protocoll. A
change of the set point requires heater output and and various
parameters for the resistance bridge used for temperature measurement
to be set. Then the set value has to be formatted in a range specific
way in a hexidecimal format. Most of this code is a C adaption of an
earlier F77 code from Elsenhans. Additionally this controller does not
provide a temperature but a resistance value. This resistance value
has to be converted to temperature through a calibration table. Thus
there is an additional file, dilu.tem, which holds this conversion
table.
\subsubsection{Eurotherm Temperature Controller}
SANS is Eurotherm temperature controller somewhere. These controllers
are quite common and the problem may come up again. The Eurotherm
supports not one but several command protocolls, each weirder then the
other. The implementation here serves the EI-Bisynch protocoll. The
thing ahs to be configured manually to run this protocoll. This
protocoll uses specific message formats for communication, the command
protocoll is not plain ASCII. For more details about the protocoll see
the documentation coming with the gadget. Due to this protocoll
restriction the usual Send function of the driver just returns an
error. The driver is impelemwnted
in file eurodriv.h and eurodriv.c. The following functions are
provided:
\begin{verbatim}
pEVDriver CreateEURODriv(int argc, char *argv[]);
/*
these are hooks to implement further functionality which,
I'am sure, Joachim Kohlbrecher will request.
*/
int EuroGetParameter(void **pData, char *pPar, int iLen, float *fVal);
int EuroSetParameter(void **pData, char *pPar, int iLen,
char *pFormat, float fVal);
\end{verbatim}
These are:
\begin{description}
\item[CreateEuroDriver] creates a driver for a Eurotherm controller. Returns a
pointer to a newly allocated Eurotherm driver or NULL in case of failure.
\item[EuroGetParameter] gets one out of many parameters possible with
the Eurotherm. This is a hook to implement further functionality. For
possible values for parameter names pPar see the Eurotherm
documentation. iLen is the length of pPar.
\item[LTC11SetParameter] retrieves the value of a parameter from the
Eurotherm. Again a hook for further expansion. pFormat is the format
how to print the parameter into the command string.
\end{description}
\subsubsection{EL755 Magnet Controller}
This is a driver for the PSI manufactured EL755 magnet
controller. There is additional code for this in the hardsup directory
with files el755\_utility.*. The functions there are documented in that
file. For SICS there is only an adapter to this implemented in
el755driv.h and el755driv.c. The only external function is a driver
creation function with the usual parameters and return values.