qrailway 0.9

cKonnektor.h

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