Files
sics/itc4.tex

108 lines
4.7 KiB
TeX

\subsubsection{Oxford Instruments ITC4 Temperature Controllers}
SINQ makes heavy use of Oxford Instruments ITC4 temperature controllers. In
order to support them the following software components had to be defined in
addition to the basic environmet controller interfaces:
\begin{itemize}
\item ITC4driver, naturally.
\item A ITC4-controller object as derivation of environment controller. ITC4
's allow you to select a sensor which you read as your standard sensor and a
sensor which is used for automatic control. The ITC4 controller object adds
just that additional functionality to the statndard environment controller.
\end{itemize}
The additional data, the selection of sensors, will be kept in the driver.
This serves also an example for implementing inheritance without C++.
The driver interface:
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap1}
$\langle$itcd {\footnotesize ?}$\rangle\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@ pEVDriver CreateITC4Driver(int argc, char *argv[]);@\\
\mbox{}\verb@ int ConfigITC4(pEVDriver self);@\\
\mbox{}\verb@ int SetSensorITC4(pEVDriver self, int iSensor);@\\
\mbox{}\verb@ int SetControlITC4(pEVDriver self, int iSensor);@\\
\mbox{}\verb@ int GetSensorITC4(pEVDriver self);@\\
\mbox{}\verb@ int GetControlITC4(pEVDriver self);@\\
\mbox{}\verb@ int SetDivisorITC4(pEVDriver self, float iSensor);@\\
\mbox{}\verb@ float GetDivisorITC4(pEVDriver self);@\\
\mbox{}\verb@ int SetMultITC4(pEVDriver self, float iSensor);@\\
\mbox{}\verb@ float GetMultITC4(pEVDriver self);@\\
\mbox{}\verb@ int SetTMOITC4(pEVDriver self, int iSensor);@\\
\mbox{}\verb@ int GetTMOITC4(pEVDriver self);@\\
\mbox{}\verb@@\\
\mbox{}\verb@@$\diamond$
\end{list}
\vspace{-1ex}
\footnotesize\addtolength{\baselineskip}{-1ex}
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
\item Macro referenced in scrap ?.
\end{list}
\end{minipage}\\[4ex]
\end{flushleft}
The ConfigITC4 is special. It has to be called to commit changes to the
driver read and control parameters.
The ITC4 object interface:
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap2}
$\langle$itco {\footnotesize ?}$\rangle\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@ int ITC4Wrapper(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
\mbox{}\verb@ int argc, char *argv[]);@\\
\mbox{}\verb@ int ITC4SetPar(pEVControl self, char *name, float fNew, @\\
\mbox{}\verb@ SConnection *pCon);@\\
\mbox{}\verb@ int ITC4GetPar(pEVControl self, char *name, float *fVal);@\\
\mbox{}\verb@ int ITCList(pEVControl self, SConnection *pCon);@\\
\mbox{}\verb@@$\diamond$
\end{list}
\vspace{-1ex}
\footnotesize\addtolength{\baselineskip}{-1ex}
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
\item Macro referenced in scrap ?.
\end{list}
\end{minipage}\\[4ex]
\end{flushleft}
The functions defined are: new parameter handling functions, with just
support for the two extra parameters added and a new Wrapper function for
SICS. The meaning of all these functions, their parameters and return values
are identical to those defined for an environment controller. Additionally,
the standard environment controller functions will work as described. The
functions described above are just needed to implement the extra parameters.
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap3}
\verb@"itc4.h"@ {\footnotesize ? }$\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@/*-------------------------------------------------------------------------@\\
\mbox{}\verb@ ITC 4@\\
\mbox{}\verb@ @\\
\mbox{}\verb@ Support for Oxford Instruments ITC4 Temperature controllers for SICS.@\\
\mbox{}\verb@ The meaning and working of the functions defined is as desribed for a@\\
\mbox{}\verb@ general environment controller.@\\
\mbox{}\verb@@\\
\mbox{}\verb@ Mark Koennecke, Juli 1997@\\
\mbox{}\verb@@\\
\mbox{}\verb@ copyright: see implementation file.@\\
\mbox{}\verb@@\\
\mbox{}\verb@-----------------------------------------------------------------------------*/@\\
\mbox{}\verb@#ifndef SICSITC4@\\
\mbox{}\verb@#define SICSITC4@\\
\mbox{}\verb@/*------------------------- The Driver ------------------------------------*/@\\
\mbox{}\verb@@$\langle$itcd {\footnotesize ?}$\rangle$\verb@@\\
\mbox{}\verb@/*------------------------- The ITC4 object ------------------------------*/@\\
\mbox{}\verb@@$\langle$itco {\footnotesize ?}$\rangle$\verb@@\\
\mbox{}\verb@@\\
\mbox{}\verb@#endif @\\
\mbox{}\verb@ @\\
\mbox{}\verb@@$\diamond$
\end{list}
\vspace{-2ex}
\end{minipage}\\[4ex]
\end{flushleft}