108 lines
4.7 KiB
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}
|