// $Source: /usr/local/SimSoft/Sfx3D/src/gsl/msps.h,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:09 $
//
// 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: msps.h,v $
// Revision 1.2  2001/11/29 15:18:09  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

#ifndef _MSPS_H
#define _MSPS_H     1

#ifdef _MSPS_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
// für die Handsteuerung
_impexp extern int anzbst;
// ------------------------------------------------------
// --- Initialisiert die und oeffnet Schnittstelle     ---
// ------------------------------------------------------

_impexp void MspsInit(void);


// ------------------------------------------------------
// --- Sendet eine Nachricht                          ---
// ------------------------------------------------------

_impexp void MspsSenden (int BausteinNr, int ETyp, int Parameter);


// ------------------------------------------------------
// --- Testet, ob eine Nachricht angekommen ist       ---
// ------------------------------------------------------

_impexp int MspsLesen (int *VonBausteinNr, int *ETyp, int *Parameter);


// ------------------------------------------------------
// --- Schliesst die zuvor geoeffnete Schnittstelle     ---
// --- wieder                                         ---
// ------------------------------------------------------

_impexp void MspsExit (void) ;

//---------------------------------------------------------
// Klasse NCInterpreter
//---------------------------------------------------------

class _impexp NCInterpreter {
  public:
    NCInterpreter ();
    ~NCInterpreter ();

    void Linie_uebersetzen (float uKoord, char *buf); 
    void Erz_Zeile         (int g, char *Koor_x, char *Koor_y, char *Koor_z);
    void Bogen_uebersetzen (int Weg, float xKoor2, float yKoor2, float zKoor,
                                     float i_x,    float i_y);
    void auslesen    ();
    void Uebersetzen (int Baustein, int ncprognr, char *verzname);

  protected:
    char buf[255];
    char Datei[255];
    char zeilen [25];
    char k, hex_x[6], hex_y[6], hex_z[6];
    float x, y, z, i, j;
    float xmerk, ymerk, zmerk, x_1, y_1, z_1;
    int w, inkrement, fertig, Nummer, bst_nr;
};

#endif /* _MSPS_H */

