diff --git a/Images/connexion_rouge.png b/Images/connexion_rouge.png new file mode 100755 index 0000000..3e3ceb2 Binary files /dev/null and b/Images/connexion_rouge.png differ diff --git a/Images/connexion_vert.png b/Images/connexion_vert.png new file mode 100755 index 0000000..fc32e4e Binary files /dev/null and b/Images/connexion_vert.png differ diff --git a/ZT.pro b/ZT.pro index 0a7ac1c..c8ed766 100644 --- a/ZT.pro +++ b/ZT.pro @@ -115,7 +115,8 @@ SOURCES += \ sources/Modbus/ModbusRepository.cpp \ sources/Modbus/ModbusCCMgr.cpp \ sources/Modbus/ModbusTKTransport.cpp \ - sources/Stations/DuCollege.cpp + sources/Stations/DuCollege.cpp \ + sources/GuiElements/EthConnWidget.cpp HEADERS += \ sources/MainPanel.h \ @@ -230,7 +231,8 @@ HEADERS += \ sources/Modbus/ModbusCCMgr.h \ sources/Modbus/ModbusCCDefs.h \ sources/Modbus/ModbusTKTransport.h \ - sources/Stations/DuCollege.h + sources/Stations/DuCollege.h \ + sources/GuiElements/EthConnWidget.h #QMAKE_LIBDIR += ./ExtLib #QT += network diff --git a/sources/GuiElements/EthConnWidget.cpp b/sources/GuiElements/EthConnWidget.cpp new file mode 100644 index 0000000..064b4c1 --- /dev/null +++ b/sources/GuiElements/EthConnWidget.cpp @@ -0,0 +1,78 @@ +/******************************************************************************* +* * +* Société de Transports de Montréal. * +* 2013 * +* * +* Projet Zones Tests * +* * +* * +* * +*******************************************************************************/ +/* + Description: + Affiche un bitmap d'une DEL verte (allumée ou éteinte). + +*/ + +/* ************************************************************************** */ +/* Revision: +### 20131024 JFM + Verision d'origine. + +### YYYYMMDD Description du besoin ou du bug + Description du changement. + */ + + +#include "EthConnWidget.h" +#include + +CEthConnWidget::CEthConnWidget(QString Label,QGraphicsItem *Parent) +{ + + setParentItem(Parent); + mLabel = new QGraphicsTextItem(this); + mEthOnPixmap = new QGraphicsPixmapItem(this); + mEthONImage.load("./Images/connexion_vert.png"); + + mEthOffPixmap = new QGraphicsPixmapItem(this); + mEthOFFImage.load("./Images/connexion_rouge.png"); + + mLabel->setPlainText(Label); + mLabel->adjustSize(); + + EthOFF(); + + resize(25,25); + +} + +void CEthConnWidget::resizeEvent(QGraphicsSceneResizeEvent *event) +{ + Q_UNUSED(event) + + mEthOnPixmap->setPixmap(QPixmap().fromImage(mEthONImage).scaled(boundingRect().width(),boundingRect().height())); + mEthOffPixmap->setPixmap(QPixmap().fromImage(mEthOFFImage).scaled(boundingRect().width(),boundingRect().height())); + //mLabel->setPos((boundingRect().width()/2) - ((QFontMetrics(mLabel->font()).width(mLabel->toPlainText())/2)),boundingRect().height()-10); + mLabel->setPos((boundingRect().width()/2) - (mLabel->boundingRect().width()/2),mEthOnPixmap->boundingRect().bottom()-9); +} + +void CEthConnWidget::EthOFF() +{ + mEthOnPixmap->hide(); + mEthOffPixmap->show(); +} + +void CEthConnWidget::EthON() +{ + mEthOnPixmap->show(); + mEthOffPixmap->hide(); +} + +void CEthConnWidget::SetEth(bool ON) +{ + if(ON == true) + EthON(); + else + EthOFF(); +} diff --git a/sources/GuiElements/EthConnWidget.h b/sources/GuiElements/EthConnWidget.h new file mode 100644 index 0000000..36b1e17 --- /dev/null +++ b/sources/GuiElements/EthConnWidget.h @@ -0,0 +1,25 @@ +#ifndef ETHCONNWIDGET_H +#define ETHCONNWIDGET_H + +#include "GlobalDefine.h" +#include + +class CEthConnWidget : public QGraphicsWidget +{ + Q_OBJECT + +public: + CEthConnWidget(QString Label,QGraphicsItem *Parent = 0); + + QGraphicsTextItem *mLabel; + QImage mEthONImage,mEthOFFImage; + QGraphicsPixmapItem *mEthOnPixmap,*mEthOffPixmap; + + void EthON(); + void EthOFF(); + void SetEth(bool ON); + + virtual void resizeEvent(QGraphicsSceneResizeEvent *event); +}; + +#endif // ETHCONNWIDGET_H diff --git a/sources/GuiElements/StatusBar.cpp b/sources/GuiElements/StatusBar.cpp index 40f7e50..9e897d8 100644 --- a/sources/GuiElements/StatusBar.cpp +++ b/sources/GuiElements/StatusBar.cpp @@ -32,8 +32,9 @@ #include CStatusBar::CStatusBar(QGraphicsItem *Parent): - mCCModbusONOFF("",this), - mSEIModbusONOFF("",this) + mCCModbusONOFF("CC",this), + mSEIModbusONOFF("SEI",this), + mHistorienModbusONOFF("HIS",this) { setParentItem(Parent); @@ -46,17 +47,24 @@ CStatusBar::CStatusBar(QGraphicsItem *Parent): mZT1Status = mZT2Status = SB_ZT_INACTIVE_STATUS; mCCModbusState = SB_MODBUS_NOT_PRESENT; - mSEIModbusState = SB_MODBUS_NOT_PRESENT; + mSEIModbusState = SB_MODBUS_CONNECTED;//SB_MODBUS_NOT_PRESENT; + mHistoModbusState = SB_MODBUS_CONNECTED; mCCModbusONOFF.setParentItem(this); - mCCModbusONOFF.setPos(760,0); - mCCModbusONOFF.LedOFF(); + mCCModbusONOFF.setPos(730,0); + mCCModbusONOFF.EthOFF(); mCCModbusONOFF.hide(); mSEIModbusONOFF.setParentItem(this); - mSEIModbusONOFF.setPos(845,0); - mSEIModbusONOFF.LedOFF(); + mSEIModbusONOFF.setPos(765,0); + mSEIModbusONOFF.EthOFF(); mSEIModbusONOFF.hide(); + + mHistorienModbusONOFF.setParentItem(this); + mHistorienModbusONOFF.setPos(800,0); + mHistorienModbusONOFF.EthOFF(); + mHistorienModbusONOFF.hide(); + // QGraphicsRectItem *temprect = new QGraphicsRectItem(this); // temprect->setRect(boundingRect()); // temprect->show(); @@ -181,7 +189,7 @@ void CStatusBar::paint(QPainter *painter, const QStyleOptionGraphicsItem *option painter->drawText(TextRect, Qt::AlignLeft, Text); TextRect.adjust(painter->fontMetrics().width(Text),0,0,0); - if(mCCModbusState == SB_MODBUS_CONNECTED) + /* if(mCCModbusState == SB_MODBUS_CONNECTED) { painter->setPen(Qt::darkGreen); Text.clear(); @@ -217,7 +225,7 @@ void CStatusBar::paint(QPainter *painter, const QStyleOptionGraphicsItem *option TextRect.adjust(50,0,0,0); painter->drawText(TextRect, Qt::AlignLeft, Text); TextRect.adjust(painter->fontMetrics().width(Text),0,0,0); - } + }*/ } } @@ -255,12 +263,12 @@ unsigned int CStatusBar::SetCCModbusState(unsigned int State) mCCModbusState = State; if(State == SB_MODBUS_CONNECTED) { - mCCModbusONOFF.LedON(); + mCCModbusONOFF.EthON(); mCCModbusONOFF.show(); } else if(State == SB_MODBUS_DISCONNECTED) { - mCCModbusONOFF.LedOFF(); + mCCModbusONOFF.EthOFF(); mCCModbusONOFF.show(); } else if(State == SB_MODBUS_NOT_PRESENT) @@ -277,12 +285,12 @@ unsigned int CStatusBar::SetSEIModbusState(unsigned int State) mSEIModbusState = State; if(State == SB_MODBUS_CONNECTED) { - mSEIModbusONOFF.LedON(); + mSEIModbusONOFF.EthON(); mSEIModbusONOFF.show(); } else if(State == SB_MODBUS_DISCONNECTED) { - mSEIModbusONOFF.LedOFF(); + mSEIModbusONOFF.EthOFF(); mSEIModbusONOFF.show(); } else if(State == SB_MODBUS_NOT_PRESENT) @@ -293,3 +301,25 @@ unsigned int CStatusBar::SetSEIModbusState(unsigned int State) update(boundingRect()); return RET_OK; } + +unsigned int CStatusBar::SetHistorienModbusState(unsigned int State) +{ + mHistoModbusState = State; + if(State == SB_MODBUS_CONNECTED) + { + mHistorienModbusONOFF.EthON(); + mHistorienModbusONOFF.show(); + } + else if(State == SB_MODBUS_DISCONNECTED) + { + mHistorienModbusONOFF.EthOFF(); + mHistorienModbusONOFF.show(); + } + else if(State == SB_MODBUS_NOT_PRESENT) + { + mHistorienModbusONOFF.hide(); + } + + update(boundingRect()); + return RET_OK; +} diff --git a/sources/GuiElements/StatusBar.h b/sources/GuiElements/StatusBar.h index 68b65f4..eb65e1b 100644 --- a/sources/GuiElements/StatusBar.h +++ b/sources/GuiElements/StatusBar.h @@ -31,6 +31,7 @@ #include "GlobalDefine.h" #include #include "LedWidget.h" +#include "EthConnWidget.h" enum eZTStatus { @@ -61,13 +62,16 @@ public: unsigned int SetNbTriggers(unsigned int Value); unsigned int SetCCModbusState(unsigned int State); unsigned int SetSEIModbusState(unsigned int State); + unsigned int SetHistorienModbusState(unsigned int State); private: QString mZT1StatusString, mZT2StatusString; unsigned int mZT1Status, mZT2Status; unsigned int mNbTrainsPass, mNbTriggers; - unsigned int mCCModbusState, mSEIModbusState; - CLedWidget mCCModbusONOFF, mSEIModbusONOFF; + unsigned int mCCModbusState, mSEIModbusState, mHistoModbusState; + CEthConnWidget mCCModbusONOFF, mSEIModbusONOFF, mHistorienModbusONOFF; + //CLedWidget mCCModbusONOFF, mSEIModbusONOFF; + }; #endif // STATUSBAR_H