343 lines
14 KiB
C++
343 lines
14 KiB
C++
#include "ModbusDisplayPage.h"
|
|
#include "Zonetest.h"
|
|
#include <QGraphicsProxyWidget>
|
|
#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<QTreeWidgetItem *> 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()<<QString().fromUtf8("Alarmes"));
|
|
// Items.at(0)->addChild(Item);
|
|
|
|
Item = Items.at(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 #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 = Items.at(1);
|
|
|
|
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 = Items.at(2);
|
|
Item->addChild(new QTreeWidgetItem(QStringList()<<QString().fromUtf8("Watchdog ZT")<<"0"<<"---"));
|
|
|
|
|
|
mModbusDataTree->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<qint16> 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();
|
|
}
|