Initial revision
This commit is contained in:
94
udpquieck.tex
Normal file
94
udpquieck.tex
Normal file
@ -0,0 +1,94 @@
|
||||
\subsection{UDPquieck}
|
||||
At SinQ a requirement is that newly created data files are automatically
|
||||
copied to another computer. This is for data safety. To have this done by
|
||||
the instrument control program would raise stability problems: what to do
|
||||
when the remote computer fails, when transfers are to slow or all data has
|
||||
to be transferred again. Therefore the copying of files was delegated to a
|
||||
second process. Now a a means is needed to tell the second process, that a
|
||||
new data file has been created. This means is this module. It sends a UDP
|
||||
message on a predefined port. The data copying process can receive or not
|
||||
and act accordingly. Furthermore this scheme can be used to have other
|
||||
processes act upon a new data file as well. The message sent is simple: it
|
||||
consists of the string QUIECK/ followed by the filename. A new command is
|
||||
implemented with the name udpquieck. This shall be a hidden command. As only
|
||||
one such facility is needed for a given SICS server, all necessary data is
|
||||
held in the implementation file udpquieck.c. Anyway, there is only one
|
||||
structure holding network data.
|
||||
The configuration of the udpport is done via a special server
|
||||
option QuieckPort.
|
||||
|
||||
Laater on this facility may be extended to send arbitrary messages to
|
||||
the UDP port for further coordination tasks. This is catered for by
|
||||
having different message types. However, as of now only file messages
|
||||
are supported.
|
||||
|
||||
Needless to say, that the second process must be able to interpret the
|
||||
uDP messages sent by the SICS server.
|
||||
|
||||
|
||||
|
||||
The following interface is implemented:
|
||||
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap1}
|
||||
$\langle$quieck {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@#define QUIECK 1@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ void KillQuieck(void *pData);@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ int SendQuieck(int iType, char *filename);@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ int QuieckAction(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\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}
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap2}
|
||||
\verb@"udpquieck.h"@ {\footnotesize ? }$\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*------------------------------------------------------------------------@\\
|
||||
\mbox{}\verb@ U D P Q U I E C K@\\
|
||||
\mbox{}\verb@ @\\
|
||||
\mbox{}\verb@ udpquieck sends a notification message on a UDP port when a new data@\\
|
||||
\mbox{}\verb@ file has been created. @\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ Mark Koennecke, August 1998@\\
|
||||
\mbox{}\verb@---------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@#ifndef UDPQUIECK@\\
|
||||
\mbox{}\verb@#define UDPQUIECK@\\
|
||||
\mbox{}\verb@@$\langle$quieck {\footnotesize ?}$\rangle$\verb@@\\
|
||||
\mbox{}\verb@#endif@\\
|
||||
\mbox{}\verb@@$\diamond$
|
||||
\end{list}
|
||||
\vspace{-2ex}
|
||||
\end{minipage}\\[4ex]
|
||||
\end{flushleft}
|
||||
The functions:
|
||||
\begin{description}
|
||||
\item[KillQuieck] closes the network port at shutdown. Is the
|
||||
KillFunction used in the SICS interpreter command structure.
|
||||
\item[SendQuieck] sends a message of type iType and the text filename
|
||||
to the UDP port. The only supported iType value is QUIECK as defined
|
||||
in udpquieck.h. Further message types can be supported by adding more
|
||||
support in this function.
|
||||
\item[QuieckAction] is the interpreter interface function to this
|
||||
facility. Yes, messages may be issued by a commadn from the
|
||||
interpreter for instance within scripts. Again, this seems more useful
|
||||
when this facility has been extended.
|
||||
\end{description}
|
||||
|
||||
|
Reference in New Issue
Block a user