qrailway 0.9

cTrain.h

gehe zur Dokumentation dieser Datei
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