Configuration des paramètres réseau
+ Options de configuration de l'adresse IP du réseau exploitation. + Option d'activation du réseau Modbus CC
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Page offrant différentes option pour l'entretien de la ZT
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20131021 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
#include "ModbusSettingsPage.h"
|
||||
#include <QPainter>
|
||||
#include "GlobalDefine.h"
|
||||
#include <QDialog>
|
||||
#include <QMainWindow>
|
||||
#include "Zonetest.h"
|
||||
#include <QDateTime>
|
||||
#include <QFont>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QMessageBox>
|
||||
//#include <sys/time.h>
|
||||
#include "ZTLog.h"
|
||||
|
||||
|
||||
|
||||
|
||||
CModbusSettingsPage::CModbusSettingsPage(QGraphicsWidget *Parent)
|
||||
{
|
||||
Q_UNUSED(Parent)
|
||||
|
||||
|
||||
mProgramHandle = 0;
|
||||
|
||||
mBackgroundRect = new QGraphicsRectItem(boundingRect(), this);
|
||||
QBrush BackgroundBrush(QColor(245, 245, 255));
|
||||
mBackgroundRect->setBrush(BackgroundBrush);
|
||||
|
||||
QGraphicsTextItem *Title = new QGraphicsTextItem("Paramètres Modbus",this);
|
||||
QFont font;
|
||||
font.setPointSize(18);
|
||||
Title->setFont(font);
|
||||
Title->setPos(40,10);
|
||||
|
||||
mCancelButton = new CTextButtonWidget("Annuler");
|
||||
mCancelButton->setParentItem(this);
|
||||
mCancelButton->setPos(550,550);
|
||||
connect(mCancelButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
mApplyButton = new CTextButtonWidget("Appliquer");
|
||||
mApplyButton->setParentItem(this);
|
||||
mApplyButton->setPos(650,550);
|
||||
connect(mApplyButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
|
||||
QGraphicsProxyWidget *Proxy = new QGraphicsProxyWidget(this);
|
||||
QGraphicsTextItem *Dot = new QGraphicsTextItem(".",this);
|
||||
Dot->setFont(font);
|
||||
|
||||
|
||||
int IpSettingsPosx = 120, IpSettingsPosy = 200;
|
||||
Title = new QGraphicsTextItem("Adresse IP",this);
|
||||
font.setPointSize(16);
|
||||
Title->setFont(font);
|
||||
Title->setPos(IpSettingsPosx,IpSettingsPosy-35);
|
||||
|
||||
mIPChunk1 = new QSpinBox();
|
||||
Proxy->setWidget(mIPChunk1);
|
||||
Proxy->setPos(IpSettingsPosx,IpSettingsPosy);
|
||||
mIPChunk1->resize(70,30);
|
||||
mIPChunk1->setMinimum(0);
|
||||
mIPChunk1->setMaximum(255);
|
||||
IpSettingsPosx += 90;
|
||||
Dot->setPos(IpSettingsPosx-17,IpSettingsPosy-5);
|
||||
|
||||
Proxy = new QGraphicsProxyWidget(this);
|
||||
Dot = new QGraphicsTextItem(".",this);
|
||||
Dot->setFont(font);
|
||||
mIPChunk2 = new QSpinBox();
|
||||
Proxy->setWidget(mIPChunk2);
|
||||
Proxy->setPos(IpSettingsPosx,IpSettingsPosy);
|
||||
mIPChunk2->resize(70,30);
|
||||
mIPChunk2->setMinimum(0);
|
||||
mIPChunk2->setMaximum(255);
|
||||
IpSettingsPosx += 90;
|
||||
Dot->setPos(IpSettingsPosx-17,IpSettingsPosy-5);
|
||||
|
||||
Proxy = new QGraphicsProxyWidget(this);
|
||||
Dot = new QGraphicsTextItem(".",this);
|
||||
Dot->setFont(font);
|
||||
mIPChunk3 = new QSpinBox();
|
||||
Proxy->setWidget(mIPChunk3);
|
||||
Proxy->setPos(IpSettingsPosx,IpSettingsPosy);
|
||||
mIPChunk3->resize(70,30);
|
||||
mIPChunk3->setMinimum(0);
|
||||
mIPChunk3->setMaximum(255);
|
||||
IpSettingsPosx += 90;
|
||||
Dot->setPos(IpSettingsPosx-17,IpSettingsPosy - 5);
|
||||
|
||||
Proxy = new QGraphicsProxyWidget(this);
|
||||
mIPChunk4 = new QSpinBox();
|
||||
Proxy->setWidget(mIPChunk4);
|
||||
mIPChunk4->setMinimum(0);
|
||||
mIPChunk4->setMaximum(255);
|
||||
Proxy->setPos(IpSettingsPosx,IpSettingsPosy);
|
||||
mIPChunk4->resize(70,30);
|
||||
|
||||
Proxy = new QGraphicsProxyWidget(this);
|
||||
mUseModbusChkBox = new QCheckBox("Activer la communication Modbus avec la Commande Centralisée");
|
||||
Proxy->setWidget(mUseModbusChkBox);
|
||||
Proxy->setPos(100,100);
|
||||
|
||||
|
||||
|
||||
// mCalendarWidget = new QCalendarWidget();
|
||||
// Proxy->setWidget(mCalendarWidget);
|
||||
// Proxy->setPos(100,150);
|
||||
|
||||
QGraphicsRectItem *Frame = new QGraphicsRectItem(80,70,600,400,this);
|
||||
QPen FramePen;
|
||||
FramePen.setWidth(3);
|
||||
Frame->setPen(FramePen);
|
||||
|
||||
|
||||
// Title = new QGraphicsTextItem("Seuil Pneu de Guidage",this);
|
||||
// Title->setFont(font);
|
||||
// Title->setPos(270,400);
|
||||
// Frame = new QGraphicsRectItem(80,405,600,175,this);
|
||||
// Frame->setPen(FramePen);
|
||||
}
|
||||
|
||||
|
||||
void CModbusSettingsPage::resizeEvent(QGraphicsSceneResizeEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
mBackgroundRect->setRect(boundingRect());
|
||||
}
|
||||
|
||||
void CModbusSettingsPage::ButtonClicked(CTextButtonWidget *BtnPtr)
|
||||
{
|
||||
if(BtnPtr == mCancelButton)
|
||||
{
|
||||
mProgramHandle->CloseModbusSettingsPage();
|
||||
hide();
|
||||
}
|
||||
else if(BtnPtr == mApplyButton)
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Redémarrage requis");
|
||||
msgBox.setInformativeText("Les paramètres modbus ont été changés\nVoulez-vous vraiment redémarrer l'ordinateur ZT?");
|
||||
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
||||
msgBox.setDefaultButton(QMessageBox::Cancel);
|
||||
int ret = msgBox.exec();
|
||||
|
||||
if(ret == QMessageBox::Ok)
|
||||
{
|
||||
qint32 Address = 0;
|
||||
Address = (mIPChunk1->value() & 0x000000FF);
|
||||
Address <<= 8;
|
||||
Address |= (mIPChunk2->value() & 0x000000FF);
|
||||
Address <<= 8;
|
||||
Address |= (mIPChunk3->value() & 0x000000FF);
|
||||
Address <<= 8;
|
||||
Address |= (mIPChunk4->value() & 0x000000FF);
|
||||
QHostAddress IPAddress(Address);
|
||||
|
||||
bool UseModbus = (mUseModbusChkBox->checkState() == Qt::Checked);
|
||||
|
||||
QString LogEntry = QString("Changement des paramètres Modbus CC -> Modbus Activé : %1, Adresse IP %2").arg(UseModbus).arg(IPAddress.toString().toAscii().data());
|
||||
CZTLog::instance()->AddLogString(LogEntry,true);
|
||||
|
||||
mProgramHandle->ModbusSettingsChangedReboot(UseModbus,IPAddress);
|
||||
// mProgramHandle->CloseModbusSettingsPage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CModbusSettingsPage::showEvent(QShowEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
}
|
||||
|
||||
int CModbusSettingsPage::SetActualSettings(bool UseModbus, QHostAddress CCHostAdd)
|
||||
{
|
||||
mUseModbusChkBox->setChecked(UseModbus);
|
||||
|
||||
qint32 add = CCHostAdd.toIPv4Address();
|
||||
mIPChunk4->setValue(add & 0x000000FF);
|
||||
add >>= 8;
|
||||
mIPChunk3->setValue(add & 0x000000FF);
|
||||
add >>= 8;
|
||||
mIPChunk2->setValue(add & 0x000000FF);
|
||||
add >>= 8;
|
||||
mIPChunk1->setValue(add & 0x000000FF);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
//Grab the mouse if the user clicks outside buttons
|
||||
void CModbusSettingsPage::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
}
|
||||
void CModbusSettingsPage::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20171124 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
#ifndef MODBUSSETTINGSPAGE_H
|
||||
#define MODBUSSETTINGSPAGE_H
|
||||
|
||||
#include "GlobalDefine.h"
|
||||
#include <QGraphicsWidget>
|
||||
#include "Guipage.h"
|
||||
#include <QString>
|
||||
#include "PushButton.h"
|
||||
#include "ZTSimulator.h"
|
||||
#include "TextButtonWidget.h"
|
||||
#include <QCheckBox>
|
||||
#include <QLineEdit>
|
||||
#include <QSpinBox>
|
||||
|
||||
|
||||
class CZoneTest;
|
||||
|
||||
class CModbusSettingsPage : public CGuiPage
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CModbusSettingsPage(QGraphicsWidget *Parent = 0);
|
||||
|
||||
CZoneTest *mProgramHandle;
|
||||
|
||||
int SetActualSettings(bool UseModbus, QHostAddress CCHostAdd);
|
||||
|
||||
virtual void resizeEvent(QGraphicsSceneResizeEvent *event);
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
||||
virtual void showEvent ( QShowEvent * event );
|
||||
|
||||
|
||||
private:
|
||||
QGraphicsRectItem *mBackgroundRect;
|
||||
CTextButtonWidget *mCancelButton, *mApplyButton;
|
||||
QSpinBox *mIPChunk1, *mIPChunk2, *mIPChunk3, *mIPChunk4;
|
||||
QString mCurIP;
|
||||
QCheckBox *mUseModbusChkBox;
|
||||
|
||||
|
||||
|
||||
public slots:
|
||||
void ButtonClicked(CTextButtonWidget *);
|
||||
|
||||
};
|
||||
|
||||
#endif // GENERALSETTINGSPAGE_H
|
||||
@@ -77,15 +77,21 @@ COptionsPage::COptionsPage(QGraphicsWidget *Parent)
|
||||
mZTGeneralSettingsButton->setPos(50,180);
|
||||
connect(mZTGeneralSettingsButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
mModbusSettingsButton = new CTextButtonWidget("Modbus");
|
||||
mModbusSettingsButton->setParentItem(this);
|
||||
mModbusSettingsButton->setPos(50,220);
|
||||
connect(mModbusSettingsButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
|
||||
mZTLogViewButton = new CTextButtonWidget("Fichier LOG");
|
||||
mZTLogViewButton->setParentItem(this);
|
||||
mZTLogViewButton->setPos(50,220);
|
||||
mZTLogViewButton->setPos(50,260);
|
||||
connect(mZTLogViewButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
|
||||
mCancelButton = new CTextButtonWidget("Fermer");
|
||||
mCancelButton->setParentItem(this);
|
||||
mCancelButton->setPos(50,260);
|
||||
mCancelButton->setPos(50,300);
|
||||
connect(mCancelButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
|
||||
|
||||
}
|
||||
@@ -119,6 +125,10 @@ void COptionsPage::ButtonClicked(CTextButtonWidget *BtnPtr)
|
||||
{
|
||||
mProgramHandle->OpenGeneralSettingsPage();
|
||||
}
|
||||
else if(BtnPtr == mModbusSettingsButton)
|
||||
{
|
||||
mProgramHandle->OpenModbusSettingsPage();
|
||||
}
|
||||
else if(BtnPtr == mZTLogViewButton)
|
||||
{
|
||||
mProgramHandle->ShowZTLogViewerPage();
|
||||
|
||||
@@ -61,8 +61,9 @@ private:
|
||||
CTextButtonWidget *mZTMaintenanceModeButton;
|
||||
CTextButtonWidget *mZTEngineeringButton;
|
||||
CTextButtonWidget *mZTGeneralSettingsButton;
|
||||
CTextButtonWidget *mZTLogViewButton;
|
||||
CTextButtonWidget *mCancelButton;
|
||||
CTextButtonWidget *mModbusSettingsButton;
|
||||
CTextButtonWidget *mZTLogViewButton;
|
||||
CTextButtonWidget *mCancelButton;
|
||||
|
||||
|
||||
public slots:
|
||||
|
||||
Reference in New Issue
Block a user