// $Source: /usr/local/SimSoft/Sfx3D/src/gsl/serialio.h,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:10 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name:  $
// State assigned to revision
// $State: Exp $
//
//
// $Log: serialio.h,v $
// Revision 1.2  2001/11/29 15:18:10  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

#ifndef _SERIALIO_H
#define _SERIALIO_H     1

#ifdef _SERIALIO_CPP
#  undef _impexp
#  define _impexp __declspec(dllexport)
#elif defined BUILD_MAIN_DLL
#  undef _impexp
#  define _impexp 
#else
#  undef _impexp
#  define _impexp __declspec(dllimport)
#endif

#if defined __GNUC__ || defined __hpux
#  undef _impexp
#  define _impexp
#endif

_impexp extern char SioZeichen;
_impexp extern char SioDevNr [64];
/* ----------------------------------------------------------------------------- */
/* - SioInit:                                                                  - */
/* - initialisiert die serielle Schnittstelle SioNr 1 bis 4 (COM1 bis COM4)    - */
/* - mit der SioBaudrate (38400, 19200, 9600, 4800, 2400, 1200, 600, 300), der - */
/* - SioWortldnge 5 bis 8, der SioParitaet 1=ungerade und 2=gerade, der Anzahl - */
/* - SioStoppbit (1 oder 2) und vffnet die Schnittstelle.                      - */
/* - Der R|ckgabewert ist bei erfolgreicher Ausf|hrung 0, ansonsten kleiner 0  - */
/* ----------------------------------------------------------------------------- */

_impexp int SioInit (struct Tcl_Interp *interp,
                     int SioNr,
                     int SioBaudrate,
                     int SioWortlaenge,
                     int SioParitaet,
                     int SioStoppbit);


/* -------------------------------------------------------------------------------- */
/* - SioExit:                                                                     - */
/* - Stellt den Ursprungszustand der Schnittstelle wieder her und schlie_t diese. - */
/* - Der R|ckgabewert ist bei erfolgreicher Ausf|hrung 0, ansonsten kleiner 0     - */
/* -------------------------------------------------------------------------------- */

_impexp int SioExit ();



/* ----------------------------------------------------------------------------- */
/* - SioLesen:                                                                 - */
/* - Testet, ob von der seriellen Schnittstelle ein Zeichen empfangen wurde.   - */
/* - Wenn kein Zeichen angekommen ist, gibt die Funktion eine 0 zur|ck, an-    - */
/* - sonsten eine 1 und das Zeichen steht in der char-Variarbe "SioZeichen"    - */
/* ----------------------------------------------------------------------------- */

_impexp int SioLesen ();



/* ----------------------------------------------------------------------------- */
/* - SioSchreiben:                                                             - */
/* - Schreibt einen Text, der im Parameter SioSchreibZeichen |bergeben wird    - */
/* - auf die serielle Schnittstelle. SioSchreibLaenge mu_ die Anzahl der Buch- - */
/* - staben enthalten, die |bertragen werden sollen.                           - */
/* ----------------------------------------------------------------------------- */

_impexp int SioSchreiben (char *SioSchreibZeichen, unsigned int SioSchreibLaenge);

#endif /* _SERIALIO_H */
