Fin dev Modbus.

This commit is contained in:
jfmartel 2019-10-08 10:46:34 -04:00
parent 198613bd7b
commit a87ab05e68
5 changed files with 625 additions and 64 deletions

View File

@ -81,13 +81,13 @@ ENGLOG=3
#STATION=HONORE_BEAUGRAND #STATION=HONORE_BEAUGRAND
#STATION=ANGRIGNON #STATION=ANGRIGNON
STATION=HENRI_BOURASSA #STATION=HENRI_BOURASSA
#STATION=COTE_VERTU #STATION=COTE_VERTU
#STATION=BERRI_UQAM #STATION=BERRI_UQAM
#STATION=LONGUEIL #STATION=LONGUEIL
#STATION=SAINT_MICHEL #STATION=SAINT_MICHEL
#STATION=SNOWDON_L5 #STATION=SNOWDON_L5
#STATION=MONTMORENCY STATION=MONTMORENCY
#STATION=MONTMORENCY_10_12 #STATION=MONTMORENCY_10_12
#STATION=MONTMORENCY_10_22 #STATION=MONTMORENCY_10_22
#STATION=DU_COLLEGE #STATION=DU_COLLEGE

View File

@ -4,6 +4,8 @@
#include "ModbusCCDefs.h" #include "ModbusCCDefs.h"
#include "ModbusSEIDefs.h" #include "ModbusSEIDefs.h"
#include "ModbusRepository.h" #include "ModbusRepository.h"
#include <QGraphicsTextItem>
#include "ZTData.h"
CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent) CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent)
{ {
@ -18,18 +20,35 @@ CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent)
QBrush BackgroundBrush(QColor(245, 245, 255,200)); QBrush BackgroundBrush(QColor(245, 245, 255,200));
mBackgroundRect->setBrush(BackgroundBrush); mBackgroundRect->setBrush(BackgroundBrush);
QGraphicsTextItem *TableTitle = new QGraphicsTextItem("Table Modbus Commande Centralisée",this);
QFont font;
font.setPointSize(18);
TableTitle->setFont(font);
TableTitle->setPos(40,10);
TableTitle = new QGraphicsTextItem("Table Modbus SEI",this);
TableTitle->setFont(font);
TableTitle->setPos(650,10);
mCloseBtn = new CTextButtonWidget("Fermer"); mCloseBtn = new CTextButtonWidget("Fermer");
mCloseBtn->setParentItem(this); mCloseBtn->setParentItem(this);
mCloseBtn->setPos(600,600); mCloseBtn->setPos(600,610);
connect(mCloseBtn,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*))); connect(mCloseBtn,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
mModbusDataTree = new QTreeWidget; mModbusCCDataTree = new QTreeWidget;
QGraphicsProxyWidget *Proxy = new QGraphicsProxyWidget(this); QGraphicsProxyWidget *Proxy = new QGraphicsProxyWidget(this);
Proxy->setWidget(mModbusDataTree); Proxy->setWidget(mModbusCCDataTree);
Proxy->setPos(0,0); Proxy->setPos(0,0);
mModbusDataTree->resize(750,750); mModbusCCDataTree->resize(350,750);
mModbusSEIDataTree = new QTreeWidget;
Proxy = new QGraphicsProxyWidget(this);
Proxy->setWidget(mModbusSEIDataTree);
Proxy->setPos(400,0);
mModbusSEIDataTree->resize(350,750);
mRefreshTimer = new QTimer(); mRefreshTimer = new QTimer();
mRefreshTimer->setSingleShot(false); mRefreshTimer->setSingleShot(false);
@ -38,20 +57,21 @@ CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent)
connect(mRefreshTimer,SIGNAL(timeout()),this,SLOT(RefreshTimerExpired())); connect(mRefreshTimer,SIGNAL(timeout()),this,SLOT(RefreshTimerExpired()));
QList<QTreeWidgetItem *> Items; QList<QTreeWidgetItem *> CCTableItems;
mModbusDataTree->setColumnCount(5); mModbusCCDataTree->setColumnCount(3);
mModbusDataTree->setHeaderItem(new QTreeWidgetItem(QStringList()<<"Flag/Alarme"<<"Valeur CC"<<"Rang CC"<<"Valeur SEI"<<"Rang SEI")); mModbusCCDataTree->setHeaderItem(new QTreeWidgetItem(QStringList()<<"Flag/Alarme CC"<<"Valeur CC"<<"Rang / Donnée "));
//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(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")); CCTableItems.append(new QTreeWidgetItem(QStringList()<<"ZT1"));
Items.append(new QTreeWidgetItem(QStringList()<<"ZT2")); CCTableItems.append(new QTreeWidgetItem(QStringList()<<"ZT2"));
Items.append(new QTreeWidgetItem(QStringList()<<"ZT")); CCTableItems.append(new QTreeWidgetItem(QStringList()<<"ZT"));
CCTableItems.append(new QTreeWidgetItem(QStringList()<<"CC"));
QTreeWidgetItem* Item; QTreeWidgetItem* Item;
// Item = new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarmes")); // Item = new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarmes"));
// Items.at(0)->addChild(Item); // CCTableItems.at(0)->addChild(Item);
Item = Items.at(0); Item = CCTableItems.at(0); //ZT1
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #1")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #2")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #2")<<"0"<<"---"));
@ -78,7 +98,7 @@ CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent)
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V00 ZT1")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V00 ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT1")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT1")<<"0"<<"---"));
Item = Items.at(1); Item = CCTableItems.at(1); //ZT2
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #1")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #2")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #2")<<"0"<<"---"));
@ -95,17 +115,114 @@ CModbusDisplayPage::CModbusDisplayPage(QGraphicsWidget *parent)
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V02 ZT2")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V02 ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT2")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT2")<<"0"<<"---"));
Item = Items.at(2); Item = CCTableItems.at(2); //ZT
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog ZT")<<"0"<<"---")); Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog ZT")<<"0"<<"---"));
Item = CCTableItems.at(3); //CC
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog CC")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("AN1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("AN2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Inhib. ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Inhib ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Type MR ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Type MR ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID1 MR ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID2 MR ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID3 MR ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID1 MR ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID2 MR ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("ID3 MR ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("MAJ Date")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Secondes")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Heure Minutes")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Mois Jour")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Année")<<"0"<<"---"));
mModbusDataTree->insertTopLevelItems(0,Items); mModbusCCDataTree->insertTopLevelItems(0,CCTableItems);
mModbusDataTree->resizeColumnToContents(1); mModbusCCDataTree->resizeColumnToContents(1);
mModbusDataTree->expandAll(); mModbusCCDataTree->expandAll();
mModbusDataTree->resizeColumnToContents(0); mModbusCCDataTree->resizeColumnToContents(0);
QList<QTreeWidgetItem *> SEITableItems;
mModbusSEIDataTree->setColumnCount(3);
mModbusSEIDataTree->setHeaderItem(new QTreeWidgetItem(QStringList()<<"Flag/Alarme SEI"<<"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"))));
SEITableItems.append(new QTreeWidgetItem(QStringList()<<"ZT1"));
SEITableItems.append(new QTreeWidgetItem(QStringList()<<"ZT2"));
SEITableItems.append(new QTreeWidgetItem(QStringList()<<"ZT"));
SEITableItems.append(new QTreeWidgetItem(QStringList() << "SEI"));
// QTreeWidgetItem* Item;
// Item = new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarmes"));
// SEITableItems.at(0)->addChild(Item);
Item = SEITableItems.at(0); //ZT1
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT1 #4")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT1 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT1 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT1 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT1 #4")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu De Guidage ZT1 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu De Guidage ZT1 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu De Guidage ZT1 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu De Guidage ZT1 #4")<<"0"<<"---"));
Item ->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Frotteur Négatif ZT1 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Frotteur Négatif ZT1 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Frotteur Négatif ZT1 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Frotteur Négatif ZT1 #4")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Itinéraire")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V00 ZT1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT1")<<"0"<<"---"));
Item = SEITableItems.at(1); //ZT2
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Intérieur ZT2 #4")<<"0"<<"---"));
// Items.at(1)->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8(" ")));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT2 #1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT2 #2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT2 #3")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Pneu Porteur Extérieur ZT2 #4")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Alarme V02 ZT2")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Panne Équipement ZT2")<<"0"<<"---"));
Item = SEITableItems.at(2); //ZT
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog ZT")<<"0"<<"---"));
Item = SEITableItems.at(3); //SEI
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog SEI")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("AN1")<<"0"<<"---"));
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("AN2")<<"0"<<"---"));
mModbusSEIDataTree->insertTopLevelItems(0,SEITableItems);
mModbusSEIDataTree->resizeColumnToContents(1);
mModbusSEIDataTree->expandAll();
mModbusSEIDataTree->resizeColumnToContents(0);
} }
@ -114,12 +231,14 @@ void CModbusDisplayPage::resizeEvent(QGraphicsSceneResizeEvent *event)
Q_UNUSED(event) Q_UNUSED(event)
mBackgroundRect->setRect(boundingRect()); mBackgroundRect->setRect(boundingRect());
mCloseBtn->setPos(50,boundingRect().height()-50); mCloseBtn->setPos(50,boundingRect().height()-50);
mModbusDataTree->resize(boundingRect().width(),boundingRect().height()-50); mModbusCCDataTree->setGeometry(0,50,((boundingRect().width()/2) - 10),boundingRect().height()-100);
mModbusSEIDataTree->setGeometry((boundingRect().width()/2),50,(boundingRect().width()/2),boundingRect().height()-100);
} }
CModbusDisplayPage::~CModbusDisplayPage() CModbusDisplayPage::~CModbusDisplayPage()
{ {
delete mModbusDataTree; delete mModbusCCDataTree;
} }
void CModbusDisplayPage::ButtonClicked(CTextButtonWidget *button) void CModbusDisplayPage::ButtonClicked(CTextButtonWidget *button)
@ -133,25 +252,22 @@ void CModbusDisplayPage::ButtonClicked(CTextButtonWidget *button)
int CModbusDisplayPage::UpdateTable(int Source) int CModbusDisplayPage::UpdateTable(int Source)
{ {
CModbusRepository *SourceRepo; return RET_OK;
}
void CModbusDisplayPage::UpdateCCModbusTable()
{
if(mCCRepoHandle == 0 ||
mSEIRepoHandle == 0 ||
mProgramHandle == 0)
{
return;
}
CZTInfo *DataStruct = new CZTInfo; CZTInfo *DataStruct = new CZTInfo;
bool OK = false; bool OK = false;
// quint16 data = mCCModbusRepo.GetSingleReg(MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD,&OK);
if(Source == CC_MODBUS_TABLE_SOURCE) quint16 data = mCCRepoHandle->GetSingleReg(MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD,&OK);
{
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) if(OK == true)
{ {
@ -177,11 +293,11 @@ int CModbusDisplayPage::UpdateTable(int Source)
else else
{ {
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD)"); qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD)");
return RET_ERROR; return;
} }
QList<qint16> RankData; QList<qint16> RankData;
RankData = SourceRepo->GetRegs(MODBUS_ZT1_ALARM_RANKS_BASE_ADD,16,&OK); RankData = mCCRepoHandle->GetRegs(MODBUS_ZT1_ALARM_RANKS_BASE_ADD,16,&OK);
if(OK == true) if(OK == true)
{ {
DataStruct->mZT1Ranks = RankData; DataStruct->mZT1Ranks = RankData;
@ -189,10 +305,10 @@ int CModbusDisplayPage::UpdateTable(int Source)
else else
{ {
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_RANKS_BASE_ADD)"); qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT1_ALARM_RANKS_BASE_ADD)");
return RET_ERROR; return;
} }
data = SourceRepo->GetSingleReg(MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD,&OK); data = mCCRepoHandle->GetSingleReg(MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD,&OK);
if(OK == true) if(OK == true)
{ {
DataStruct->mZT2PPIAlarmFlag1 = (data & ZT2_PP_INT_FLAG_MASK_1) != 0; DataStruct->mZT2PPIAlarmFlag1 = (data & ZT2_PP_INT_FLAG_MASK_1) != 0;
@ -207,11 +323,11 @@ int CModbusDisplayPage::UpdateTable(int Source)
else else
{ {
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD)"); qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD)");
return RET_ERROR; return;
} }
RankData.clear(); RankData.clear();
RankData = SourceRepo->GetRegs(MODBUS_ZT2_ALARM_RANKS_BASE_ADD,8,&OK); RankData = mCCRepoHandle->GetRegs(MODBUS_ZT2_ALARM_RANKS_BASE_ADD,8,&OK);
if(OK == true) if(OK == true)
{ {
DataStruct->mZT2Ranks = RankData; DataStruct->mZT2Ranks = RankData;
@ -219,11 +335,11 @@ int CModbusDisplayPage::UpdateTable(int Source)
else else
{ {
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_RANKS_BASE_ADD)"); qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT2_ALARM_RANKS_BASE_ADD)");
return RET_ERROR; return;
} }
data = SourceRepo->GetSingleReg(MODBUS_MISC_DATA_BASE_REG_ADD,&OK); data = mCCRepoHandle->GetSingleReg(MODBUS_MISC_DATA_BASE_REG_ADD,&OK);
if(OK == true) if(OK == true)
{ {
@ -237,19 +353,142 @@ int CModbusDisplayPage::UpdateTable(int Source)
else else
{ {
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_PANNES_DATA_BASE_REG_ADD)"); qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_PANNES_DATA_BASE_REG_ADD)");
return RET_ERROR; return;
} }
DataStruct->mWatchdogZT = SourceRepo->GetSingleReg(MODBUS_ZT_WATCHDOG_REG_ADD,&OK); DataStruct->mWatchdogZT = mCCRepoHandle->GetSingleReg(MODBUS_ZT_WATCHDOG_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT_WATCHDOG_REG_ADD)");
return;
}
data = mCCRepoHandle->GetSingleReg(MODBUS_CC_WATCHDOG_BASE_REG_ADD,&OK);
if(OK == true)
{
DataStruct->mWatchdogRemote = (int)data;
}
else
{
qDebug("GetSingleReg failed in UpdateZTInfo (SEI_MODBUS_SEI_WATCHDOG_REG)");
return;
}
data = mCCRepoHandle->GetSingleReg(MODBUS_CC_AN_BASE_REG_ADD, &OK);
if(OK == true)
{
DataStruct->mAN1 = ((data & MODBUS_CC_FCYCLE_ZT1_FLAG_MASK) != 0);
DataStruct->mAN2 = ((data & MODBUS_CC_FCYCLE_ZT2_FLAG_MASK) != 0);
DataStruct->mInhibitZT1 = ((data & MODBUS_CC_INHIBIT_ZT1_FLAG_MASK) != 0);
DataStruct->mInhibitZT2 = ((data & MODBUS_CC_INHIBIT_ZT2_FLAG_MASK) != 0);
}
else
{
qDebug("GetSingleReg failed in UpdateZTInfo (SEI_MODBUS_SEI_ALARMS_RESET_REG)");
return;
}
DataStruct->mZT1TrainType = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT1_TRAIN_TYPE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT1_TRAIN_TYPE_REG_ADD)");
return;
}
DataStruct->mZT2TrainType = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT2_TRAIN_TYPE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT2_TRAIN_TYPE_REG_ADD)");
return;
}
DataStruct->mZT1TrainID1 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT1_TRAIN_ID_1_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT1_TRAIN_ID_1_REG_ADD)");
return;
}
DataStruct->mZT1TrainID2 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT1_TRAIN_ID_2_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT1_TRAIN_ID_2_REG_ADD)");
return;
}
DataStruct->mZT1TrainID3 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT1_TRAIN_ID_3_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT1_TRAIN_ID_3_REG_ADD)");
return;
}
DataStruct->mZT2TrainID1 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT2_TRAIN_ID_1_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT2_TRAIN_ID_1_REG_ADD)");
return;
}
DataStruct->mZT2TrainID2 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT2_TRAIN_ID_2_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT2_TRAIN_ID_2_REG_ADD)");
return;
}
DataStruct->mZT2TrainID3 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT2_TRAIN_ID_3_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT2_TRAIN_ID_3_REG_ADD)");
return;
}
DataStruct->mZT2TrainID3 = mCCRepoHandle->GetSingleReg(MODBUS_CC_ZT2_TRAIN_ID_3_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_ZT2_TRAIN_ID_3_REG_ADD)");
return;
}
DataStruct->mUpdateDateTimeFlag = mCCRepoHandle->GetSingleReg(MODBUS_CC_CLK_UPDATE_BASE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_CC_CLK_UPDATE_BASE_REG_ADD)");
return;
}
DataStruct->mNTPSeconds = mCCRepoHandle->GetSingleReg(MODUBS_CC_CLK_SEC_BASE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODUBS_CC_CLK_SEC_BASE_REG_ADD)");
return;
}
DataStruct->mNTPHourMinutes = mCCRepoHandle->GetSingleReg(MODUBS_CC_CLK_HR_MIN_BASE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODUBS_CC_CLK_HR_MIN_BASE_REG_ADD)");
return;
}
DataStruct->mNTPMonthDay = mCCRepoHandle->GetSingleReg(MODUBS_CC_CLK_MNT_DAY_BASE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODUBS_CC_CLK_MNT_DAY_BASE_REG_ADD)");
return;
}
DataStruct->mNTPYear = mCCRepoHandle->GetSingleReg(MODUBS_CC_CLK_YEAR_BASE_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODUBS_CC_CLK_YEAR_BASE_REG_ADD)");
return;
}
QTreeWidgetItem* Item; QTreeWidgetItem* Item;
QString TempStr; QString TempStr;
//ZT1 //ZT1
Item = mModbusDataTree->topLevelItem(0); Item = mModbusCCDataTree->topLevelItem(0);
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag1)); Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag1));
Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag2)); Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT1PPIAlarmFlag2));
@ -279,7 +518,8 @@ int CModbusDisplayPage::UpdateTable(int Source)
{ {
TempStr = "Secondaire"; TempStr = "Secondaire";
} }
Item->child(16)->setText(1,TempStr); Item->child(16)->setText(1,QString("%1").arg(DataStruct->mITI10_12Flag));
Item->child(16)->setText(2,TempStr);
Item->child(17)->setText(1,QString("%1").arg(DataStruct->mZT1V00AlarmFlag)); Item->child(17)->setText(1,QString("%1").arg(DataStruct->mZT1V00AlarmFlag));
Item->child(18)->setText(1,QString("%1").arg(DataStruct->mZT1PEQ1AlarmFlag)); Item->child(18)->setText(1,QString("%1").arg(DataStruct->mZT1PEQ1AlarmFlag));
@ -290,7 +530,7 @@ int CModbusDisplayPage::UpdateTable(int Source)
} }
//ZT2 //ZT2
Item = mModbusDataTree->topLevelItem(1); Item = mModbusCCDataTree->topLevelItem(1);
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag1)); Item->child(0)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag1));
Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag2)); Item->child(1)->setText(1,QString("%1").arg(DataStruct->mZT2PPIAlarmFlag2));
@ -311,32 +551,322 @@ int CModbusDisplayPage::UpdateTable(int Source)
} }
//Watchdog //Watchdog
Item = mModbusDataTree->topLevelItem(2); Item = mModbusCCDataTree->topLevelItem(2);
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogZT)); Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogZT));
//CC
Item = mModbusCCDataTree->topLevelItem(3);
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogRemote));
Item->child(1)->setText(1,QString("%1").arg(DataStruct->mAN1));
Item->child(2)->setText(1,QString("%1").arg(DataStruct->mAN2));
Item->child(3)->setText(1,QString("%1").arg(DataStruct->mInhibitZT1));
Item->child(4)->setText(1,QString("%1").arg(DataStruct->mInhibitZT2));
Item->child(5)->setText(1,QString("%1").arg(DataStruct->mZT1TrainType));
Item->child(5)->setText(2,CZTData::GetModbusTrainTypeString(DataStruct->mZT1TrainType));
Item->child(6)->setText(1,QString("%1").arg(DataStruct->mZT2TrainType));
Item->child(6)->setText(2,CZTData::GetModbusTrainTypeString(DataStruct->mZT2TrainType));
Item->child(7)->setText(1,QString("%1").arg(DataStruct->mZT1TrainID1));
Item->child(8)->setText(1,QString("%1").arg(DataStruct->mZT1TrainID2));
Item->child(9)->setText(1,QString("%1").arg(DataStruct->mZT1TrainID3));
Item->child(10)->setText(1,QString("%1").arg(DataStruct->mZT2TrainID1));
Item->child(11)->setText(1,QString("%1").arg(DataStruct->mZT2TrainID2));
Item->child(12)->setText(1,QString("%1").arg(DataStruct->mZT2TrainID3));
Item->child(13)->setText(1,QString("%1").arg(DataStruct->mUpdateDateTimeFlag));
Item->child(14)->setText(1,QString("0x%1").arg(DataStruct->mNTPSeconds,0,16));
Item->child(15)->setText(1,QString("0x%1").arg(DataStruct->mNTPHourMinutes,0,16));
Item->child(16)->setText(1,QString("0x%1").arg(DataStruct->mNTPMonthDay,0,16));
Item->child(17)->setText(1,QString("0x%1").arg(DataStruct->mNTPYear,0,16));
QDateTime NetworkTime;
quint8 Secs, Minutes, Hours, Month, Day;
quint8 temp;
temp = (quint8)(DataStruct->mNTPSeconds >> 8);
Secs = BCDToDecByte(temp);
temp = (quint8)(DataStruct->mNTPHourMinutes & 0x00FF);
Minutes = BCDToDecByte(temp);
temp = (qint8)(DataStruct->mNTPHourMinutes >> 8);
Hours = BCDToDecByte(temp);
temp = (quint8)(DataStruct->mNTPMonthDay & 0x00FF);
Day = BCDToDecByte(temp);
temp = (quint8)(DataStruct->mNTPMonthDay >> 8);
Month = BCDToDecByte(temp);
quint16 Year = DataStruct->mNTPYear;
Year = BCDToDecWord(Year);
NetworkTime.setTimeSpec(Qt::UTC);
NetworkTime.setDate(QDate(Year,Month,Day));
NetworkTime.setTime(QTime(Hours,Minutes,Secs));
Item->child(17)->setText(2,NetworkTime.toLocalTime().toString("yyyy-MM-dd hh:mm:ss"));
delete DataStruct; delete DataStruct;
return RET_OK;
}
void CModbusDisplayPage::UpdateCCModbusTable()
{
UpdateTable(CC_MODBUS_TABLE_SOURCE);
} }
void CModbusDisplayPage::UpdateSEIModbusTable() void CModbusDisplayPage::UpdateSEIModbusTable()
{ {
UpdateTable(SEI_MODBUS_TABLE_SOURCE); if(mCCRepoHandle == 0 ||
mSEIRepoHandle == 0 ||
mProgramHandle == 0)
{
return;
}
CZTInfo *DataStruct = new CZTInfo;
bool OK = false;
quint16 data = mSEIRepoHandle->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;
}
QList<qint16> RankData;
RankData = mSEIRepoHandle->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;
}
data = mSEIRepoHandle->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;
}
RankData.clear();
RankData = mSEIRepoHandle->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;
}
data = mSEIRepoHandle->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;
}
DataStruct->mWatchdogZT = mSEIRepoHandle->GetSingleReg(MODBUS_ZT_WATCHDOG_REG_ADD,&OK);
if(OK == false)
{
qDebug("GetSingleReg failed in UpdateZTInfo (MODBUS_ZT_WATCHDOG_REG_ADD)");
return;
}
data = mSEIRepoHandle->GetSingleReg(SEI_MODBUS_SEI_WATCHDOG_REG,&OK);
if(OK == true)
{
DataStruct->mWatchdogRemote = (int)data;
}
else
{
qDebug("GetSingleReg failed in UpdateZTInfo (SEI_MODBUS_SEI_WATCHDOG_REG)");
return;
}
data = mSEIRepoHandle->GetSingleReg(SEI_MODBUS_SEI_ALARMS_RESET_REG, &OK);
if(OK == true)
{
DataStruct->mAN1 = ((data & SEI_MODBUS_SEI_ZT1_ALARM_RESET_MASK) != 0);
DataStruct->mAN2 = ((data & SEI_MODBUS_SEI_ZT2_ALARM_RESET_MASK) != 0);
}
else
{
qDebug("GetSingleReg failed in UpdateZTInfo (SEI_MODBUS_SEI_ALARMS_RESET_REG)");
return;
}
QTreeWidgetItem* Item;
QString TempStr;
//ZT1
Item = mModbusSEIDataTree->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,QString("%1").arg(DataStruct->mITI10_12Flag));
Item->child(16)->setText(2,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 = mModbusSEIDataTree->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 = mModbusSEIDataTree->topLevelItem(2);
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogZT));
Item = mModbusSEIDataTree->topLevelItem(3); //SEI
Item->child(0)->setText(1,QString("%1").arg(DataStruct->mWatchdogRemote));
Item->child(1)->setText(1,QString("%1").arg(DataStruct->mAN1));
Item->child(2)->setText(1,QString("%1").arg(DataStruct->mAN2));
delete DataStruct;
} }
void CModbusDisplayPage::RefreshTimerExpired() void CModbusDisplayPage::RefreshTimerExpired()
{ {
UpdateTable(CC_MODBUS_TABLE_SOURCE); UpdateCCModbusTable();
UpdateTable(SEI_MODBUS_TABLE_SOURCE); UpdateSEIModbusTable();
// UpdateTable(CC_MODBUS_TABLE_SOURCE);
// UpdateTable(SEI_MODBUS_TABLE_SOURCE);
} }
void CModbusDisplayPage::showEvent(QShowEvent *event) void CModbusDisplayPage::showEvent(QShowEvent *event)
{ {
if(mCCRepoHandle == 0 ||
mSEIRepoHandle == 0 ||
mProgramHandle == 0)
{
return;
}
mRefreshTimer->start(); mRefreshTimer->start();
} }
quint8 CModbusDisplayPage::BCDToDecByte(const quint8 byte)
{
quint8 out = 0;
quint8 temp = 0;
out += byte & 0x0F;
temp = (byte >> 4) & 0x0F;
out += (temp * 10);
return out;
}
quint16 CModbusDisplayPage::BCDToDecWord(const quint16 word)
{
quint16 out = 0;
quint16 temp = 0;
out += word & 0x000F;
temp = (word >> 4) & 0x000F;
out += (temp * 10);
temp = (word >> 8) & 0x000F;
out += (temp * 100);
temp = (word >> 12) & 0x000F;
out += (temp * 1000);
return out;
}

