\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.