Dev outil historien

This commit is contained in:
jfmartel 2024-07-04 16:01:07 -04:00
parent 9baf9f8d95
commit 4daaf6a3fc
72 changed files with 1821 additions and 61 deletions

BIN
Exec/D3Dcompiler_47.dll Normal file

Binary file not shown.

1
Exec/IP.txt Normal file
View File

@ -0,0 +1 @@
192.168.50.110

BIN
Exec/OutilModbus.exe Normal file

Binary file not shown.

BIN
Exec/Qt5Core.dll Normal file

Binary file not shown.

BIN
Exec/Qt5Gui.dll Normal file

Binary file not shown.

BIN
Exec/Qt5Network.dll Normal file

Binary file not shown.

BIN
Exec/Qt5Svg.dll Normal file

Binary file not shown.

BIN
Exec/Qt5Widgets.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Exec/imageformats/qgif.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qicns.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qico.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qjpeg.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qsvg.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qtga.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qtiff.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qwbmp.dll Normal file

Binary file not shown.

BIN
Exec/imageformats/qwebp.dll Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
Exec/libEGL.dll Normal file

Binary file not shown.

BIN
Exec/libGLESv2.dll Normal file

Binary file not shown.

BIN
Exec/libgcc_s_seh-1.dll Normal file

Binary file not shown.

BIN
Exec/libstdc++-6.dll Normal file

Binary file not shown.

BIN
Exec/libwinpthread-1.dll Normal file

Binary file not shown.

BIN
Exec/opengl32sw.dll Normal file

Binary file not shown.

BIN
Exec/platforms/qwindows.dll Normal file

Binary file not shown.

Binary file not shown.

BIN
Exec/translations/qt_ar.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_bg.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_ca.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_cs.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_da.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_de.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_en.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_es.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_fi.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_fr.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_gd.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_he.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_hu.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_it.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_ja.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_ko.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_lv.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_pl.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_ru.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_sk.qm Normal file

Binary file not shown.

BIN
Exec/translations/qt_uk.qm Normal file

Binary file not shown.

Binary file not shown.

1
IP.txt Normal file
View File

@ -0,0 +1 @@
192.168.50.110

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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

View File

@ -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");
}
}

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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();

View File

@ -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:

View File

@ -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);

View File

@ -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;

View File

@ -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
}

View File

@ -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

View File

@ -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;
}

View File

@ -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
View 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

View File

@ -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;
}

View File

@ -25,6 +25,7 @@ public:
CModbusZTMaster *mModbusZTEmulator;
CModbusRepository mZTModbusRepo;
CZTInfo mZTInfo;
QString mIPAddress;
CZTAlarmGeneratorPage *mAlarmGeneratorPageHandle;

84
ui_HistorianPage.h Normal file
View 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