Initial revision
This commit is contained in:
107
itc4.tex
Normal file
107
itc4.tex
Normal file
@ -0,0 +1,107 @@
|
||||
\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}
|
Reference in New Issue
Block a user