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

#ifndef _SFXCONST_H
#define _SFXCONST_H     1

//---------------------------------------------------------
// Permanente Einheiten
//---------------------------------------------------------
enum  basistypen {
      tLayout                       = 0,
      tQuelle                       = 1,
      tSenke                        = 2,
      tStaufoerderer                = 3,
      tWeiche                       = 4,
      tVerteilwagen                 = 5,
      tMaschine                     = 7,
      tDrehpuffer                   = 8,
      tMehrfachLader						= 9,
      tLaufkran                     = 10,
      tAbstrakteRegaleinheit        = 12,
      tRechtsKurvenStaufoerderer    = 14,
      tLinksKurvenStaufoerderer     = 15,
      tSammler                      = 16,
      tRegaleinheit                 = 17,
      tRegalverwalter               = 18,
      tNcPoolverwalter              = 19,
      tKettenfoerderer              = 23,
      tQuerfoerderer                = 24,
      tKommissionierer              = 25,
      tKomVerwalter                 = 26,
      tFtsLadepool                  = 28,
      tFtsLadeplatz                 = 29,
      tFtsVerwalter                 = 30,
      tFtsWagen                     = 31,
      tFtsEinbahnstrecke            = 32,
      tFtsZweibahnstrecke           = 33,
      tFtsKurve                     = 34,
      tFtsAbzweigung                = 35,
      tFtsKreuzung                  = 36,
      tFtsEinbahnMitInhalt          = 37,
      tFtsZweibahnMitInhalt         = 38,
      tFtsEndstrecke                = 39
};

//---------------------------------------------------------
// Zustandstypen
//---------------------------------------------------------
enum zustandstypen {
      RUHE              = 0,      
      AKTIVIERT         = 1,
      AUFNEHMEN         = 2, 
      ARBEITEN          = 3,
      ABGEBEN           = 4,   
      FOERDERN          = 5,
      DREHEN            = 6,    
      FAHREN            = 7,
      WARTEN            = 8,    
      POLLING           = 9,
      WARTEDP           = 10,   
      SCHLAFEN          = 11,
      PRGWARTEN         = 12, 
      SFOERDERN         = 13,
      GESTOERT          = 14,
      GESPERRT          = 15,
      SYNCWARTEN        = 16,
      LADEN					= 17
};

//---------------------------------------------------------
// Ereignisse ET<Name>
//---------------------------------------------------------
enum ereignisse {
     ETaktivieren	       =  2,
     ETprotokoll  	    =  3,
     ETaaufnehmen    	 =  9,
     ETeaufnehmen   	    = 10,
     ETaabgeben      	 = 11,
     ETeabgeben          = 12,
     ETadrehen           = 13,
     ETedrehen           = 14,
     ETalagern           = 17,
     ETelagern           = 18,
     ETafahren           = 20,
     ETefahren           = 21,
     ETasperrung         = 24,
     ETesperrung         = 25,
     ETastoerung         = 27,
     ETestoerung         = 28,
     ETaarbeiten         = 30,
     ETearbeiten         = 31,
     ETaladen	          = 35,
     ETeladen	          = 36,
     ETaftsfahren        = 41,
     ETeftsfahren        = 42,
     ETatrace            = 44,
     ETetrace            = 45,
     ETprogramm          = 46,
     ETazeitreihe        = 53,
     ETezeitreihe        = 54,
     ETstartextprozess   = 64,
     ETstopextprozess    = 65,
     ETexplerzeugen      = 66,
     ETerzBestellung     = 67,
     ETloeBestellung     = 68,
     ETakommissionieren  = 72,
     ETekommissionieren  = 73,
     ETafoerdern         = 75,
     ETefoerdern         = 76,
     ETinitGrafik        = 81,
     ETloescheGrafik     = 82,
     ETaheben            = 83,
     ETeheben            = 84,
     ETasenken           = 85,
     ETesenken           = 86,     
     ETfahrTakt          = 91,
     ETdrehTakt          = 92,
     ETaufnTakt          = 93,
     ETameldewarten      = 95,
     ETwecken            = 100,
     
     // Folgende Ereignistypen sind fuer die Realzeitsteuerung benutzbar

     ETdpabgplatz     = 992,   // Dem Drehpuffer muss vor dem Abgeben mitge-
                               // teilt werden, welcher Platz abgeben soll.
     ETeausschl       = 993,
     ETausschl        = 994,
     ETaeinschl       = 995,
     ETbereit         = 996,
     ETainit          = 997,
     ETeinit          = 998,
     ETchtyp          = 999
};

extern _impexp void dprintf (char* format, ...);

#define WARNING      0
#define FATAL        1

extern _impexp int sim_error (char *Modul, char *Methode, char *Text,
                              int betr, bool fatal);

extern _impexp int sim_error (char *Modul, char *Methode, char *Text,
                              char *betr, bool fatal);

#endif //_SFXCONST_H

