// Modellname: bdeanlag

// Die Makrodefinition '_impexp' dient zur Exportierung
// der Funktionen, Klassen und Variablen innerhalb der Library, 
// wird aber eigentlich nur fuer Windows benoetigt :-(

#ifdef WIN32
  #undef _impexp
  #define _impexp __declspec(dllexport)
#else
  #undef _impexp
  #define _impexp
#endif

#include <stdio.h>
#include "sfxprg.h"                    // enthaelt die Funktionen der C-Schnittstelle

const int Maschine1     = 1;
const int Verteilwagen  = 3;
const int BdeBst        = 0; // test mit Bst 0; //10;
const int BdeSchreiben  = 999;

FILE *BdeDatei = NULL;
Ustring BdeDatName("bde.out");

void _impexp init_prog () {
  DateiMitModellPfad(BdeDatName);
  BdeDatei = fopen (BdeDatName.str(), "w");
  fclose (BdeDatei);
  installProg (999);
  planeEin (SimTime::convertMinutes (12.0), ETprogramm, BdeBst, BdeSchreiben);
}

void _impexp prog_999 () {             // BDE-Programm auf Baustein 10
  BdeDatei = fopen (BdeDatName.str(), "a");
  fprintf (BdeDatei, "%5.2f ; %5.2f ; %5.2f ; %5.2f ; %i \n",
           Modellzeit ().inHours (), MitAuslastung (Maschine1), 
           MitAuslastung (Verteilwagen), MitDurchlaufzeit (1010).inMinutes (), 
           AnzArbeitsplaeneAus (1010));
  fclose (BdeDatei);

  if (Modellzeit () < Modellende ())
    planeDelta (SimTime::convertMinutes (12.0), ETprogramm, BdeBst, BdeSchreiben);
  else
    simAbbruch ();
}

void _impexp exit_prog () {
}
