qrailway 0.9
|
00001 #ifndef CKONNEKTOR_H 00002 #define CKONNEKTOR_H 00003 00004 #include "cConstants.h" 00005 #include "ui_qrailwayMainWindow.h" 00006 #include <QSqlQuery> 00007 #include <QDateTime> 00008 #include <QFile> 00009 #include <QTextStream> 00010 #include <QSettings> 00011 #include <QGraphicsItem> 00012 #include <QtGui> 00013 00014 class cSektion; 00015 00017 00018 class cKonnektor : public QObject, public QGraphicsItem 00019 { 00020 Q_OBJECT 00021 public: 00023 cKonnektor(void); 00025 ~cKonnektor(void); 00027 void cDebug(int prioritaet,const QString & meldung); 00029 void save(void); 00031 void changeDir(void); 00033 void setSecs(int secLtemp,int secRtemp,int secMtemp,int secXtemp); 00035 void setcontype(const QString & contypetemp); 00037 void setid(int conidtemp); 00039 void setZiel(const QString & conzieltemp); 00041 void setZielRichtung(const QString & conzieltemp); 00043 void setStatus(bool linkstemp,bool rechtstemp=FALSE,int adressetemp=0,int subadressetemp=0); 00045 void updateToolTip(void); 00047 00050 int getStatus(void); 00052 void setFahrplanungStatus(bool fahrplanungtemp); 00054 bool getFahrplanungStatus(void); 00056 bool reserviert(void); 00058 int getreserviert(void); 00060 void setBeschreibung(const QString & beschreibungtemp); 00062 void adjustShape(void); 00064 int getTriggerKmh(void); 00066 void setSektionL(cSektion *csekltemp); 00068 void setSektionR(cSektion *csekrtemp); 00070 void setSektionM(cSektion *csekmtemp); 00072 void setSektionX(cSektion *csekxtemp); 00074 void setxy(double xtemp,double ytemp); 00076 double getx(void); 00078 double gety(void); 00080 int type() const; 00082 int getL(void) { return secL; }; 00084 int getR(void) { return secR; }; 00086 int getM(void) { return secM; }; 00088 int getX(void) { return secX; }; 00090 int getid(void) { return conid; }; 00092 int getAdresse(void) { return adresse; }; 00094 int getSubAdresse(void) { return subadresse; }; 00096 int getXAdresse(void) { return xadresse; }; 00098 int getXSubAdresse(void) { return xsubadresse; }; 00100 int getRegler(void); 00102 int getTrainRichtung(void); 00104 QString getBeschreibung(void) { return beschreibung; }; 00106 QString getType(void) { return contype; }; 00108 QString getZiel(void) { return conziel; }; 00110 QString getRichtung(bool nurueberpruefen=FALSE); 00112 void setRichtungPruefen(QString pruefrichtung); 00114 void setHardware(int tempAdresse,int tempSubadresse); 00115 void setxHardware(int tempAdresse,int tempSubadresse); 00117 bool Links(void) { if ((rechts)&&(!links)&&(!fehler)) return(TRUE); return(FALSE); }; 00119 bool Rechts(void) { if ((!rechts)&&(links)&&(!fehler)) return(TRUE); return(FALSE); }; 00121 bool LinksZiel(void) { if (conziel==dirLeft) return(TRUE); return(FALSE); }; 00123 bool RechtsZiel(void) { if (conziel==dirRight) return(TRUE); return(FALSE); }; 00125 bool MitteZiel(void) { if (conziel==dirMitte) return(TRUE); return(FALSE); }; 00127 void setDisplayInfo(bool displayInfo); 00129 bool ist(QString was); 00131 void setParameter(QString paramtemp); 00133 void setZeitAusgeloest(QDateTime zeittemp); 00135 QDateTime getZeitAusgeloest(void) { return(zeit); }; 00137 void setZielGespeichert(const QString & conzieltemp); 00139 bool gespeichertLinks(void); 00141 bool gespeichertRechts(void); 00143 bool gespeichertMitte(void); 00145 cSektion* DEBUGgetSecL(void) { return(csekl); }; 00147 cSektion* DEBUGgetSecM(void) { return(csekm); }; 00149 cSektion* DEBUGgetSecR(void) { return(csekr); }; 00151 cSektion* DEBUGgetSecX(void) { return(csekx); }; 00153 void setTriggerBefehl(int triggerreglertmp,int triggergeschwindigkeittmp,int triggerrichtungtmp,int triggerbeschleunigungtmp,int triggergeschwindigkeitkmhtmp); 00155 bool istTriggerBefehl(int triggerreglertmp,int triggergeschwindigkeittmp,int triggerrichtungtmp,int triggerbeschleunigungtmp,int triggergeschwindigkeitkmhtmp); 00157 int getSpeedAdjustment(int richtung) { 00158 if (richtung==0) return(speedAdjust0); else return(speedAdjust1); 00159 } 00161 int getMaxKmh(int richtung) { 00162 if (richtung==0) return(maxKmh0); else return(maxKmh1); 00163 } 00165 void incLokStehengeblieben(void) { countLokStehengeblieben++; updateToolTip(); }; 00167 void incLokKurzschluss(void) { countLokKurzschluss++; updateToolTip(); } 00169 void incReedkontaktAktiviert(void) { countReedkontaktAktiviert++; updateToolTip(); }; 00171 void incReedkontaktFehler(void) { countReedkontaktFehler++; updateToolTip(); }; 00173 void incReedkontaktUeberfahren(void) { countReedkontaktUeberfahren++; updateToolTip(); }; 00175 void incWeicheFehler(void) { countWeicheFehler++; updateToolTip(); }; 00177 void incWeicheGeschaltet(void) { countWeicheGeschaltet++; updateToolTip(); }; 00179 int getLokKurzschluss(void) { return(countLokKurzschluss); } 00181 int getReedkontaktFehler(void) { return(countReedkontaktFehler); }; 00183 int getLokStehengeblieben(void) { return(countLokStehengeblieben); }; 00185 int getReedkontaktAktiviert(void) { return(countReedkontaktAktiviert); }; 00187 int getReedkontaktUeberfahren(void) { return(countReedkontaktUeberfahren); }; 00189 int getWeicheFehler(void) { return(countWeicheFehler); }; 00191 int getWeicheGeschaltet(void) { return(countWeicheGeschaltet); }; 00193 void setLokKurzschluss(int tmp) { countLokKurzschluss=tmp; updateToolTip(); }; 00195 void setLokStehengeblieben(int tmp) { countLokStehengeblieben=tmp; updateToolTip(); }; 00197 void setReedkontaktAktiviert(int tmp) { countReedkontaktAktiviert=tmp; updateToolTip(); }; 00199 void setReedkontaktFehler(int tmp) { countReedkontaktFehler=tmp; updateToolTip(); }; 00201 void setReedkontaktUeberfahren(int tmp) { countReedkontaktUeberfahren=tmp; updateToolTip(); }; 00203 void setWeicheFehler(int tmp) { countWeicheFehler=tmp; updateToolTip(); }; 00205 void setWeicheGeschaltet(int tmp) { countWeicheGeschaltet=tmp; updateToolTip(); }; 00207 void resetCounts(void); 00209 QRectF boundingRect() const; 00211 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); 00213 int bahnhof; 00215 void emitSignalSignals(void); 00217 void setTrainInfo(int trainidtmp,int traingeschwtmp,int reglerrichtmp,bool forcecheck=FALSE); 00218 signals: 00220 void SignalKonnektorWeichenStellung(int,int); 00222 void SignalKonnektorGruen(int,int); 00223 private: 00225 int countLokStehengeblieben; 00227 int countLokKurzschluss; 00229 int countReedkontaktAktiviert; 00231 int countReedkontaktFehler; 00233 int countReedkontaktUeberfahren; 00235 int countWeicheFehler; 00237 int countWeicheGeschaltet; 00238 // Der Canvas zu dem der Punkt gehoert (der "parent"). 00239 QGraphicsScene *MeinCanvas; 00241 QGraphicsTextItem *TextOben; 00243 QGraphicsTextItem *TextUnten; 00245 bool nichtaktiv; 00247 bool links; 00249 bool rechts; 00251 bool fehler; 00253 bool xlinks; 00255 bool xrechts; 00257 bool xfehler; 00259 bool linkspruefen; 00261 bool rechtspruefen; 00263 bool xlinkspruefen; 00265 bool xrechtspruefen; 00267 QString beschreibung; 00269 QString contype; 00271 QString conziel; 00273 QString conrichtung; 00275 QString conzielgespeichert; 00277 QString parameter; 00279 QDateTime zeit; 00281 int secL; 00283 int secR; 00285 int secM; 00287 int secX; 00289 int conid; 00291 cSektion *csekl; 00293 cSektion *csekr; 00295 cSektion *csekm; 00297 cSektion *csekx; 00299 int adresse; 00301 int subadresse; 00303 int xadresse; 00305 int xsubadresse; 00307 int sechwnr; 00309 int geschwindigkeitkmh; 00311 bool anklickbar; 00313 bool fahrplanung; 00315 int triggerregler; 00317 int triggergeschwindigkeit; 00319 int triggerrichtung; 00321 int triggerbeschleunigung; 00323 int triggergeschwindigkeitkmh; 00325 int triggerbefehlstatus; 00327 QColor farbeFehler; 00329 QColor farbeVerbinder; 00331 QColor farbeWeiche; 00333 QColor farbeMesspunkt; 00335 QColor farbeFahrplanungAktiv; 00337 QColor farbeFahrplanungInaktiv; 00339 QColor farbeReedAktiv; 00341 QColor farbeReedInaktiv; 00343 QColor myColor; 00345 double groesseFahrplanung; 00347 double groesseVerbinder; 00349 double groesse; 00351 double groesseHelper; 00353 double groesseBeschriftung; 00355 double mySize; 00357 double myX; 00359 double myY; 00361 double myZ; 00363 int myRegler; 00365 QRadialGradient *myGradient; 00367 int speedAdjust0; 00369 int speedAdjust1; 00371 int maxKmh0; 00373 int maxKmh1; 00375 int trainid; 00377 int traingeschwindigkeit; 00379 int reglerrichtung; 00381 int gruen0; 00383 int gruen1; 00384 }; 00385 00386 #include "cSektion.h" 00387 00388 #endif // CKONNEKTOR_H