From 198613bd7bed9ecdf786486e37990fc2a187a379 Mon Sep 17 00:00:00 2001 From: jfmartel Date: Fri, 4 Oct 2019 14:50:57 -0400 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20page=20de=20visualisation=20d?= =?UTF-8?q?es=20donn=C3=A9es=20Modbus.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZT.pro | 6 +- sources/GuiElements/EngineeringPage.cpp | 9 + sources/GuiElements/EngineeringPage.h | 1 + sources/GuiElements/ModbusDisplayPage.cpp | 342 ++++++++++++++++++++++ sources/GuiElements/ModbusDisplayPage.h | 99 +++++++ sources/MainPanel.cpp | 8 + sources/MainPanel.h | 2 + sources/Zonetest.cpp | 16 + sources/Zonetest.h | 3 + 9 files changed, 484 insertions(+), 2 deletions(-) create mode 100644 sources/GuiElements/ModbusDisplayPage.cpp create mode 100644 sources/GuiElements/ModbusDisplayPage.h diff --git a/ZT.pro b/ZT.pro index c8f291a..5408ba6 100644 --- a/ZT.pro +++ b/ZT.pro @@ -119,7 +119,8 @@ SOURCES += \ sources/GuiElements/ModbusSettingsPage.cpp \ sources/Modbus/NetworkCfgMgr.cpp \ sources/Modbus/ModbusSEIMgr.cpp \ - sources/GuiElements/SEISettingsPage.cpp + sources/GuiElements/SEISettingsPage.cpp \ + sources/GuiElements/ModbusDisplayPage.cpp HEADERS += \ sources/MainPanel.h \ @@ -239,7 +240,8 @@ HEADERS += \ sources/Modbus/NetworkCfgMgr.h \ sources/Modbus/ModbusSEIMgr.h \ sources/Modbus/ModbusSEIDefs.h \ - sources/GuiElements/SEISettingsPage.h + sources/GuiElements/SEISettingsPage.h \ + sources/GuiElements/ModbusDisplayPage.h #QMAKE_LIBDIR += ./ExtLib #QT += network diff --git a/sources/GuiElements/EngineeringPage.cpp b/sources/GuiElements/EngineeringPage.cpp index 2e8fbc7..48951d8 100644 --- a/sources/GuiElements/EngineeringPage.cpp +++ b/sources/GuiElements/EngineeringPage.cpp @@ -100,6 +100,11 @@ CEngineeringPage::CEngineeringPage(QGraphicsWidget *Parent) mTestButton->setPos(350,310); connect(mTestButton,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*))); + mModbusDataBtn = new CTextButtonWidget("Modbus"); + mModbusDataBtn->setParentItem(this); + mModbusDataBtn->setPos(450,310); + connect(mModbusDataBtn,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*))); + mInfoUpdateTimer = new QTimer(); mInfoUpdateTimer->setSingleShot(false); @@ -801,6 +806,10 @@ void CEngineeringPage::ButtonClicked(CTextButtonWidget *BtnPtr) else if(BtnPtr == mTestButton) { } + else if(BtnPtr == mModbusDataBtn) + { + mProgramHandle->OpenModbusDataPageRequest(); + } } void CEngineeringPage::showEvent(QShowEvent *event) diff --git a/sources/GuiElements/EngineeringPage.h b/sources/GuiElements/EngineeringPage.h index d623765..039763d 100644 --- a/sources/GuiElements/EngineeringPage.h +++ b/sources/GuiElements/EngineeringPage.h @@ -90,6 +90,7 @@ private: CTextButtonWidget *mConvertCSVButton; CTextButtonWidget *mTestButton; CTextButtonWidget *mDeleteEngLogBtn; + CTextButtonWidget *mModbusDataBtn; QGraphicsTextItem *mPCIIODataText; QGraphicsTextItem *mExternalInputDataText; diff --git a/sources/GuiElements/ModbusDisplayPage.cpp b/sources/GuiElements/ModbusDisplayPage.cpp new file mode 100644 index 0000000..a1fefcf --- /dev/null +++ b/sources/GuiElements/ModbusDisplayPage.cpp @@ -0,0 +1,342 @@ +#include "ModbusDisplayPage.h" +#include "Zonetest.h" +#include +#include "ModbusCCDefs.h" +#include "ModbusSEIDefs.h" +#include "ModbusRepository.h" + +CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent) +{ + setParentItem(parent); + + mProgramHandle = 0; + mCCRepoHandle = 0; + mSEIRepoHandle = 0; + + + mBackgroundRect = new QGraphicsRectItem(boundingRect(), this); + QBrush BackgroundBrush(QColor(245, 245, 255,200)); + mBackgroundRect->setBrush(BackgroundBrush); + + + mCloseBtn = new CTextButtonWidget("Fermer"); + mCloseBtn->setParentItem(this); + mCloseBtn->setPos(600,600); + connect(mCloseBtn,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*))); + + mModbusDataTree = new QTreeWidget; + QGraphicsProxyWidget *Proxy = new QGraphicsProxyWidget(this); + Proxy->setWidget(mModbusDataTree); + Proxy->setPos(0,0); + + mModbusDataTree->resize(750,750); + + mRefreshTimer = new QTimer(); + mRefreshTimer->setSingleShot(false); + mRefreshTimer->setInterval(300); + mRefreshTimer->stop(); + connect(mRefreshTimer,SIGNAL(timeout()),this,SLOT(RefreshTimerExpired())); + + + QList Items; + mModbusDataTree->setColumnCount(5); + mModbusDataTree->setHeaderItem(new QTreeWidgetItem(QStringList()<<"Flag/Alarme"<<"Valeur CC"<<"Rang CC"<<"Valeur SEI"<<"Rang SEI")); + + //Items.append(new QTreeWidgetItem(QStringList(QString().fromUtf8("Pneu De Guidage ZT1 #2") << QString().fromUtf8("Pneu De Guidage ZT1 #2") << QString().fromUtf8("Pneu De Guidage ZT1 #2")))); + Items.append(new QTreeWidgetItem(QStringList()<<"ZT1")); + Items.append(new QTreeWidgetItem(QStringList()<<"ZT2")); + Items.append(new QTreeWidgetItem(QStringList()<<"ZT")); + + QTreeWidgetItem* Item; + // Item = new QTreeWidgetItem(QStringList()<addChild(Item); + + Item = Items.at(0); + + Item->addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<addChild(new QTreeWidgetItem(QStringList()<insertTopLevelItems(0,Items); + mModbusDataTree->resizeColumnToContents(1); + + mModbusDataTree->expandAll(); + mModbusDataTree->resizeColumnToContents(0); + + +} + + +void CModbusDisplayPage::resizeEvent(QGraphicsSceneResizeEvent *event) +{ + Q_UNUSED(event) + mBackgroundRect->setRect(boundingRect()); + mCloseBtn->setPos(50,boundingRect().height()-50); + mModbusDataTree->resize(boundingRect().width(),boundingRect().height()-50); +} + +CModbusDisplayPage::~CModbusDisplayPage() +{ + delete mModbusDataTree; +} + +void CModbusDisplayPage::ButtonClicked(CTextButtonWidget *button) +{ + if(button == mCloseBtn) + { + mRefreshTimer->stop(); + mProgramHandle->CloseModbusDataPageRequest(); + } +} + +int CModbusDisplayPage::UpdateTable(int Source) +{ + CModbusRepository *SourceRepo; + CZTInfo *DataStruct = new CZTInfo; + bool OK = false; + // quint16 data = mCCModbusRepo.GetSingleReg(MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD,&OK); + + if(Source == CC_MODBUS_TABLE_SOURCE) + { + SourceRepo = mCCRepoHandle; + } + else if(Source == SEI_MODBUS_TABLE_SOURCE) + { + SourceRepo = mSEIRepoHandle; + } + else + { + return RET_ERROR; + } + + quint16 data = SourceRepo->GetSingleReg(MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD,&OK); + + if(OK == true) + { + + DataStruct->mZT1PPIAlarmFlag1 = (data & ZT1_PP_INT_FLAG_MASK_1) != 0; + DataStruct->mZT1PPIAlarmFlag2 = (data & ZT1_PP_INT_FLAG_MASK_2) != 0; + DataStruct->mZT1PPIAlarmFlag3 = (data & ZT1_PP_INT_FLAG_MASK_3) != 0; + DataStruct->mZT1PPIAlarmFlag4 = (data & ZT1_PP_INT_FLAG_MASK_4) != 0; + DataStruct->mZT1PPEAlarmFlag1 = (data & ZT1_PP_EXT_FLAG_MASK_1) != 0; + DataStruct->mZT1PPEAlarmFlag2 = (data & ZT1_PP_EXT_FLAG_MASK_2) != 0; + DataStruct->mZT1PPEAlarmFlag3 = (data & ZT1_PP_EXT_FLAG_MASK_3) != 0; + DataStruct->mZT1PPEAlarmFlag4 = (data & ZT1_PP_EXT_FLAG_MASK_4) != 0; + DataStruct->mZT1PGAlarmFlag1 = (data & ZT1_PG_FLAG_MASK_1) != 0; + DataStruct->mZT1PGAlarmFlag2 = (data & ZT1_PG_FLAG_MASK_2) != 0; + DataStruct->mZT1PGAlarmFlag3 = (data & ZT1_PG_FLAG_MASK_3) != 0; + DataStruct->mZT1PGAlarmFlag4 = (data & ZT1_PG_FLAG_MASK_4) != 0; + DataStruct->mZT1FNAlarmFlag1 = (data & ZT1_FN_FLAG_MASK_1) != 0; + DataStruct->mZT1FNAlarmFlag2 = (data & ZT1_FN_FLAG_MASK_2) != 0; + DataStruct->mZT1FNAlarmFlag3 = (data & ZT1_FN_FLAG_MASK_3) != 0; + DataStruct->mZT1FNAlarmFlag4 = (data & ZT1_FN_FLAG_MASK_4) != 0; + + } + else + { + qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD)"); + return RET_ERROR; + } + + QList RankData; + RankData = SourceRepo->GetRegs(MODBUS_ZT1_ALARM_RANKS_BASE_ADD,16,&OK); + if(OK == true) + { + DataStruct->mZT1Ranks = RankData; + } + else + { + qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_RANKS_BASE_ADD)"); + return RET_ERROR; + } + + data = SourceRepo->GetSingleReg(MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD,&OK); + if(OK == true) + { + DataStruct->mZT2PPIAlarmFlag1 = (data & ZT2_PP_INT_FLAG_MASK_1) != 0; + DataStruct->mZT2PPIAlarmFlag2 = (data & ZT2_PP_INT_FLAG_MASK_2) != 0; + DataStruct->mZT2PPIAlarmFlag3 = (data & ZT2_PP_INT_FLAG_MASK_3) != 0; + DataStruct->mZT2PPIAlarmFlag4 = (data & ZT2_PP_INT_FLAG_MASK_4) != 0; + DataStruct->mZT2PPEAlarmFlag1 = (data & ZT2_PP_EXT_FLAG_MASK_1) != 0; + DataStruct->mZT2PPEAlarmFlag2 = (data & ZT2_PP_EXT_FLAG_MASK_2) != 0; + DataStruct->mZT2PPEAlarmFlag3 = (data & ZT2_PP_EXT_FLAG_MASK_3) != 0; + DataStruct->mZT2PPEAlarmFlag4 = (data & ZT2_PP_EXT_FLAG_MASK_4) != 0; + } + else + { + qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD)"); + return RET_ERROR; + } + + RankData.clear(); + RankData = SourceRepo->GetRegs(MODBUS_ZT2_ALARM_RANKS_BASE_ADD,8,&OK); + if(OK == true) + { + DataStruct->mZT2Ranks = RankData; + } + else + { + qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_RANKS_BASE_ADD)"); + return RET_ERROR; + } + + + data = SourceRepo->GetSingleReg(MODBUS_MISC_DATA_BASE_REG_ADD,&OK); + + if(OK == true) + { + + DataStruct->mZT1V00AlarmFlag = (data & ZT1_V00_ALARM_FLAG_MASK) != 0; + DataStruct->mZT1PEQ1AlarmFlag = (data & ZT1_PEQ1_ALARM_FLAG_MASK) != 0; + DataStruct->mZT2V02AlarmFlag = (data & ZT2_V02_ALARM_FLAG_MASK) != 0; + DataStruct->mZT2PEQ2AlarmFlag = (data & ZT2_PEQ2_ALARM_FLAG_MASK) != 0; + DataStruct->mITI10_12Flag = (data & ZT1_ALARM_ITI_FLAG_MASK) != 0; + } + else + { + qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_PANNES_DATA_BASE_REG_ADD)"); + return RET_ERROR; + } + + DataStruct->mWatchdogZT = SourceRepo->GetSingleReg(MODBUS_ZT_WATCHDOG_REG_ADD,&OK); + + + + + QTreeWidgetItem* Item; + QString TempStr; + + //ZT1 + Item = mModbusDataTree->topLevelItem(0); + + Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag1)); + Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag2)); + Item->child(2)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag3)); + Item->child(3)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag4)); + + Item->child(4)->setText(1,QString("%1").arg(DataStruct->mZT1PPEAlarmFlag1)); + Item->child(5)->setText(1,QString("%1").arg(DataStruct->mZT1PPEAlarmFlag2)); + Item->child(6)->setText(1,QString("%1").arg(DataStruct->mZT1PPEAlarmFlag3)); + Item->child(7)->setText(1,QString("%1").arg(DataStruct->mZT1PPEAlarmFlag4)); + + Item->child(8)->setText(1,QString("%1").arg(DataStruct->mZT1PGAlarmFlag1)); + Item->child(9)->setText(1,QString("%1").arg(DataStruct->mZT1PGAlarmFlag2)); + Item->child(10)->setText(1,QString("%1").arg(DataStruct->mZT1PGAlarmFlag3)); + Item->child(11)->setText(1,QString("%1").arg(DataStruct->mZT1PGAlarmFlag4)); + + Item->child(12)->setText(1,QString("%1").arg(DataStruct->mZT1FNAlarmFlag1)); + Item->child(13)->setText(1,QString("%1").arg(DataStruct->mZT1FNAlarmFlag2)); + Item->child(14)->setText(1,QString("%1").arg(DataStruct->mZT1FNAlarmFlag3)); + Item->child(15)->setText(1,QString("%1").arg(DataStruct->mZT1FNAlarmFlag4)); + + if(DataStruct->mITI10_12Flag == 0) + { + TempStr = "Principal"; + } + else + { + TempStr = "Secondaire"; + } + Item->child(16)->setText(1,TempStr); + + Item->child(17)->setText(1,QString("%1").arg(DataStruct->mZT1V00AlarmFlag)); + Item->child(18)->setText(1,QString("%1").arg(DataStruct->mZT1PEQ1AlarmFlag)); + + for(int i = 0; i < 16; i++) + { + Item->child(i)->setText(2,QString("%1").arg(DataStruct->mZT1Ranks.at(i))); + } + + //ZT2 + Item = mModbusDataTree->topLevelItem(1); + + Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag1)); + Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag2)); + Item->child(2)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag3)); + Item->child(3)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag4)); + + Item->child(4)->setText(1,QString("%1").arg(DataStruct->mZT2PPEAlarmFlag1)); + Item->child(5)->setText(1,QString("%1").arg(DataStruct->mZT2PPEAlarmFlag2)); + Item->child(6)->setText(1,QString("%1").arg(DataStruct->mZT2PPEAlarmFlag3)); + Item->child(7)->setText(1,QString("%1").arg(DataStruct->mZT2PPEAlarmFlag4)); + + Item->child(8)->setText(1,QString("%1").arg(DataStruct->mZT2V02AlarmFlag)); + Item->child(9)->setText(1,QString("%1").arg(DataStruct->mZT2PEQ2AlarmFlag)); + + for(int i = 0; i < 8; i++) + { + Item->child(i)->setText(2,QString("%1").arg(DataStruct->mZT2Ranks.at(i))); + } + + //Watchdog + Item = mModbusDataTree->topLevelItem(2); + Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogZT)); + + + delete DataStruct; + + return RET_OK; +} + +void CModbusDisplayPage::UpdateCCModbusTable() +{ + UpdateTable(CC_MODBUS_TABLE_SOURCE); +} + +void CModbusDisplayPage::UpdateSEIModbusTable() +{ + UpdateTable(SEI_MODBUS_TABLE_SOURCE); +} + +void CModbusDisplayPage::RefreshTimerExpired() +{ + UpdateTable(CC_MODBUS_TABLE_SOURCE); + UpdateTable(SEI_MODBUS_TABLE_SOURCE); +} + +void CModbusDisplayPage::showEvent(QShowEvent *event) +{ + mRefreshTimer->start(); +} diff --git a/sources/GuiElements/ModbusDisplayPage.h b/sources/GuiElements/ModbusDisplayPage.h new file mode 100644 index 0000000..04638dc --- /dev/null +++ b/sources/GuiElements/ModbusDisplayPage.h @@ -0,0 +1,99 @@ +#ifndef MODBUSDISPLAYPAGE_H +#define MODBUSDISPLAYPAGE_H + +#include "Guipage.h" +#include "GlobalDefine.h" +#include +#include "TextButtonWidget.h" +#include +#include + +enum eModbusTableSource +{ + CC_MODBUS_TABLE_SOURCE, + SEI_MODBUS_TABLE_SOURCE +}; + +class CZoneTest; +class CModbusRepository; + +class CModbusDisplayPage : public CGuiPage +{ + Q_OBJECT +public: + CModbusDisplayPage(QGraphicsWidget *parent = 0); + ~CModbusDisplayPage(); + virtual void resizeEvent(QGraphicsSceneResizeEvent *event); + virtual void showEvent(QShowEvent *event); + + + CZoneTest *mProgramHandle; + QGraphicsRectItem *mBackgroundRect; + CTextButtonWidget *mCloseBtn; + QTreeWidget *mModbusDataTree; + CModbusRepository *mCCRepoHandle, *mSEIRepoHandle; + QTimer *mRefreshTimer; + + +private: + int UpdateTable(int source); + +signals: + +public slots: + void ButtonClicked(CTextButtonWidget*); + void UpdateCCModbusTable(); + void UpdateSEIModbusTable(); + void RefreshTimerExpired(); + +}; + + +class CZTInfo +{ +public: + int mZT1PPIAlarmFlag1; + int mZT1PPIAlarmFlag2; + int mZT1PPIAlarmFlag3; + int mZT1PPIAlarmFlag4; + int mZT1PPEAlarmFlag1; + int mZT1PPEAlarmFlag2; + int mZT1PPEAlarmFlag3; + int mZT1PPEAlarmFlag4; + int mZT1PGAlarmFlag1; + int mZT1PGAlarmFlag2; + int mZT1PGAlarmFlag3; + int mZT1PGAlarmFlag4; + int mZT1FNAlarmFlag1; + int mZT1FNAlarmFlag2; + int mZT1FNAlarmFlag3; + int mZT1FNAlarmFlag4; + + QList mZT1Ranks; + + int mZT1V00AlarmFlag; + int mZT1PEQ1AlarmFlag; + + int mZT2PPIAlarmFlag1; + int mZT2PPIAlarmFlag2; + int mZT2PPIAlarmFlag3; + int mZT2PPIAlarmFlag4; + int mZT2PPEAlarmFlag1; + int mZT2PPEAlarmFlag2; + int mZT2PPEAlarmFlag3; + int mZT2PPEAlarmFlag4; + + QList mZT2Ranks; + + int mZT2V02AlarmFlag; + int mZT2PEQ2AlarmFlag; + + int mITI10_12Flag; + + int mWatchdogZT; + + CZTInfo(){;} +}; + + +#endif // MODBUSDISPLAYPAGE_H diff --git a/sources/MainPanel.cpp b/sources/MainPanel.cpp index 2e3d2ef..75de6f1 100644 --- a/sources/MainPanel.cpp +++ b/sources/MainPanel.cpp @@ -103,6 +103,7 @@ Panel::Panel() mZTLogViewerPage = new CZTLogViewerPage(); mModbusSettingsPage = new CModbusSettingsPage(); mSEISettingsPage = new CSEISettingsPage(); + mModbusDisplayPage = new CModbusDisplayPage(); scene->addItem(mWelcomePage); scene->addItem(mZTMainPage); @@ -116,6 +117,7 @@ Panel::Panel() scene->addItem(mModbusSettingsPage); scene->addItem(mSEISettingsPage); scene->addItem(mZTLogViewerPage); + scene->addItem(mModbusDisplayPage); mZTMainPage->setPos(0,0); mZTMainPage->hide(); @@ -177,6 +179,12 @@ Panel::Panel() mZTLogViewerPage->resize(800,600); mZTLogViewerPage->setZValue(1); + mModbusDisplayPage->setPos(10,10); + mModbusDisplayPage->resize(SCREEN_RES_WIDTH-20,SCREEN_RES_HEIGHT-20); + mModbusDisplayPage->setZValue(1); + mModbusDisplayPage->hide(); + + installEventFilter(mLogViewPage); } diff --git a/sources/MainPanel.h b/sources/MainPanel.h index 944953c..2b49647 100644 --- a/sources/MainPanel.h +++ b/sources/MainPanel.h @@ -46,6 +46,7 @@ #include "ZTLogViewerPage.h" #include "ModbusSettingsPage.h" #include "SEISettingsPage.h" +#include "ModbusDisplayPage.h" class CZoneTest; @@ -88,6 +89,7 @@ public: CZTLogViewerPage *mZTLogViewerPage; CModbusSettingsPage *mModbusSettingsPage; CSEISettingsPage *mSEISettingsPage; + CModbusDisplayPage *mModbusDisplayPage; }; #endif // PANEL_H diff --git a/sources/Zonetest.cpp b/sources/Zonetest.cpp index 99411cb..9d9ea5d 100644 --- a/sources/Zonetest.cpp +++ b/sources/Zonetest.cpp @@ -271,6 +271,7 @@ unsigned int CZoneTest::Start() panel.mModbusSettingsPage->mProgramHandle = this; panel.mSEISettingsPage->mProgramHandle = this; panel.mZTLogViewerPage->mProgramHandle = this; + panel.mModbusDisplayPage->mProgramHandle = this; panel.mEngineeringPage->mDisablePassword = mDisablePassword; mInternalWatchdog = new CWatchdogCtrl(mUseWatchdog); @@ -611,6 +612,9 @@ unsigned int CZoneTest::InitZT() connect(mModbusSEIMgr,SIGNAL(SEIModbusLinkRecovered()),panel.mZTMainPage,SLOT(ModbusSEIConnected())); connect(mModbusSEIMgr,SIGNAL(SEIModbusLinkLost()),panel.mZTMainPage,SLOT(ModbusSEIDisconnected())); + panel.mModbusDisplayPage->mSEIRepoHandle = mSEIModbusRepository; + panel.mModbusDisplayPage->mCCRepoHandle = mCCModbusRepository; + panel.mZTMainPage->ModbusSEIDisconnected(); @@ -1261,6 +1265,18 @@ void CZoneTest::LogZTSettingsRequest(bool LogStationName) mZTSettingsFileMgr.LogSettings(mZTSettings,LogStationName); } +void CZoneTest::OpenModbusDataPageRequest() +{ + panel.mEngineeringPage->hide(); + panel.mModbusDisplayPage->show(); +} + +void CZoneTest::CloseModbusDataPageRequest() +{ + panel.mModbusDisplayPage->hide(); + panel.mEngineeringPage->show(); +} + void CZoneTest::CheckAndCreateDirectories() { QDir dir("./Trains"); diff --git a/sources/Zonetest.h b/sources/Zonetest.h index 1686ce3..649cb26 100644 --- a/sources/Zonetest.h +++ b/sources/Zonetest.h @@ -140,6 +140,9 @@ public: void ResetTriggerCount(); void ResetNbPassages(); + void OpenModbusDataPageRequest(); + void CloseModbusDataPageRequest(); + void LogZTSettingsRequest(bool LogStationName = false); void ApplicationQuit(int Reason);