Dev outil historien
This commit is contained in:
parent
9baf9f8d95
commit
4daaf6a3fc
BIN
Exec/D3Dcompiler_47.dll
Normal file
BIN
Exec/D3Dcompiler_47.dll
Normal file
Binary file not shown.
1
Exec/IP.txt
Normal file
1
Exec/IP.txt
Normal file
@ -0,0 +1 @@
|
||||
192.168.50.110
|
||||
BIN
Exec/OutilModbus.exe
Normal file
BIN
Exec/OutilModbus.exe
Normal file
Binary file not shown.
BIN
Exec/Qt5Core.dll
Normal file
BIN
Exec/Qt5Core.dll
Normal file
Binary file not shown.
BIN
Exec/Qt5Gui.dll
Normal file
BIN
Exec/Qt5Gui.dll
Normal file
Binary file not shown.
BIN
Exec/Qt5Network.dll
Normal file
BIN
Exec/Qt5Network.dll
Normal file
Binary file not shown.
BIN
Exec/Qt5Svg.dll
Normal file
BIN
Exec/Qt5Svg.dll
Normal file
Binary file not shown.
BIN
Exec/Qt5Widgets.dll
Normal file
BIN
Exec/Qt5Widgets.dll
Normal file
Binary file not shown.
BIN
Exec/bearer/qgenericbearer.dll
Normal file
BIN
Exec/bearer/qgenericbearer.dll
Normal file
Binary file not shown.
BIN
Exec/iconengines/qsvgicon.dll
Normal file
BIN
Exec/iconengines/qsvgicon.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qgif.dll
Normal file
BIN
Exec/imageformats/qgif.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qicns.dll
Normal file
BIN
Exec/imageformats/qicns.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qico.dll
Normal file
BIN
Exec/imageformats/qico.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qjpeg.dll
Normal file
BIN
Exec/imageformats/qjpeg.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qsvg.dll
Normal file
BIN
Exec/imageformats/qsvg.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qtga.dll
Normal file
BIN
Exec/imageformats/qtga.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qtiff.dll
Normal file
BIN
Exec/imageformats/qtiff.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qwbmp.dll
Normal file
BIN
Exec/imageformats/qwbmp.dll
Normal file
Binary file not shown.
BIN
Exec/imageformats/qwebp.dll
Normal file
BIN
Exec/imageformats/qwebp.dll
Normal file
Binary file not shown.
BIN
Exec/images/green-led-off-md.png
Normal file
BIN
Exec/images/green-led-off-md.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
Exec/images/green-led-on-md.png
Normal file
BIN
Exec/images/green-led-on-md.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
Exec/libEGL.dll
Normal file
BIN
Exec/libEGL.dll
Normal file
Binary file not shown.
BIN
Exec/libGLESv2.dll
Normal file
BIN
Exec/libGLESv2.dll
Normal file
Binary file not shown.
BIN
Exec/libgcc_s_seh-1.dll
Normal file
BIN
Exec/libgcc_s_seh-1.dll
Normal file
Binary file not shown.
BIN
Exec/libstdc++-6.dll
Normal file
BIN
Exec/libstdc++-6.dll
Normal file
Binary file not shown.
BIN
Exec/libwinpthread-1.dll
Normal file
BIN
Exec/libwinpthread-1.dll
Normal file
Binary file not shown.
BIN
Exec/opengl32sw.dll
Normal file
BIN
Exec/opengl32sw.dll
Normal file
Binary file not shown.
BIN
Exec/platforms/qwindows.dll
Normal file
BIN
Exec/platforms/qwindows.dll
Normal file
Binary file not shown.
BIN
Exec/styles/qwindowsvistastyle.dll
Normal file
BIN
Exec/styles/qwindowsvistastyle.dll
Normal file
Binary file not shown.
BIN
Exec/translations/qt_ar.qm
Normal file
BIN
Exec/translations/qt_ar.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_bg.qm
Normal file
BIN
Exec/translations/qt_bg.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_ca.qm
Normal file
BIN
Exec/translations/qt_ca.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_cs.qm
Normal file
BIN
Exec/translations/qt_cs.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_da.qm
Normal file
BIN
Exec/translations/qt_da.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_de.qm
Normal file
BIN
Exec/translations/qt_de.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_en.qm
Normal file
BIN
Exec/translations/qt_en.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_es.qm
Normal file
BIN
Exec/translations/qt_es.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_fi.qm
Normal file
BIN
Exec/translations/qt_fi.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_fr.qm
Normal file
BIN
Exec/translations/qt_fr.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_gd.qm
Normal file
BIN
Exec/translations/qt_gd.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_he.qm
Normal file
BIN
Exec/translations/qt_he.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_hu.qm
Normal file
BIN
Exec/translations/qt_hu.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_it.qm
Normal file
BIN
Exec/translations/qt_it.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_ja.qm
Normal file
BIN
Exec/translations/qt_ja.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_ko.qm
Normal file
BIN
Exec/translations/qt_ko.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_lv.qm
Normal file
BIN
Exec/translations/qt_lv.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_pl.qm
Normal file
BIN
Exec/translations/qt_pl.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_ru.qm
Normal file
BIN
Exec/translations/qt_ru.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_sk.qm
Normal file
BIN
Exec/translations/qt_sk.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_uk.qm
Normal file
BIN
Exec/translations/qt_uk.qm
Normal file
Binary file not shown.
BIN
Exec/translations/qt_zh_TW.qm
Normal file
BIN
Exec/translations/qt_zh_TW.qm
Normal file
Binary file not shown.
575
Makefile.Debug
575
Makefile.Debug
File diff suppressed because one or more lines are too long
575
Makefile.Release
575
Makefile.Release
File diff suppressed because one or more lines are too long
@ -35,7 +35,10 @@ SOURCES += \
|
||||
Sources/ZTAlarmGenerator.cpp \
|
||||
Sources/ZTAlarmGeneratorPage.cpp \
|
||||
Sources/ZTAlarms.cpp \
|
||||
Sources/ModbusZTMaster.cpp
|
||||
Sources/ModbusZTMaster.cpp \
|
||||
Sources/HistorianPage.cpp \
|
||||
Sources/ModbusHistorienMaster.cpp \
|
||||
Sources/HistorienData.cpp
|
||||
|
||||
HEADERS += \
|
||||
Sources/MainWindow.h \
|
||||
@ -58,14 +61,19 @@ HEADERS += \
|
||||
Sources/ZTAlarmGenerator.h \
|
||||
Sources/ZTAlarmGeneratorPage.h \
|
||||
Sources/ZTAlarms.h \
|
||||
Sources/ModbusZTMaster.h
|
||||
Sources/ModbusZTMaster.h \
|
||||
Sources/HistorianPage.h \
|
||||
Sources/ModbusHistorienMaster.h \
|
||||
Sources/HistorienData.h \
|
||||
Sources/PIHistorianDefs.h
|
||||
|
||||
FORMS += \
|
||||
Sources/CModbusPage.ui \
|
||||
Sources/MainPage.ui \
|
||||
Sources/LazerProbeSimPage.ui \
|
||||
Sources/SEIModbusPage.ui \
|
||||
Sources/ZTAlarmGeneratorPage.ui
|
||||
Sources/ZTAlarmGeneratorPage.ui \
|
||||
Sources/HistorianPage.ui
|
||||
|
||||
DEFINES -= Q_OS_UNIX
|
||||
|
||||
|
||||
@ -5,6 +5,9 @@
|
||||
#define RET_OK 1
|
||||
#define RET_ERROR 0
|
||||
|
||||
//#define VERSION_FORMATION_SEI
|
||||
|
||||
|
||||
//#define MODBUS_CC_ALARM_REG_START_ADDRESS 2000
|
||||
//#define MODBUS_CC_TC_REG_START_ADDRESS 3000
|
||||
|
||||
|
||||
@ -1,14 +1,181 @@
|
||||
#include "HistorianPage.h"
|
||||
#include "ui_HistorianPage.h"
|
||||
#include "HistorienData.h"
|
||||
#include "ModbusHistorienMaster.h"
|
||||
|
||||
CHistorianPage::CHistorianPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::CHistorianPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
QTreeWidgetItem *Item = new QTreeWidgetItem(QStringList()<<"ZT1");
|
||||
ui->mHistorianDataTreeWidget->setColumnCount(3);
|
||||
ui->mHistorianDataTreeWidget->setHeaderItem(new QTreeWidgetItem(QStringList()<<"Registre"<<"Description"<<"Valeur"));
|
||||
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b0")<<"Détection FN en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b1")<<"Détection PP en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b2")<<"Détection PG en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b3")<<"Détection PP ZT2 en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b4")<<"Mode entretien activé"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b5")<<"Santé lien HPC"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b6")<<"Santé lien SEI"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b7")<<"ZT1 en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2000/b8")<<"ZT2 en service"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2001")<<"Calibration pneu de guidage"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2002")<<"Date démarrage ZT année"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2003")<<"Date démarrage ZT mois"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2004")<<"Date démarrage ZT jour"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2005")<<"Heure démarrage ZT heure"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2006")<<"Heure démarrage ZT minutes"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2007")<<"Heure démarrage ZT secondes"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2008")<<"Nb passages total"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2009")<<"Nb déclenchements total"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2010")<<"Nb passages aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2011")<<"Nb déclenchements aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2012")<<"Nb décl. FN aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2013")<<"Nb décl. PPI aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2014")<<"Nb décl. PPE aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2015")<<"Nb décl. PG ajourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2016")<<"Nb décl. PPI ZT2 aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2017")<<"Nb décl. PPE ZT2 aujourd'hui"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2018")<<"Date dernier passage année"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2019")<<"Date dernier passage mois"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2020")<<"Date dernier passage jour"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2021")<<"Heure dernier passage heure"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2022")<<"Heure dernier passage minutes"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2023")<<"Heure dernier passage secondes"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2024")<<"Zone franchie (ZT1 = 1, ZT2 = 2)"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2025")<<"Nb déclenchement lors du passage"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2026")<<"Rang dernier passage PPI 1"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2027")<<"Rang dernier passage PPI 2"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2028")<<"Rang dernier passage PPI 3"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2029")<<"Rang dernier passage PPI 4"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2030")<<"Rang dernier passage PPE 1"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2032")<<"Rang dernier passage PPE 2"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2032")<<"Rang dernier passage PPE 3"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2033")<<"Rang dernier passage PPE 4"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2034")<<"Rang dernier passage PG 1"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2035")<<"Rang dernier passage PG 2"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2036")<<"Rang dernier passage PG 3"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2037")<<"Rang dernier passage PG 4"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2038")<<"Rang dernier passage FN 1"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2039")<<"Rang dernier passage FN 2"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2040")<<"Rang dernier passage FN 3"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2041")<<"Rang dernier passage FN 4"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2042")<<"Erreur comptage"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2043")<<"Panne équipement"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2044")<<"Type MR (63,73,10)"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2045")<<"Identification du train - élément 1"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2046")<<"Identification du train - élément 2"<<"---"));
|
||||
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("2047")<<"Identification du train - élément 3"<<"---"));
|
||||
|
||||
|
||||
|
||||
ui->mHistorianDataTreeWidget->insertTopLevelItem(0,Item);
|
||||
ui->mHistorianDataTreeWidget->expandAll();
|
||||
ui->mHistorianDataTreeWidget->resizeColumnToContents(0);
|
||||
ui->mHistorianDataTreeWidget->resizeColumnToContents(1);
|
||||
ui->mHistorianDataTreeWidget->resizeColumnToContents(2);
|
||||
|
||||
connect(ui->mConnectBtn,&QPushButton::clicked,this,&CHistorianPage::ConnectButtonPressed);
|
||||
|
||||
|
||||
|
||||
mProgramHandle = 0;
|
||||
}
|
||||
|
||||
CHistorianPage::~CHistorianPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
int CHistorianPage::UpdateDataTable(CHistorienData *Data)
|
||||
{
|
||||
QTreeWidgetItem* Item = ui->mHistorianDataTreeWidget->topLevelItem(0);
|
||||
|
||||
Item->child(0)->setText(2,QString("%1").arg(Data->mFNEnabled));
|
||||
Item->child(1)->setText(2,QString("%1").arg(Data->mPPEnabled));
|
||||
Item->child(2)->setText(2,QString("%1").arg(Data->mPGEnabled));
|
||||
Item->child(3)->setText(2,QString("%1").arg(Data->mPPZT2Enabled));
|
||||
Item->child(4)->setText(2,QString("%1").arg(Data->mMaintenanceMode));
|
||||
Item->child(5)->setText(2,QString("%1").arg(Data->mHPCHealth));
|
||||
Item->child(6)->setText(2,QString("%1").arg(Data->mSEIHealth));
|
||||
Item->child(7)->setText(2,QString("%1").arg(Data->mZT1Enabled));
|
||||
Item->child(8)->setText(2,QString("%1").arg(Data->mZT2Enabled));
|
||||
Item->child(9)->setText(2,QString("%1").arg(Data->mCalibPG));
|
||||
Item->child(10)->setText(2,QString("%1").arg(Data->mBootDateYr));
|
||||
Item->child(11)->setText(2,QString("%1").arg(Data->mBootDateMonth));
|
||||
Item->child(12)->setText(2,QString("%1").arg(Data->mBootDateDay));
|
||||
Item->child(13)->setText(2,QString("%1").arg(Data->mBootDateHour));
|
||||
Item->child(14)->setText(2,QString("%1").arg(Data->mBootDateMinutes));
|
||||
Item->child(15)->setText(2,QString("%1").arg(Data->mBootDateSeconds));
|
||||
Item->child(16)->setText(2,QString("%1").arg(Data->mTotalTrains));
|
||||
Item->child(17)->setText(2,QString("%1").arg(Data->mTotalDetections));
|
||||
Item->child(18)->setText(2,QString("%1").arg(Data->mTrainsToday));
|
||||
Item->child(19)->setText(2,QString("%1").arg(Data->mDetectToday));
|
||||
Item->child(20)->setText(2,QString("%1").arg(Data->mFNDetectToday));
|
||||
Item->child(21)->setText(2,QString("%1").arg(Data->mPPIDetectToday));
|
||||
Item->child(22)->setText(2,QString("%1").arg(Data->mPPEDetectToday));
|
||||
Item->child(23)->setText(2,QString("%1").arg(Data->mPGDetectToday));
|
||||
Item->child(24)->setText(2,QString("%1").arg(Data->mPPIZT2DetectToday));
|
||||
Item->child(25)->setText(2,QString("%1").arg(Data->mPPEZT2DetectToday));
|
||||
Item->child(26)->setText(2,QString("%1").arg(Data->mLastTrainYear));
|
||||
Item->child(27)->setText(2,QString("%1").arg(Data->mLastTrainMonth));
|
||||
Item->child(28)->setText(2,QString("%1").arg(Data->mLastTrainDay));
|
||||
Item->child(29)->setText(2,QString("%1").arg(Data->mLastTrainHour));
|
||||
Item->child(30)->setText(2,QString("%1").arg(Data->mLastTrainMinutes));
|
||||
Item->child(31)->setText(2,QString("%1").arg(Data->mLastTrainSeconds));
|
||||
Item->child(32)->setText(2,QString("%1").arg(Data->mLastZone));
|
||||
Item->child(33)->setText(2,QString("%1").arg(Data->mNbDetectLasTrain));
|
||||
Item->child(34)->setText(2,QString("%1").arg(Data->mLastTrainPPI1));
|
||||
Item->child(35)->setText(2,QString("%1").arg(Data->mLastTrainPPI2));
|
||||
Item->child(36)->setText(2,QString("%1").arg(Data->mLastTrainPPI3));
|
||||
Item->child(37)->setText(2,QString("%1").arg(Data->mLastTrainPPI4));
|
||||
Item->child(38)->setText(2,QString("%1").arg(Data->mLastTrainPPE1));
|
||||
Item->child(39)->setText(2,QString("%1").arg(Data->mLastTrainPPE2));
|
||||
Item->child(40)->setText(2,QString("%1").arg(Data->mLastTrainPPE3));
|
||||
Item->child(41)->setText(2,QString("%1").arg(Data->mLastTrainPPE4));
|
||||
Item->child(42)->setText(2,QString("%1").arg(Data->mLastTrainPG1));
|
||||
Item->child(43)->setText(2,QString("%1").arg(Data->mLastTrainPG2));
|
||||
Item->child(44)->setText(2,QString("%1").arg(Data->mLastTrainPG3));
|
||||
Item->child(45)->setText(2,QString("%1").arg(Data->mLastTrainPG4));
|
||||
Item->child(46)->setText(2,QString("%1").arg(Data->mLastTrainFN1));
|
||||
Item->child(47)->setText(2,QString("%1").arg(Data->mLastTrainFN2));
|
||||
Item->child(48)->setText(2,QString("%1").arg(Data->mLastTrainFN3));
|
||||
Item->child(49)->setText(2,QString("%1").arg(Data->mLastTrainFN4));
|
||||
Item->child(50)->setText(2,QString("%1").arg(Data->mLastTrainCountErr));
|
||||
Item->child(51)->setText(2,QString("%1").arg(Data->mLastTrainPEQ));
|
||||
Item->child(52)->setText(2,QString("%1").arg(Data->mLastTrainType));
|
||||
Item->child(53)->setText(2,QString("%1").arg(Data->mLastTrainCompo1));
|
||||
Item->child(54)->setText(2,QString("%1").arg(Data->mLastTrainCompo2));
|
||||
Item->child(55)->setText(2,QString("%1").arg(Data->mLastTrainCompo3));
|
||||
}
|
||||
|
||||
void CHistorianPage::ConnectButtonPressed()
|
||||
{
|
||||
QString IP = ui->mZTIPAddressLineEdit->text();
|
||||
int Port = ui->mZTPortLineEdit->text().toInt();
|
||||
|
||||
if(ui->mConnectBtn->text() == "Déconnecter")
|
||||
{
|
||||
mProgramHandle->DisconnectFromZTRequest();
|
||||
}
|
||||
else
|
||||
{
|
||||
mProgramHandle->ConnectToZTRequest(IP,Port);
|
||||
}
|
||||
}
|
||||
|
||||
int CHistorianPage::HistorianConnexionStatus(bool Connected)
|
||||
{
|
||||
if(Connected)
|
||||
{
|
||||
ui->mConnectBtn->setText("Déconnecter");
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->mConnectBtn->setText("Connecter");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
#define HISTORIANPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
class CHistorienData;
|
||||
class CModbusHistorienMaster;
|
||||
|
||||
namespace Ui {
|
||||
class CHistorianPage;
|
||||
@ -14,9 +17,18 @@ class CHistorianPage : public QWidget
|
||||
public:
|
||||
explicit CHistorianPage(QWidget *parent = 0);
|
||||
~CHistorianPage();
|
||||
int UpdateDataTable(CHistorienData *Data);
|
||||
int HistorianConnexionStatus(bool Connected);
|
||||
|
||||
|
||||
CModbusHistorienMaster *mProgramHandle;
|
||||
|
||||
|
||||
private:
|
||||
Ui::CHistorianPage *ui;
|
||||
|
||||
public slots:
|
||||
void ConnectButtonPressed();
|
||||
};
|
||||
|
||||
#endif // HISTORIANPAGE_H
|
||||
|
||||
@ -1,21 +1,96 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<author/>
|
||||
<comment/>
|
||||
<exportmacro/>
|
||||
<class>CHistorianPage</class>
|
||||
<widget class="QWidget" name="CHistorianPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
<width>966</width>
|
||||
<height>706</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QLineEdit" name="mZTPortLineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>280</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2183</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="mZTIPAddressLineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>90</y>
|
||||
<width>231</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>192.168.50.220</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="mConnectBtn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>90</y>
|
||||
<width>75</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Connecter</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="mSEISimTitleLabel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>40</y>
|
||||
<width>411</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Simulateur Historien PI</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::AutoText</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTreeWidget" name="mHistorianDataTreeWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>140</y>
|
||||
<width>551</width>
|
||||
<height>551</height>
|
||||
</rect>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</widget>
|
||||
<pixmapfunction/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@ -6,6 +6,66 @@ class CHistorienData
|
||||
{
|
||||
public:
|
||||
CHistorienData();
|
||||
|
||||
int mFNEnabled;
|
||||
int mPPEnabled;
|
||||
int mPGEnabled;
|
||||
int mPPZT2Enabled;
|
||||
int mMaintenanceMode;
|
||||
int mHPCHealth;
|
||||
int mSEIHealth;
|
||||
int mZT1Enabled;
|
||||
int mZT2Enabled;
|
||||
int mCalibPG;
|
||||
int mBootDateYr;
|
||||
int mBootDateMonth;
|
||||
int mBootDateDay;
|
||||
int mBootDateHour;
|
||||
int mBootDateMinutes;
|
||||
int mBootDateSeconds;
|
||||
int mTotalTrains;
|
||||
int mTotalDetections;
|
||||
int mTrainsToday;
|
||||
int mDetectToday;
|
||||
int mFNDetectToday;
|
||||
int mPPIDetectToday;
|
||||
int mPPEDetectToday;
|
||||
int mPGDetectToday;
|
||||
int mPPIZT2DetectToday;
|
||||
int mPPEZT2DetectToday;
|
||||
int mLastTrainYear;
|
||||
int mLastTrainMonth;
|
||||
int mLastTrainDay;
|
||||
int mLastTrainHour;
|
||||
int mLastTrainMinutes;
|
||||
int mLastTrainSeconds;
|
||||
int mLastZone;
|
||||
int mNbDetectLasTrain;
|
||||
int mLastTrainPPI1;
|
||||
int mLastTrainPPI2;
|
||||
int mLastTrainPPI3;
|
||||
int mLastTrainPPI4;
|
||||
int mLastTrainPPE1;
|
||||
int mLastTrainPPE2;
|
||||
int mLastTrainPPE3;
|
||||
int mLastTrainPPE4;
|
||||
int mLastTrainPG1;
|
||||
int mLastTrainPG2;
|
||||
int mLastTrainPG3;
|
||||
int mLastTrainPG4;
|
||||
int mLastTrainFN1;
|
||||
int mLastTrainFN2;
|
||||
int mLastTrainFN3;
|
||||
int mLastTrainFN4;
|
||||
int mLastTrainCountErr;
|
||||
int mLastTrainPEQ;
|
||||
int mLastTrainType;
|
||||
int mLastTrainCompo1;
|
||||
int mLastTrainCompo2;
|
||||
int mLastTrainCompo3;
|
||||
|
||||
};
|
||||
|
||||
#endif // HISTORIENDATA_H
|
||||
#endif // HISTORIENDATA_H
|
||||
|
||||
|
||||
|
||||
@ -19,12 +19,15 @@ CMainPage::~CMainPage()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
int CMainPage::RegisterPagesTabs(CModbusPage *ModbusPage, CLazerProbeSimPage* LazerSimPage, CSEIModbusPage *SEIModbusPage, CZTAlarmGeneratorPage* ZTAlarmGenPage)
|
||||
int CMainPage::RegisterPagesTabs(CModbusPage *ModbusPage, CLazerProbeSimPage* LazerSimPage, CSEIModbusPage *SEIModbusPage, CZTAlarmGeneratorPage* ZTAlarmGenPage, CHistorianPage *HistorianPage)
|
||||
{
|
||||
ui->mMainPageTabs->clear();
|
||||
#ifndef VERSION_FORMATION_SEI
|
||||
ui->mMainPageTabs->addTab((QWidget*)ModbusPage,"Modbus CC");
|
||||
ui->mMainPageTabs->addTab((QWidget*)SEIModbusPage,"Modbus SEI");
|
||||
ui->mMainPageTabs->addTab((QWidget*)LazerSimPage,"Sondes");
|
||||
ui->mMainPageTabs->addTab((QWidget*)HistorianPage,"Historien PI");
|
||||
#endif
|
||||
ui->mMainPageTabs->addTab((QWidget*)ZTAlarmGenPage,"Générateur ZT");
|
||||
|
||||
//ModbusPage->show();
|
||||
|
||||
@ -8,6 +8,7 @@ class CModbusPage;
|
||||
class CLazerProbeSimPage;
|
||||
class CSEIModbusPage;
|
||||
class CZTAlarmGeneratorPage;
|
||||
class CHistorianPage;
|
||||
|
||||
namespace Ui {
|
||||
class CMainPage;
|
||||
@ -22,7 +23,7 @@ public:
|
||||
~CMainPage();
|
||||
COutilModbus *mProgramHandle;
|
||||
|
||||
int RegisterPagesTabs(CModbusPage*, CLazerProbeSimPage*, CSEIModbusPage*, CZTAlarmGeneratorPage* ZTAlarmGen);
|
||||
int RegisterPagesTabs(CModbusPage*, CLazerProbeSimPage*, CSEIModbusPage*, CZTAlarmGeneratorPage* ZTAlarmGen, CHistorianPage *HistorianPage);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
@ -11,7 +11,7 @@ MainWindow::MainWindow(QWidget *parent,COutilModbus* ProgramHandle)
|
||||
mMainPage = new CMainPage(this);
|
||||
mMainPage->mProgramHandle = ProgramHandle;
|
||||
|
||||
mSEIModbusPage = new CSEIModbusPage(this);
|
||||
mSEIModbusPage = new CSEIModbusPage();
|
||||
mSEIModbusPage->mProgramHandle = ProgramHandle;
|
||||
|
||||
mModbusPage = new CModbusPage();
|
||||
@ -20,12 +20,15 @@ MainWindow::MainWindow(QWidget *parent,COutilModbus* ProgramHandle)
|
||||
mZTAlarmGeneratorPage = new CZTAlarmGeneratorPage();
|
||||
//mZTAlarmGeneratorPage->mProgramHandle = ProgramHandle;
|
||||
|
||||
mHistorianPage = new CHistorianPage;
|
||||
|
||||
|
||||
mLazerSimPage = new CLazerProbeSimPage;
|
||||
|
||||
setCentralWidget(mMainPage);
|
||||
|
||||
mMainPage->RegisterPagesTabs(mModbusPage,mLazerSimPage, mSEIModbusPage, mZTAlarmGeneratorPage);
|
||||
|
||||
mMainPage->RegisterPagesTabs(mModbusPage,mLazerSimPage, mSEIModbusPage, mZTAlarmGeneratorPage,mHistorianPage);
|
||||
|
||||
// setWindowFlags(Qt::WindowStaysOnTopHint);
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include "LazerProbeSimPage.h"
|
||||
#include "SEIModbusPage.h"
|
||||
#include "ZTAlarmGeneratorPage.h"
|
||||
#include "HistorianPage.h"
|
||||
|
||||
class COutilModbus;
|
||||
|
||||
@ -28,6 +29,7 @@ public:
|
||||
CLazerProbeSimPage *mLazerSimPage;
|
||||
CSEIModbusPage *mSEIModbusPage;
|
||||
CZTAlarmGeneratorPage *mZTAlarmGeneratorPage;
|
||||
CHistorianPage *mHistorianPage;
|
||||
|
||||
// QGridLayout *mCCGridLayout, *mSEIGridLayout;
|
||||
// QPushButton *mConnectToSlaveBtn, *mSendWriteMultipleHR, *mSendReadHR, *mWriteSingleHR;
|
||||
|
||||
@ -1,6 +1,156 @@
|
||||
#include "ModbusHistorienMaster.h"
|
||||
#include "HistorianPage.h"
|
||||
#include "HistorienData.h"
|
||||
#include "PIHistorianDefs.h"
|
||||
|
||||
CModbusHistorienMaster::CModbusHistorienMaster()
|
||||
CModbusHistorienMaster::CModbusHistorienMaster(CModbusRepository *HistorienRepo) :
|
||||
CModbusBackend(HistorienRepo)
|
||||
{
|
||||
|
||||
mPageHandle = 0;
|
||||
mModbusMode = MODBUS_MASTER_MODE;
|
||||
|
||||
|
||||
mModbusTCPSocketHandle = new QTcpSocket();
|
||||
connect(mModbusTCPSocketHandle,&QTcpSocket::readyRead,this,&CModbusBackend::ModbusDataReady);
|
||||
connect(mModbusTCPSocketHandle,&QTcpSocket::disconnected,this,&CModbusHistorienMaster::SocketDisconnected);
|
||||
connect(mModbusTCPSocketHandle,&QTcpSocket::connected,this,&CModbusHistorienMaster::SocketConnected);
|
||||
|
||||
mHistorienPollTimer = new QTimer;
|
||||
mHistorienPollTimer->setInterval(1000);
|
||||
mHistorienPollTimer->setSingleShot(false);
|
||||
connect(mHistorienPollTimer,&QTimer::timeout,this,&CModbusHistorienMaster::HistorienPollTimerExpired);
|
||||
|
||||
}
|
||||
|
||||
CModbusHistorienMaster::~CModbusHistorienMaster()
|
||||
{
|
||||
// delete mHistorianZTSocket;
|
||||
delete mHistorienPollTimer;
|
||||
}
|
||||
|
||||
int CModbusHistorienMaster::ConnectToZTRequest(QString IP, int port)
|
||||
{
|
||||
if(mModbusTCPSocketHandle->state() != QAbstractSocket::UnconnectedState)
|
||||
return RET_ERROR;
|
||||
|
||||
mModbusTCPSocketHandle->connectToHost(IP,port);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CModbusHistorienMaster::DisconnectFromZTRequest()
|
||||
{
|
||||
mModbusTCPSocketHandle->disconnectFromHost();
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CModbusHistorienMaster::SocketConnected()
|
||||
{
|
||||
qDebug("Historian module connected to ZT");
|
||||
mPageHandle->HistorianConnexionStatus(true);
|
||||
mHistorienPollTimer->start();
|
||||
}
|
||||
|
||||
void CModbusHistorienMaster::SocketDisconnected()
|
||||
{
|
||||
qDebug("Historian module disconnected");
|
||||
mPageHandle->HistorianConnexionStatus(false);
|
||||
mHistorienPollTimer->stop();
|
||||
ModbusLinkDisconnected();
|
||||
}
|
||||
|
||||
void CModbusHistorienMaster::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length)
|
||||
{
|
||||
qDebug("New Historien data received. StartAdd:%d, Length:%d",StartAddress,Length);
|
||||
|
||||
CHistorienData NewData;
|
||||
bool OK;
|
||||
mModbusRepo->GetSingleReg(HISTORIAN_ZT_STATUS_FLAGS_REG_ADD,&OK);
|
||||
|
||||
NewData.mFNEnabled = 0;
|
||||
NewData.mPPEnabled = 0;
|
||||
NewData.mPGEnabled = 0;
|
||||
NewData.mPPZT2Enabled = 0;
|
||||
NewData.mMaintenanceMode = 0;
|
||||
NewData.mHPCHealth = 0;
|
||||
NewData.mSEIHealth = 0;
|
||||
NewData.mZT1Enabled = 0;
|
||||
NewData.mZT2Enabled = 0;
|
||||
NewData.mCalibPG = 0;
|
||||
|
||||
|
||||
|
||||
quint16 reg = mModbusRepo->GetSingleReg(HISTORIAN_ZT_STATUS_FLAGS_REG_ADD,&OK);
|
||||
NewData.mFNEnabled = ((reg & HISTORIAN_ZT1_FN_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mPPEnabled = ((reg & HISTORIAN_ZT1_PP_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mPGEnabled = ((reg & HISTORIAN_ZT1_PG_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mPPZT2Enabled = ((reg & HISTORIAN_ZT2_PP_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mMaintenanceMode = ((reg & HISTORIAN_ZT_MAINTENANCE_MODE_FLAG_MASK) != 0);
|
||||
NewData.mHPCHealth = ((reg & HISTORIAN_ZT_HPC_COMM_HEALTH_FLAG_MASK) != 0);
|
||||
NewData.mSEIHealth = ((reg & HISTORIAN_ZT_SEI_COMM_FLAG_MASK) != 0);
|
||||
NewData.mZT1Enabled = ((reg & HISTORIAN_ZT_ZT1_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mZT2Enabled = ((reg & HISTORIAN_ZT_ZT2_ENABLED_FLAG_MASK) != 0);
|
||||
NewData.mCalibPG = ((reg & HISTORIAN_PG_CALIBRATION_REG_ADD) != 0);
|
||||
|
||||
|
||||
|
||||
NewData.mBootDateYr = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_YEAR_REG_ADD,&OK);
|
||||
NewData.mBootDateMonth = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_MONTH_REG_ADD,&OK);
|
||||
NewData.mBootDateDay = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_DAY_REG_ADD,&OK);
|
||||
NewData.mBootDateHour = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_HOUR_REG_ADD,&OK);
|
||||
NewData.mBootDateMinutes = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_MINUTES_REG_ADD,&OK);
|
||||
NewData.mBootDateSeconds = mModbusRepo->GetSingleReg(HISTORIAN_BOOT_DATE_SECONDS_REG_ADD,&OK);
|
||||
NewData.mTotalTrains = mModbusRepo->GetSingleReg(HISTORIAN_TRAINS_TOTAL_REG_ADD,&OK);
|
||||
NewData.mTotalDetections = mModbusRepo->GetSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,&OK);
|
||||
NewData.mTrainsToday = mModbusRepo->GetSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD ,&OK);
|
||||
NewData.mDetectToday = mModbusRepo->GetSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD ,&OK);
|
||||
NewData.mFNDetectToday = mModbusRepo->GetSingleReg(HISTORIAN_FN_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mPPIDetectToday = mModbusRepo->GetSingleReg(HISTORIAN_PPI_ZT1_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mPPEDetectToday = mModbusRepo->GetSingleReg(HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mPGDetectToday = mModbusRepo->GetSingleReg(HISTORIAN_PG_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mPPIZT2DetectToday = mModbusRepo->GetSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mPPEZT2DetectToday = mModbusRepo->GetSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,&OK);
|
||||
NewData.mLastTrainYear = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_YEAR_REG_ADD,&OK);
|
||||
NewData.mLastTrainMonth = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_MONTH_REG_ADD,&OK);
|
||||
NewData.mLastTrainDay = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_DAY_REG_ADD,&OK);
|
||||
NewData.mLastTrainHour = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_HOUR_REG_ADD,&OK);
|
||||
NewData.mLastTrainMinutes = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_MINUTE_REG_ADD,&OK);
|
||||
NewData.mLastTrainSeconds = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_SECONDS_REG_ADD,&OK);
|
||||
NewData.mLastZone = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_ZONE_REG_ADD ,&OK);
|
||||
NewData.mNbDetectLasTrain = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD ,&OK);
|
||||
NewData.mLastTrainPPI1 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_1_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPI2 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_2_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPI3 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_3_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPI4 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_4_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPE1 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_1_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPE2 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_2_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPE3 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_3_REG_ADD,&OK);
|
||||
NewData.mLastTrainPPE4 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_4_REG_ADD,&OK);
|
||||
NewData.mLastTrainPG1 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_1_REG_ADD,&OK);
|
||||
NewData.mLastTrainPG2 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_2_REG_ADD,&OK);
|
||||
NewData.mLastTrainPG3 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_3_REG_ADD,&OK);
|
||||
NewData.mLastTrainPG4 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_4_REG_ADD,&OK);
|
||||
NewData.mLastTrainFN1 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_1_REG_ADD,&OK);
|
||||
NewData.mLastTrainFN2 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_2_REG_ADD,&OK);
|
||||
NewData.mLastTrainFN3 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_3_REG_ADD,&OK);
|
||||
NewData.mLastTrainFN4 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_4_REG_ADD,&OK);
|
||||
NewData.mLastTrainCountErr = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_COMPTAGE_DET_REG_ADD,&OK);
|
||||
NewData.mLastTrainPEQ = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_PEQ_REG_ADD,&OK);
|
||||
NewData.mLastTrainType = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_TYPE_REG_ADD,&OK);
|
||||
NewData.mLastTrainCompo1 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_ID1_REG_ADD,&OK);
|
||||
NewData.mLastTrainCompo2 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_ID2_REG_ADD,&OK);
|
||||
NewData.mLastTrainCompo3 = mModbusRepo->GetSingleReg(HISTORIAN_LAST_TRAIN_ID3_REG_ADD,&OK);
|
||||
|
||||
mPageHandle->UpdateDataTable(&NewData);
|
||||
|
||||
}
|
||||
|
||||
void CModbusHistorienMaster::ModbusResponseException(quint8 ExceptionCode, quint8 FctCode)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CModbusHistorienMaster::HistorienPollTimerExpired()
|
||||
{
|
||||
SendReadHoldingRegistersRequest(2000,50); //Read all registers
|
||||
}
|
||||
|
||||
@ -1,11 +1,32 @@
|
||||
#ifndef MODBUSHISTORIENMASTER_H
|
||||
#define MODBUSHISTORIENMASTER_H
|
||||
|
||||
#include "ModbusBackend.h"
|
||||
#include <QTimer>
|
||||
|
||||
class CModbusHistorienMaster
|
||||
class CHistorianPage;
|
||||
|
||||
class CModbusHistorienMaster : public CModbusBackend
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CModbusHistorienMaster();
|
||||
CModbusHistorienMaster(CModbusRepository *HistorienRepo);
|
||||
virtual ~CModbusHistorienMaster();
|
||||
int ConnectToZTRequest(QString IP, int port);
|
||||
int DisconnectFromZTRequest();
|
||||
|
||||
void RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length);
|
||||
//Master signals
|
||||
void ModbusResponseException(quint8 ExceptionCode, quint8 FctCode);
|
||||
|
||||
// QTcpSocket *mHistorianZTSocket;
|
||||
CHistorianPage *mPageHandle;
|
||||
QTimer *mHistorienPollTimer;
|
||||
|
||||
public slots:
|
||||
void SocketConnected();
|
||||
void SocketDisconnected();
|
||||
void HistorienPollTimerExpired();
|
||||
};
|
||||
|
||||
#endif // MODBUSHISTORIENMASTER_H
|
||||
#endif // MODBUSHISTORIENMASTER_H
|
||||
|
||||
@ -29,6 +29,9 @@ COutilModbus::COutilModbus(QObject *parent) :
|
||||
mZTAlarmGenerator->mAlarmGeneratorPageHandle = w->mZTAlarmGeneratorPage;
|
||||
w->mZTAlarmGeneratorPage->mProgramHandle = mZTAlarmGenerator;
|
||||
|
||||
mHistorienMaster = new CModbusHistorienMaster(&mHistorienRepo);
|
||||
w->mHistorianPage->mProgramHandle = mHistorienMaster;
|
||||
|
||||
mSEIWatchdogValue = 0;
|
||||
}
|
||||
|
||||
@ -49,12 +52,13 @@ int COutilModbus::Start()
|
||||
|
||||
mModbusPageHandle = w->mModbusPage;
|
||||
mSEIModbusPageHandle = w->mSEIModbusPage;
|
||||
mHistorienMaster->mPageHandle = w->mHistorianPage;
|
||||
|
||||
mCCModbusRepo.AddHRDataMap(2000,128);
|
||||
|
||||
|
||||
//mModbusSEIEmulator->StartSlaveServer(502);
|
||||
mModbusSEIEmulator->SetServerPort(503);
|
||||
mModbusSEIEmulator->SetServerPort(502);
|
||||
|
||||
mSEIModbusRepo.AddHRDataMap(2000,128);
|
||||
mSEIModbusRepo.AddHRDataMap(3000,128);
|
||||
@ -68,6 +72,7 @@ int COutilModbus::Start()
|
||||
connect(mModbusSEIEmulator,SIGNAL(ModbusSlaveDisconnected(CModbusSlave*)),this,SLOT(SEIModbusDisconnected(CModbusSlave*)));
|
||||
connect(mModbusSEIEmulator,SIGNAL(ModbusSlaveRepoUpdated()),this,SLOT(SEIRepositoryUpdated()));
|
||||
|
||||
mHistorienRepo.AddHRDataMap(2000,128);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "ModbusRepository.h"
|
||||
#include "ZTInfo.h"
|
||||
#include "ZTAlarmGenerator.h"
|
||||
#include "ModbusHistorienMaster.h"
|
||||
|
||||
class CMainPage;
|
||||
|
||||
@ -23,13 +24,14 @@ public:
|
||||
MainWindow *w;
|
||||
CModbusSlave *mModbusSEIEmulator;
|
||||
CModbusMaster *mModbusCCEmulator;
|
||||
CModbusRepository mSEIModbusRepo,mCCModbusRepo;
|
||||
CModbusRepository mSEIModbusRepo,mCCModbusRepo, mHistorienRepo;
|
||||
CZTInfo mCurZTInfo, mSEIZTInfo;
|
||||
|
||||
CModbusPage *mModbusPageHandle;
|
||||
CSEIModbusPage *mSEIModbusPageHandle;
|
||||
|
||||
CZTAlarmGenerator *mZTAlarmGenerator;
|
||||
CModbusHistorienMaster *mHistorienMaster;
|
||||
|
||||
|
||||
|
||||
|
||||
83
Sources/PIHistorianDefs.h
Normal file
83
Sources/PIHistorianDefs.h
Normal file
@ -0,0 +1,83 @@
|
||||
#ifndef PIHISTORIANDEFS_H
|
||||
#define PIHISTORIANDEFS_H
|
||||
|
||||
#define HISTORIAN_WATCHDOG_TIMEOUT 3000
|
||||
|
||||
//PI HISTORIAN modbus table masks
|
||||
#define HISTORIAN_ZT_DATA_BASE_REG 2000
|
||||
#define HISTORIAN_MODBUS_ZT_TABLE_DATA_SIZE 50 //Taille de la table = 50 registres (2000 à 2049)
|
||||
|
||||
//Flags definitions for HR2000
|
||||
#define HISTORIAN_ZT1_FN_ENABLED_FLAG_MASK 0x0001
|
||||
#define HISTORIAN_ZT1_PP_ENABLED_FLAG_MASK 0x0002
|
||||
#define HISTORIAN_ZT1_PG_ENABLED_FLAG_MASK 0x0004
|
||||
#define HISTORIAN_ZT2_PP_ENABLED_FLAG_MASK 0x0008
|
||||
#define HISTORIAN_ZT_MAINTENANCE_MODE_FLAG_MASK 0x0010
|
||||
#define HISTORIAN_ZT_HPC_COMM_HEALTH_FLAG_MASK 0x0020
|
||||
#define HISTORIAN_ZT_SEI_COMM_FLAG_MASK 0x0040
|
||||
#define HISTORIAN_ZT_ZT1_ENABLED_FLAG_MASK 0x0080
|
||||
#define HISTORIAN_ZT_ZT2_ENABLED_FLAG_MASK 0x0100
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_7 0x0200
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_6 0x0400
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_5 0x0800
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_4 0x1000
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_3 0x2000
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_2 0x4000
|
||||
#define HISTORIAN_ZT_RESERVED_FLAG_MASK_1 0x8000
|
||||
|
||||
|
||||
#define HISTORIAN_ZT_STATUS_FLAGS_REG_ADD 2000
|
||||
#define HISTORIAN_PG_CALIBRATION_REG_ADD 2001
|
||||
#define HISTORIAN_BOOT_DATE_YEAR_REG_ADD 2002
|
||||
#define HISTORIAN_BOOT_DATE_MONTH_REG_ADD 2003
|
||||
#define HISTORIAN_BOOT_DATE_DAY_REG_ADD 2004
|
||||
#define HISTORIAN_BOOT_DATE_HOUR_REG_ADD 2005
|
||||
#define HISTORIAN_BOOT_DATE_MINUTES_REG_ADD 2006
|
||||
#define HISTORIAN_BOOT_DATE_SECONDS_REG_ADD 2007
|
||||
#define HISTORIAN_TRAINS_TOTAL_REG_ADD 2008
|
||||
#define HISTORIAN_DETECTIONS_TOTAL_REG_ADD 2009
|
||||
#define HISTORIAN_TRAINS_TODAY_REG_ADD 2010
|
||||
#define HISTORIAN_DETECTIONS_TODAY_REG_ADD 2011
|
||||
#define HISTORIAN_FN_DETECTS_TODAY_REG_ADD 2012
|
||||
#define HISTORIAN_PPI_ZT1_DETECTS_TODAY_REG_ADD 2013
|
||||
#define HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD 2014
|
||||
#define HISTORIAN_PG_DETECTS_TODAY_REG_ADD 2015
|
||||
#define HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD 2016
|
||||
#define HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD 2017
|
||||
#define HISTORIAN_LAST_TRAIN_YEAR_REG_ADD 2018
|
||||
#define HISTORIAN_LAST_TRAIN_MONTH_REG_ADD 2019
|
||||
#define HISTORIAN_LAST_TRAIN_DAY_REG_ADD 2020
|
||||
#define HISTORIAN_LAST_TRAIN_HOUR_REG_ADD 2021
|
||||
#define HISTORIAN_LAST_TRAIN_MINUTE_REG_ADD 2022
|
||||
#define HISTORIAN_LAST_TRAIN_SECONDS_REG_ADD 2023
|
||||
#define HISTORIAN_LAST_TRAIN_ZONE_REG_ADD 2024
|
||||
#define HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD 2025
|
||||
#define HISTORIAN_LAST_TRAIN_PPI_RK_1_REG_ADD 2026
|
||||
#define HISTORIAN_LAST_TRAIN_PPI_RK_2_REG_ADD 2027
|
||||
#define HISTORIAN_LAST_TRAIN_PPI_RK_3_REG_ADD 2028
|
||||
#define HISTORIAN_LAST_TRAIN_PPI_RK_4_REG_ADD 2029
|
||||
#define HISTORIAN_LAST_TRAIN_PPE_RK_1_REG_ADD 2030
|
||||
#define HISTORIAN_LAST_TRAIN_PPE_RK_2_REG_ADD 2031
|
||||
#define HISTORIAN_LAST_TRAIN_PPE_RK_3_REG_ADD 2032
|
||||
#define HISTORIAN_LAST_TRAIN_PPE_RK_4_REG_ADD 2033
|
||||
#define HISTORIAN_LAST_TRAIN_PG_RK_1_REG_ADD 2034
|
||||
#define HISTORIAN_LAST_TRAIN_PG_RK_2_REG_ADD 2035
|
||||
#define HISTORIAN_LAST_TRAIN_PG_RK_3_REG_ADD 2036
|
||||
#define HISTORIAN_LAST_TRAIN_PG_RK_4_REG_ADD 2037
|
||||
#define HISTORIAN_LAST_TRAIN_FN_RK_1_REG_ADD 2038
|
||||
#define HISTORIAN_LAST_TRAIN_FN_RK_2_REG_ADD 2039
|
||||
#define HISTORIAN_LAST_TRAIN_FN_RK_3_REG_ADD 2040
|
||||
#define HISTORIAN_LAST_TRAIN_FN_RK_4_REG_ADD 2041
|
||||
#define HISTORIAN_LAST_TRAIN_COMPTAGE_DET_REG_ADD 2042
|
||||
#define HISTORIAN_LAST_TRAIN_PEQ_REG_ADD 2043
|
||||
#define HISTORIAN_LAST_TRAIN_TYPE_REG_ADD 2044
|
||||
#define HISTORIAN_LAST_TRAIN_ID1_REG_ADD 2045
|
||||
#define HISTORIAN_LAST_TRAIN_ID2_REG_ADD 2046
|
||||
#define HISTORIAN_LAST_TRAIN_ID3_REG_ADD 2047
|
||||
#define HISTORIAN_RESERVED_1_REG_ADD 2048
|
||||
#define HISTORIAN_RESERVED_2_REG_ADD 2049
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // PIHISTORIANDEFS_H
|
||||
@ -2,6 +2,7 @@
|
||||
#include "ZTAlarmGeneratorPage.h"
|
||||
#include "ZTAlarms.h"
|
||||
#include "ProtocolDefs.h"
|
||||
#include <QFile>
|
||||
|
||||
CZTAlarmGenerator::CZTAlarmGenerator(QObject *parent)
|
||||
{
|
||||
@ -22,6 +23,7 @@ CZTAlarmGenerator::CZTAlarmGenerator(QObject *parent)
|
||||
|
||||
mWatchdogValue = false;
|
||||
mReadModbus = false;
|
||||
mIPAddress = "10.154.234.34";
|
||||
}
|
||||
|
||||
CZTAlarmGenerator::~CZTAlarmGenerator()
|
||||
@ -317,7 +319,13 @@ int CZTAlarmGenerator::ClearAllAlarms()
|
||||
|
||||
int CZTAlarmGenerator::ConnectToSEIRequest()
|
||||
{
|
||||
mModbusZTEmulator->ConnectToSlave("192.168.50.110",503);
|
||||
QFile IPAddressFile("IP.txt");
|
||||
if(IPAddressFile.open(QIODevice::ReadOnly))
|
||||
{
|
||||
mIPAddress = QString(IPAddressFile.readAll());
|
||||
}
|
||||
|
||||
mModbusZTEmulator->ConnectToSlave(mIPAddress,502);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ public:
|
||||
CModbusZTMaster *mModbusZTEmulator;
|
||||
CModbusRepository mZTModbusRepo;
|
||||
CZTInfo mZTInfo;
|
||||
QString mIPAddress;
|
||||
|
||||
CZTAlarmGeneratorPage *mAlarmGeneratorPageHandle;
|
||||
|
||||
|
||||
84
ui_HistorianPage.h
Normal file
84
ui_HistorianPage.h
Normal file
@ -0,0 +1,84 @@
|
||||
/********************************************************************************
|
||||
** Form generated from reading UI file 'HistorianPage.ui'
|
||||
**
|
||||
** Created by: Qt User Interface Compiler version 5.14.2
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef UI_HISTORIANPAGE_H
|
||||
#define UI_HISTORIANPAGE_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtWidgets/QApplication>
|
||||
#include <QtWidgets/QHeaderView>
|
||||
#include <QtWidgets/QLabel>
|
||||
#include <QtWidgets/QLineEdit>
|
||||
#include <QtWidgets/QPushButton>
|
||||
#include <QtWidgets/QTreeWidget>
|
||||
#include <QtWidgets/QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_CHistorianPage
|
||||
{
|
||||
public:
|
||||
QLineEdit *mZTPortLineEdit;
|
||||
QLineEdit *mZTIPAddressLineEdit;
|
||||
QPushButton *mConnectBtn;
|
||||
QLabel *mSEISimTitleLabel;
|
||||
QTreeWidget *mHistorianDataTreeWidget;
|
||||
|
||||
void setupUi(QWidget *CHistorianPage)
|
||||
{
|
||||
if (CHistorianPage->objectName().isEmpty())
|
||||
CHistorianPage->setObjectName(QString::fromUtf8("CHistorianPage"));
|
||||
CHistorianPage->resize(966, 706);
|
||||
mZTPortLineEdit = new QLineEdit(CHistorianPage);
|
||||
mZTPortLineEdit->setObjectName(QString::fromUtf8("mZTPortLineEdit"));
|
||||
mZTPortLineEdit->setGeometry(QRect(280, 90, 61, 20));
|
||||
mZTIPAddressLineEdit = new QLineEdit(CHistorianPage);
|
||||
mZTIPAddressLineEdit->setObjectName(QString::fromUtf8("mZTIPAddressLineEdit"));
|
||||
mZTIPAddressLineEdit->setGeometry(QRect(40, 90, 231, 20));
|
||||
mConnectBtn = new QPushButton(CHistorianPage);
|
||||
mConnectBtn->setObjectName(QString::fromUtf8("mConnectBtn"));
|
||||
mConnectBtn->setGeometry(QRect(360, 90, 75, 23));
|
||||
mSEISimTitleLabel = new QLabel(CHistorianPage);
|
||||
mSEISimTitleLabel->setObjectName(QString::fromUtf8("mSEISimTitleLabel"));
|
||||
mSEISimTitleLabel->setGeometry(QRect(260, 40, 411, 31));
|
||||
QFont font;
|
||||
font.setPointSize(18);
|
||||
font.setBold(true);
|
||||
font.setWeight(75);
|
||||
mSEISimTitleLabel->setFont(font);
|
||||
mSEISimTitleLabel->setTextFormat(Qt::AutoText);
|
||||
mHistorianDataTreeWidget = new QTreeWidget(CHistorianPage);
|
||||
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
|
||||
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
|
||||
mHistorianDataTreeWidget->setHeaderItem(__qtreewidgetitem);
|
||||
mHistorianDataTreeWidget->setObjectName(QString::fromUtf8("mHistorianDataTreeWidget"));
|
||||
mHistorianDataTreeWidget->setGeometry(QRect(40, 140, 551, 551));
|
||||
|
||||
retranslateUi(CHistorianPage);
|
||||
|
||||
QMetaObject::connectSlotsByName(CHistorianPage);
|
||||
} // setupUi
|
||||
|
||||
void retranslateUi(QWidget *CHistorianPage)
|
||||
{
|
||||
CHistorianPage->setWindowTitle(QCoreApplication::translate("CHistorianPage", "Form", nullptr));
|
||||
mZTPortLineEdit->setText(QCoreApplication::translate("CHistorianPage", "2183", nullptr));
|
||||
mZTIPAddressLineEdit->setText(QCoreApplication::translate("CHistorianPage", "192.168.50.220", nullptr));
|
||||
mConnectBtn->setText(QCoreApplication::translate("CHistorianPage", "Connecter", nullptr));
|
||||
mSEISimTitleLabel->setText(QCoreApplication::translate("CHistorianPage", "Simulateur Historien PI", nullptr));
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class CHistorianPage: public Ui_CHistorianPage {};
|
||||
} // namespace Ui
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // UI_HISTORIANPAGE_H
|
||||
Loading…
x
Reference in New Issue
Block a user