00001 00006 #ifndef __KREUZUNG_ 00007 #define __KREUZUNG_ 00008 00009 #include "Fehler.h" 00010 #include "ListenDaten.h" 00011 #include "Spur.h" 00012 00017 class Kreuzung : public ListenDaten 00018 { 00019 public: 00020 Kreuzung( long int id = 0 ); 00021 void takt( double zeitintervall ); 00022 void setzeSpur( int himmelsrichtung, int abbiegerichtung, Spur *spur ); 00023 Spur* gibSpur( int himmelsrichtung, int abbiegerichtung ); 00024 void aufraeumen(); 00025 void setzeAmpelalgorithmus( int id ); 00026 void exportieren( string cvsDateiname ); 00027 00028 friend ostream &operator<< ( ostream &os, Kreuzung *kreuzung ); 00029 void inString( ); 00030 00031 private: 00032 00033 void algorithmusZeitZeit( double zeitintervall ); 00034 void algorithmusZeitMenge( double zeitintervall ); 00035 void algorithmusStopp( double zeitintervall ); 00036 void algorithmusMengeMenge( double zeitintervall ); 00037 void clear(); 00038 00039 Spur* spurenListe_[4][3]; 00040 int idAmpelAlgorithmus_; 00041 double zeitLetzteSchaltung_[4][3]; 00042 double zeitLetzteSchaltungGlobal_; 00043 int mengeLetzteSchaltungGlobal_; 00044 int schaltungstakt_; 00045 double schaltzeit_; 00046 int statistik_[4][3][4]; 00047 int schaltreihenfolge_[8]; 00048 int schaltmenge_[8]; 00049 }; 00050 00051 #endif 00052 00053