\subsection{SICS Events}
This section lists the  callback events known to Sics, their purpose, and
their associated event datastructures when applicable. See the
\ref{inter} section about callbacks for more information about
callbacks. This only defines the integer codes possible. Please be
aware that the implementation of the callbacks is a duty of the SICS
objects generating it. The mentioning of an event code here means it
is used somewhere in SICS but does not mean that it is implemented by
all objects which might implement the event.   

This module defines several event related functions as well.

@d eFunc @{
   int Text2Event(char *pText);
@} 

{\bf Text2Event } converts a text value into an event code. It returns -1
if the event code is not known, else the apropriate event code.

@d VE @{
#define VALUECHANGE 0
#define MOTDRIVE    1
#define MONITOR     2  
#define ROTSTART    3
#define ROTMOVE     4
#define SCANEND     5
#define SCANSTART   6
#define SCANPOINT   7
#define WLCHANGE    8
#define REFLECTIONDONE 9
#define COUNTSTART     10
#define COUNTEND       11
#define FILELOADED     12
@}
\begin{description}
\item[VALUECHANGE] This is a variable changing its value. As event data a pointer to the
SicsVariable is passed along. This is defined in sicsvar.h.
\item[MOTDRIVE] a motor is moving. The event data is the current position.
\item[MONITOR] The control value for a counting operation has changed.
The event data is the new value.
\item[ROTSTART] A velocity selector is starting up.
\item[ROTMOVE]  A velocity selector changes its rotation speed.
\item[SCANEND] A scan has ended.
\item[SCANSTART] A new scan has been started.
\item[SCANPOINT] A scan point has finished and there is new data.
\item[WLCHANGE] is incoked when the wavelength of a crystal monochromator 
changes. The event parameter is a pointer to the wave length or energy
variable being driven. Client code can then get what it needs to know.
\item[REFLECTIONDONE] is issued when a single reflection of a four circle
fiffractometer has been measured.
\item[COUNTSTART] is an event which signals the start of a counting
operation.
\item[COUNTEND] is an event signalling the end of a counting operation.
\end{description}

Furthermore event contains system wide signal codes which are interpreted in 
the  signal functions provided by each SICS task. These code are
evaluated by the TaskSignalFunction which may be configured for each
SICS task. See the task section for more information. Here, only
possible codes are defined. 

@d VSIG @{
#define SICSINT 300
#define SICSBROADCAST 301
#define TOKENGRAB     302
#define TOKENRELEASE  303
@}
\begin{description}
\item[SICSINT] An interrupt has ocurred. The signal data is the interrupt 
number which ocurred.
\item[SICSBROADCAST] A message shall be sent to each SICS client. The signal
data is the string to send.
\item[TOKENGRAB] A connection has successfully grabbed the control token.
\item[TOKENRELEASE] A connection has released the control token. 

\end{description}
@o event.h -d @{
/*----------------------------------------------------------------------------
                        E V E N T

  This header file lists the event codes known to SICS. These event code
  are used in callback functions. Where apropriate, the event data
  structures are also defined in this file.

  Mark Koennecke, 1997

----------------------------------------------------------------------------*/
#ifndef SICSEVENT
#define SICSEVENT
@<eFunc@>

@<VE@>

/*--------------- Signals for the Signalfunction of each task ------------*/
@<VSIG@> 
#endif
@}