View File

@ -30,13 +30,15 @@ public:
CZoneTest *mProgramHandle; CZoneTest *mProgramHandle;
QGraphicsRectItem *mBackgroundRect; QGraphicsRectItem *mBackgroundRect;
CTextButtonWidget *mCloseBtn; CTextButtonWidget *mCloseBtn;
QTreeWidget *mModbusDataTree; QTreeWidget *mModbusCCDataTree, *mModbusSEIDataTree;
CModbusRepository *mCCRepoHandle, *mSEIRepoHandle; CModbusRepository *mCCRepoHandle, *mSEIRepoHandle;
QTimer *mRefreshTimer; QTimer *mRefreshTimer;
private: private:
int UpdateTable(int source); int UpdateTable(int source);
quint8 BCDToDecByte(const quint8 byte);
quint16 BCDToDecWord(const quint16 word);
signals: signals:
@ -92,6 +94,20 @@ public:
int mWatchdogZT; int mWatchdogZT;
int mWatchdogRemote;
int mAN1;
int mAN2;
int mInhibitZT1;
int mInhibitZT2;
int mZT1TrainType;
int mZT2TrainType;
int mZT1TrainID1, mZT1TrainID2, mZT1TrainID3;
int mZT2TrainID1, mZT2TrainID2, mZT2TrainID3;
int mUpdateDateTimeFlag;
int mNTPSeconds, mNTPHourMinutes, mNTPMonthDay, mNTPYear;
CZTInfo(){;} CZTInfo(){;}
}; };

View File

@ -216,6 +216,7 @@ void CModbusSEIMgr::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Lengt
qint16 WD = mModbusRepo->GetSingleReg(SEI_MODBUS_SEI_WATCHDOG_REG); qint16 WD = mModbusRepo->GetSingleReg(SEI_MODBUS_SEI_WATCHDOG_REG);
WD = (WD & SEI_MODBUS_SEI_WATCHDOG_MASK); WD = (WD & SEI_MODBUS_SEI_WATCHDOG_MASK);
// qDebug("WD = %d",WD);
if(FirstUpdate) if(FirstUpdate)
{ {
mSEIWatchdogState = WD; mSEIWatchdogState = WD;

View File

@ -929,6 +929,20 @@ bool CZoneTest::eventFilter(QObject *obj, QEvent *event)
} }
return true; //keep the keystroke return true; //keep the keystroke
} }
else if(KeyEvent->key() == Qt::Key_F4) //F4 Key toggles the Modbus data display page
{
if(mZTSettings->mUseModbusCC == true)
{
if(panel.mModbusDisplayPage->isVisible())
{
panel.mModbusDisplayPage->hide();
}
else
{
panel.mModbusDisplayPage->show();
}
}
}
} }
} }