\subsubsection{Physik Instrumente DC-Motor Controller}
This is a mainly a driver for a C-804 DC-motor Controller as produced by the
Company Physik Instrumente. This controller drives up to four high precision
motors. These motors do not have reference points and have variable speeds.
Therefore some additional code is needed to handle motor specific commands.
This problem is solved by handling these specific additional commands in a
new wrapper routine which finally calls the main motor wrapper routine for
all the other commands. Of course, a special factory method is needed for
this device as well.

The public interface for this motor includes the following functions:

\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap1}
$\langle$pimoti {\footnotesize ?}$\rangle\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@@\\
\mbox{}\verb@  int PIMotorWrapper(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
\mbox{}\verb@                     int argc, char *argv[]);@\\
\mbox{}\verb@  int PIMotorFactory(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
\mbox{}\verb@                     int argc, char *argv[]);@\\
\mbox{}\verb@@\\
\mbox{}\verb@  int PISetSpeed(pMotor self, SConnection *pCon, float fNew);@\\
\mbox{}\verb@  int PIGetSpeed(pMotor self, SConnection *pCon, float *fVal);@\\
\mbox{}\verb@@\\
\mbox{}\verb@  int PIHome(pMotor 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}
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap2}
\verb@"pimotor.h"@ {\footnotesize ? }$\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@/*--------------------------------------------------------------------------@\\
\mbox{}\verb@                           P I M O T O R@\\
\mbox{}\verb@@\\
\mbox{}\verb@  Driver and add on code for the Physik Instrument Motor Controller C-804.@\\
\mbox{}\verb@  @\\
\mbox{}\verb@  Mark Koennecke, September 1998@\\
\mbox{}\verb@----------------------------------------------------------------------------*/@\\
\mbox{}\verb@#ifndef PIMOTOR@\\
\mbox{}\verb@#define PIMOTOR@\\
\mbox{}\verb@#include <motor.h>@\\
\mbox{}\verb@@$\langle$pimoti {\footnotesize ?}$\rangle$\verb@@\\
\mbox{}\verb@#endif@\\
\mbox{}\verb@@\\
\mbox{}\verb@@$\diamond$
\end{list}
\vspace{-2ex}
\end{minipage}\\[4ex]
\end{flushleft}
\subsubsection{Physik Instrument Piezo Controller E-255}
This is piezo translator. A voltage is set and it elongates. It is
handled as a motor because it is going to be scanned. A  driver has
been  implemented in the file pipiezo.c. For
the command protocoll, see the documentation coming with the gadget. 
 

