Initial revision
This commit is contained in:
129
xytable.tex
Normal file
129
xytable.tex
Normal file
@ -0,0 +1,129 @@
|
||||
\subsection{Xytable}
|
||||
Xytable is an object which holds a list of x-y values. This can be used as a
|
||||
tool for doing very special scans or storing interesting data from command
|
||||
files. This class allows to retrieve the data in uuencoded form which
|
||||
is understood and displayed by the variable watcher SICS client. Furthermore
|
||||
data can be written to a file. The table entries are kept in a linked
|
||||
list in the following data structure.
|
||||
|
||||
The following data structures will be used:
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap1}
|
||||
$\langle$xydata {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct {@\\
|
||||
\mbox{}\verb@ float x;@\\
|
||||
\mbox{}\verb@ float y;@\\
|
||||
\mbox{}\verb@ } TableEntry, *pTableEntry;@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct __XYTABLE {@\\
|
||||
\mbox{}\verb@ pObjectDescriptor pDes;@\\
|
||||
\mbox{}\verb@ int iList; @\\
|
||||
\mbox{}\verb@ int iCount;@\\
|
||||
\mbox{}\verb@ }XYTable;@\\
|
||||
\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 entries in the TableEntry are self explianing: just the
|
||||
values. The XYTable structure holds the following fields:
|
||||
\begin{description}
|
||||
\item[pDes] The standard object descriptor.
|
||||
\item[iList] the handle for the lld-list holding the table entries.
|
||||
\item[iCount] The number of entries in the table.
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
The following functions are defined:
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap2}
|
||||
$\langle$xyfunc {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct __XYTABLE *pXYTable;@\\
|
||||
\mbox{}\verb@/*------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@ int XYClear(pXYTable self);@\\
|
||||
\mbox{}\verb@ int XYAdd(pXYTable self, float x, float y);@\\
|
||||
\mbox{}\verb@ int XYWrite(pXYTable self, FILE *fd);@\\
|
||||
\mbox{}\verb@ int XYSendUU(pXYTable self, SConnection *pCon);@\\
|
||||
\mbox{}\verb@ int XYList(pXYTable self, SConnection *pCon);@\\
|
||||
\mbox{}\verb@/*----------------------- interpreter interface --------------------------*/@\\
|
||||
\mbox{}\verb@ int XYFactory(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\mbox{}\verb@ int XYAction(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\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}
|
||||
Most functions take a pointer to an XYTbale data structure as fist
|
||||
parameter and return 1 on success and 0 on failure. The functions are:
|
||||
\begin{description}
|
||||
\item[XYClear] clears all entries.
|
||||
\item[XYAdd] appends a new pair of x and y values to the list.
|
||||
\item[XYWrite] writes the XY-list to the file fd. This file must
|
||||
already have been opened for writing by the calling routine.
|
||||
[item[XYSendUU] sends the XY-table in uuencoded form compatible with
|
||||
the SICS variabel watcher to connection pCon.
|
||||
\item[XYList] prints the content of the XY-table to connection pCon.
|
||||
\item[XYFactory] is the implentation of the installation command for
|
||||
the SICS initialisation process.
|
||||
\item[XYAction] implements the interface to the SICS interpreter for
|
||||
the xytable command.
|
||||
\end{description}
|
||||
|
||||
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap3}
|
||||
\verb@"xytable.i"@ {\footnotesize ? }$\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*----------------------------------------------------------------------@\\
|
||||
\mbox{}\verb@ Internal data structures for the XYTable class. Do not modify@\\
|
||||
\mbox{}\verb@------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@@$\langle$xydata {\footnotesize ?}$\rangle$\verb@@\\
|
||||
\mbox{}\verb@@$\diamond$
|
||||
\end{list}
|
||||
\vspace{-2ex}
|
||||
\end{minipage}\\[4ex]
|
||||
\end{flushleft}
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap4}
|
||||
\verb@"xytable.h"@ {\footnotesize ? }$\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*------------------------------------------------------------------------@\\
|
||||
\mbox{}\verb@ X Y T A B L E @\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ a helper class for holding an X-Y list of values.@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ copyright: see copyright.h@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ Mark Koennecke, June 1999@\\
|
||||
\mbox{}\verb@----------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@#ifndef XYTABLE@\\
|
||||
\mbox{}\verb@#define XYTABLE@\\
|
||||
\mbox{}\verb@@$\langle$xyfunc {\footnotesize ?}$\rangle$\verb@@\\
|
||||
\mbox{}\verb@#endif@\\
|
||||
\mbox{}\verb@@$\diamond$
|
||||
\end{list}
|
||||
\vspace{-2ex}
|
||||
\end{minipage}\\[4ex]
|
||||
\end{flushleft}
|
Reference in New Issue
Block a user