qrailway 0.9
|
00001 #ifndef CTRAIN_H 00002 #define CTRAIN_H 00003 00004 #include "cConstants.h" 00005 #include <QObject> 00006 //#include <q3canvas.h> 00007 #include <Q3SqlCursor> 00008 #include <QSqlQuery> 00009 #include <math.h> 00010 #include <QDateTime> 00011 #include <stdlib.h> 00012 #include "cReedkontaktListe.h" 00013 #include "cListe.h" 00014 00016 00018 class cTrain : public QObject 00019 { 00020 Q_OBJECT 00021 public: 00023 cTrain(void); 00025 ~cTrain(void); 00027 void cDebug(int prioritaet,const QString & meldung); 00028 00030 int runden(double zahl) { return(int(zahl+0.5)); }; 00031 00033 int setTrainID(int trainidtemp); 00034 00036 int speed2kmh(int speed,int rich=-1); 00038 int kmh2speed(int kmh,int rich=-1); 00039 00041 int getspeedmin(int richtungtemp=-1); 00043 int getkmhmin(int richtungtemp=-1); 00044 00046 int getspeedslow(int richtungtemp=-1); 00048 int getkmhslow(int richtungtemp=-1); 00049 00051 int getspeedmod(int richtungtemp=-1); 00053 int getkmhmod(int richtungtemp=-1); 00054 00056 int getspeedfast(int richtungtemp=-1); 00058 int getkmhfast(int richtungtemp=-1); 00059 00061 int getspeedmax(int richtungtemp=-1); 00063 int getkmhmax(int richtungtemp=-1); 00064 00065 00067 void setGeschwindigkeitKmh(int geschwindigkeitkmhtemp,int richtungtemp=-1); 00069 int getGeschwindigkeitKmh(void) { return(geschwindigkeitkmh); }; 00071 void setSollGeschwindigkeitKmh(int sollgeschwindigkeitkmhtemp); 00073 int getSollGeschwindigkeitKmh(void) { return(sollgeschwindigkeitkmh); }; 00075 int getRichtung(void) { return(richtung); }; 00076 00078 bool getRangieren(void) { return(rangiermodus); }; 00080 bool setRangieren(bool rangiermodustemp) { 00081 if ((getGeschwindigkeitKmh()==0)&&(getSollGeschwindigkeitKmh()==0)&&(getKontrolle()==1)) { 00082 rangiermodus=rangiermodustemp; 00083 } 00084 return(rangiermodus); 00085 }; 00086 00088 int deleteTrain(void); 00090 int save(bool nurposition=FALSE); 00091 00093 void setGeschwindigkeitsdefinitionen(int speedmintmp,int kmhmintmp,int speedslowtmp,int kmhslowtmp,int speedmodtmp,int kmhmodtmp,int speedfasttmp,int kmhfasttmp,int speedmaxtmp,int kmhmaxtmp,int bwspeedmintmp,int bwkmhmintmp,int bwspeedslowtmp,int bwkmhslowtmp,int bwspeedmodtmp,int bwkmhmodtmp,int bwspeedfasttmp,int bwkmhfasttmp,int bwspeedmaxtmp,int bwkmhmaxtmp); 00095 void setKontrolle(int kontrolletmp); 00097 int getKontrolle(void); 00099 void setArtikelnummer(QString artikelnummertmp); 00101 QString getArtikelnummer(void); 00103 QString getBezeichnung(void); 00105 void setBezeichnung(QString bezeichnungtmp); 00107 int getLaenge(void); 00109 void setLaenge(int laengetmp); 00114 void setType(int traintypetmp); 00115 int getType(void); 00117 void setPositionReed(int positionReedtmp,int positionReedRichtungtmp); 00118 int getPositionReed(void); 00119 int getPositionReedRichtung(void); 00120 00121 void neuerBefehlssatz(void) { 00122 if (Befehle!=NULL) delete(Befehle); 00123 Befehle=new cListe(); 00124 } 00125 int verwirfBefehlssatz(void); 00127 int ladeBefehlssatz(int commandsettmp,QString prefix,QString posersetzer); 00129 int appendBefehlssatz(int commandsettmp,QString prefix,QString posersetzer); 00130 // cBefehl* getBefehl(int commandtmp=-1); 00131 // void naechsterBefehl(void); 00132 cListe* getBefehle(void); 00133 00134 cReedkontaktListe Reedkontakte; 00135 int commandset; 00136 cListe* Befehle; 00137 00138 void incLokStehengeblieben(void) { countLokStehengeblieben++; } 00139 void incLokKurzschluss(void) { countLokKurzschluss++; } 00140 void incReedkontaktAusgelassen(void) { countReedkontaktAusgelassen++; } 00141 void incReedkontaktUeberfahren(void) { countReedkontaktUeberfahren++; } 00142 int getLokKurzschluss(void) { return(countLokKurzschluss); } 00143 int getLokStehengeblieben(void) { return(countLokStehengeblieben); } 00144 int getReedkontaktAusgelassen(void) { return(countReedkontaktAusgelassen); } 00145 int getReedkontaktUeberfahren(void) { return(countReedkontaktUeberfahren); } 00146 void resetCounts(void) { 00147 countLokStehengeblieben=0; 00148 countLokKurzschluss=0; 00149 countReedkontaktAusgelassen=0; 00150 countReedkontaktUeberfahren=0; 00151 } 00152 00154 QString getComment(void) { return(comment); }; 00155 QString getCommClean(void) { return(commClean); }; 00156 QString getCommTrain(void) { return(commTrain); }; 00157 void setComment(QString tmp) { comment=tmp; }; 00158 void setCommClean(QString tmp) { commClean=tmp; }; 00159 void setCommTrain(QString tmp) { commTrain=tmp; }; 00160 void emitSignalSignals(void); 00161 private: 00162 int countLokStehengeblieben,countReedkontaktAusgelassen,countReedkontaktUeberfahren,countLokKurzschluss; 00163 bool rangiermodus; 00164 int trainid,traintype; 00165 int kontrolle,laenge; 00166 int geschwindigkeitkmh,richtung; 00167 int sollgeschwindigkeitkmh; 00168 int speedmin,kmhmin,speedslow,kmhslow,speedmod,kmhmod,speedfast,kmhfast,speedmax,kmhmax; 00169 int bwspeedmin,bwkmhmin,bwspeedslow,bwkmhslow,bwspeedmod,bwkmhmod,bwspeedfast,bwkmhfast,bwspeedmax,bwkmhmax; 00170 QString artikelnummer,bezeichnung,commandsetdescription; 00171 int positionReed,positionReedRichtung; 00172 QString comment,commTrain,commClean; 00173 00174 signals: 00175 void SignalLokPositionChanged(int,int,int,int,int); 00176 // alte Lok Position,neue Lok Position, neue Geschwindigkeit, neue Richtung 00177 00178 }; 00179 00180 #endif // CTRAIN_H