Compare commits

...
12 Commits
Author SHA1 Message Date
jfmartel 9cc2c4d16b Ajout plus de traces pour debug Modbus 2025-11-17 14:05:08 -05:00
jfmartel cec26f952b Version 1.34
Version 1.34
-Ajout du log des requêtes d'écriture Modbus dans le IngLog
2025-11-16 09:18:28 -05:00
jfmartel 004e7234f2 +//Version 1.33
+//-Inhibition des déclenchements PEQ avec la désactivation des TK
+//-Remise à zéro du Nb de passage  aujourd'hui avec le reste à 3h
2024-10-16 09:54:35 -04:00
jfmartel e73f7afbed Ajout de la fonction touch dans GetSources.sh 2024-09-10 07:34:31 -04:00
jfmartel bc9765cd99 //Version 1.32
//-Ajout des flags d'etat des fonctions de détection dans le fichier log
+//-Retrait de la possibilité d'inhiber l'analyse des fonctions
+//-Changement de l'heure de reset des données Historien à 3h plutôt
qu'à minuit.
//Version 1.32
//-Ajout des flags d'etat des fonctions de détection dans le fichier
log
+//-Retrait de la possibilité d'inhiber l'analyse des fonctions
+//-Changement de l'heure de reset des données Historien à 3h plutôt
qu'à minuit.
2024-09-09 10:54:50 -04:00
jfmartel 4be063c141 Ajout des flags d'etat des fonctions de détection dans le fichier log 2024-08-15 14:02:55 -04:00
jfmartel c1ce25c4c6 Encore problème de reset des stats du jour 2024-08-05 09:55:11 -04:00
jfmartel ae4c5b4738 Modif script UpdateZT pour version 1.30 2024-07-30 09:07:38 -04:00
jfmartel 2f61197fb6 Correction reset nb passages aujourd'hui 2024-07-30 07:56:02 -04:00
jfmartel 48b69ebe97 Correction de la remise à zéro des données du jour dans Historien 2024-07-22 08:39:54 -04:00
jfmartel c886dc9aed Correction du timer de reset dans historien 2024-07-16 11:53:59 -04:00
jfmartel 9d3e0e9a53 Corrections suite aux essais historien PI 2024-07-12 12:00:54 -04:00
27 changed files with 823 additions and 142 deletions
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
#
#Ajout des paramètres SFTP au fichier de config ZT
ZTEXECDIR=/home/zonetest/ZT
USBEXECDIR=$VERSIONROOT/EXE
echo " "
echo "----------------------------------------------------"
echo "Ajout des paramètres Historien PI au fichier de config"
echo "----------------------------------------------------"
echo "Voulez-vous vraiment continuer? (o ou n)"
read UserInput
if [ "$UserInput" != "o" ]; then
echo "Annulation..."
exit 0
fi
CONFIG_FILE_PATH=$ZTEXECDIR/Configuration/ZT.cfg
echo " "
echo "Ajout des paramètres Historien PI dans le fichier de configuration"
echo "
#----------------------------------
#Paramètres de communication Modbus avec le SEI (Serveur NetTrac).
#Changer cette valeur à OUI, NON ou AUTO pour activer la communication Modbus l'historienPI.
# OUI: Active la communication avec l'historien.
# NON: Désactive la communication avec l'historien.
ACTIVER_HISTORIEN_PI=OUI
#Adresse modbus de la ZT
HISTORIEN_PI_DEVID=1
#Port Modbus/TCP du serveur historien
HISTORIEN_PI_PORT=503
\n" >> $CONFIG_FILE_PATH
echo "Modification du fichier de configuration OK"
+59
View File
@@ -0,0 +1,59 @@
#!/bin/bash
#
#Ajout des paramètres SFTP au fichier de config ZT
ZTEXECDIR=/home/zonetest/ZT
USBEXECDIR=$VERSIONROOT/EXE
echo " "
echo "----------------------------------------------------"
echo "Ajout des paramètres SFTP au fichier de config"
echo "----------------------------------------------------"
echo "Voulez-vous vraiment continuer? (o ou n)"
read UserInput
if [ "$UserInput" != "o" ]; then
echo "Annulation..."
exit 0
fi
CONFIG_FILE_PATH=$ZTEXECDIR/Configuration/ZT.cfg
echo " "
echo "Ajout des informations SFTP & SAMBA dans le fichier de configuration"
echo "
#----------------------------------
#Paramètres du dossier partagé sur le réseau (SAMBA) pour la copie des fichiers logs
#Activation de la copie des fichiers sur le réseau (OUI ou NON)
ACTIVER_SAMBA=NON
#Path du dossier cible sur le réseau
NETWORK_SHARE_PATH=//10.133.3.136/Transfert$/vers_corpo/CT
#Login pour accéder au drive
NETWORK_SHARE_LOGIN=service.ct
#Mot de passe pour accéder au drive
NETWORK_SHARE_PASSWORD=SigN4lisat10n!77240TraNsf3Rt
#Nom de domaine du drive réseau. Commenter si aucun nom de domaine ne doit être spécifié
NETWORK_SHARE_DOMAIN=metro
#----------------------------------
#Paramètres du serveur SFTP pour la copie des fichiers logs
#Activation de la copie des fichiers sur le réseau (OUI ou NON)
ACTIVER_SFTP=OUI
#Login pour accéder au serveur SFTP
SFTP_LOGIN=service.ct
#Password pour accéder au serveur SFTP
SFTP_PASSWORD=SigN4lisat10n!77240TraNsf3Rt
#Adresse du serveur
SFTP_SERVER_ADDRESS=10.133.3.136
#Répertoire de destination sur le serveur. Doit être vide pour le client SFTP.
SFTP_DESTINATION=
#SFTP_DESTINATION=/Transfert$/vers_corpo/CT/
\n" >> $CONFIG_FILE_PATH
echo "Modification du fichier de configuration OK"
+2 -2
View File
@@ -93,10 +93,10 @@ 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
Binary file not shown.
+2
View File
@@ -11,4 +11,6 @@ rsync -av --exclude 'ZT.pro.*' --exclude 'Debug/*' --exclude 'Release/*' --exclu
rm -rf ./ZT/Debug/* rm -rf ./ZT/Debug/*
rm -rf ./ZT/Release/* rm -rf ./ZT/Release/*
find ./ZT/sources/ -type f -exec touch {} +
exit exit
+5 -5
View File
@@ -3,8 +3,8 @@
#ZT Update Script V1.0 #ZT Update Script V1.0
ZTVERSION=V1.27 ZTVERSION=V1.32
VERSIONROOT=ZoneTest_V127 #Nom du répertoire sur la clef USB contenant la nouvelle version VERSIONROOT=ZoneTest_V132 #Nom du répertoire sur la clef USB contenant la nouvelle version
ARCHIVEDIR=/home/zonetest/Archives ARCHIVEDIR=/home/zonetest/Archives
ZTEXECDIR=/home/zonetest/ZT ZTEXECDIR=/home/zonetest/ZT
USBEXECDIR=$VERSIONROOT/EXE USBEXECDIR=$VERSIONROOT/EXE
@@ -62,12 +62,12 @@ else
fi fi
echo " " echo " "
echo "Création du répertoire réseau" echo "Destruction des fichiers de passage existants"
if mkdir -p /home/zonetest/ZT/NetDrive if rm /home/zonetest/ZT/Trains/*
then then
echo "OK" echo "OK"
else else
echo "Erreur de création du répertoire. Il faudra le faire manuellement..." echo "Erreur lors de la destruction des fichiers de passage. Il faudra le faire manuellement"
exit 1 exit 1
fi fi
+9 -3
View File
@@ -124,7 +124,9 @@ SOURCES += \
sources/NetDriveMgr.cpp \ sources/NetDriveMgr.cpp \
sources/SFTPServerManager.cpp \ sources/SFTPServerManager.cpp \
sources/Modbus/PIHistorianManager.cpp \ sources/Modbus/PIHistorianManager.cpp \
sources/Modbus/PIHistorianSession.cpp sources/Modbus/PIHistorianSession.cpp \
sources/GuiElements/HistorienDisplayPage.cpp \
sources/Modbus/HistorienData.cpp
HEADERS += \ HEADERS += \
sources/MainPanel.h \ sources/MainPanel.h \
@@ -250,7 +252,9 @@ HEADERS += \
sources/SFTPServerManager.h \ sources/SFTPServerManager.h \
sources/Modbus/PIHistorianManager.h \ sources/Modbus/PIHistorianManager.h \
sources/Modbus/PIHistorianSession.h \ sources/Modbus/PIHistorianSession.h \
sources/Modbus/PIHistorianDefs.h sources/Modbus/PIHistorianDefs.h \
sources/GuiElements/HistorienDisplayPage.h \
sources/Modbus/HistorienData.h
#QMAKE_LIBDIR += ./ExtLib #QMAKE_LIBDIR += ./ExtLib
@@ -311,7 +315,9 @@ OTHER_FILES += \
UpdateZT.sh \ UpdateZT.sh \
sftpbatch \ sftpbatch \
password \ password \
Instsshpass.sh Instsshpass.sh \
AddHistorienCfg.sh \
AddSFTPCfg.sh
INCLUDEPATH += $$PWD/ \ INCLUDEPATH += $$PWD/ \
$$PWD/SeaMaxLinux/ \ $$PWD/SeaMaxLinux/ \
+3 -3
View File
@@ -1,3 +1,3 @@
put ./Trains/LOGZT1_2024-07-11-13-46-13-519.bin CVRT-D-LOGZT1_2024-07-11-13-46-13-519.bin put ./Trains/LOGZT1_2025-07-16-10-44-34-842.bin SMIC-D-LOGZT1_2025-07-16-10-44-34-842.bin
put ./LOG/LogZT.txt CVRT-LogZT.txt put ./LOG/LogZT.txt SMIC-LogZT.txt
put ./ING/IngLog.txt CVRT-IngLog.txt put ./ING/IngLog.txt SMIC-IngLog.txt
+2 -1
View File
@@ -52,7 +52,8 @@
#define DEFAULT_PASSWORD "zonetest" #define DEFAULT_PASSWORD "zonetest"
#define BASE_FILE_MAGICNBR 0xDEADBEEF #define BASE_FILE_MAGICNBR 0xDEADBEEF
#define TRAINLOG_FILE_MAGICNBR BASE_FILE_MAGICNBR + 15 //#define TRAINLOG_FILE_MAGICNBR BASE_FILE_MAGICNBR + 15
#define TRAINLOG_FILE_MAGICNBR BASE_FILE_MAGICNBR + 16 //Ajout de l'état d'inhibition des fonctions de détection dans le fichier Log
//Misc definitions //Misc definitions
@@ -78,6 +78,8 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
QGraphicsTextItem *Label = new QGraphicsTextItem("Analyse",this); QGraphicsTextItem *Label = new QGraphicsTextItem("Analyse",this);
Label->setFont(font); Label->setFont(font);
Label->setPos(ArrayTopLeft.x() - 10,ArrayTopLeft.y() - YLineSpacing); Label->setPos(ArrayTopLeft.x() - 10,ArrayTopLeft.y() - YLineSpacing);
Label->hide(); //JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
Label = new QGraphicsTextItem("TK",this); Label = new QGraphicsTextItem("TK",this);
Label->setFont(font); Label->setFont(font);
@@ -90,6 +92,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mFNFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mFNFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mFNFuncToggleBtn->resize(SlideButtonSize); mFNFuncToggleBtn->resize(SlideButtonSize);
mFNFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mFNFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mFNFuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
mFNTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mFNTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mFNTKToggleBtn->resize(SlideButtonSize); mFNTKToggleBtn->resize(SlideButtonSize);
mFNTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing)); mFNTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@@ -101,6 +104,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPGFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPGFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPGFuncToggleBtn->resize(SlideButtonSize); mPGFuncToggleBtn->resize(SlideButtonSize);
mPGFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mPGFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mPGFuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
mPGTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPGTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPGTKToggleBtn->resize(SlideButtonSize); mPGTKToggleBtn->resize(SlideButtonSize);
mPGTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing)); mPGTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@@ -112,6 +116,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPPFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPPFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPPFuncToggleBtn->resize(SlideButtonSize); mPPFuncToggleBtn->resize(SlideButtonSize);
mPPFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mPPFuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mPPFuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
mPPTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPPTKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPPTKToggleBtn->resize(SlideButtonSize); mPPTKToggleBtn->resize(SlideButtonSize);
mPPTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing)); mPPTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@@ -123,6 +128,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPP2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPP2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPP2FuncToggleBtn->resize(SlideButtonSize); mPP2FuncToggleBtn->resize(SlideButtonSize);
mPP2FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mPP2FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mPP2FuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
mPP2TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mPP2TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPP2TKToggleBtn->resize(SlideButtonSize); mPP2TKToggleBtn->resize(SlideButtonSize);
mPP2TKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing)); mPP2TKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@@ -134,6 +140,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mZT1FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mZT1FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT1FuncToggleBtn->resize(SlideButtonSize); mZT1FuncToggleBtn->resize(SlideButtonSize);
mZT1FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mZT1FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mZT1FuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
connect(mZT1FuncToggleBtn,SIGNAL(ButtonToggled(CToggleButtonWidget*)),this,SLOT(ToggleButtonToggled(CToggleButtonWidget*))); connect(mZT1FuncToggleBtn,SIGNAL(ButtonToggled(CToggleButtonWidget*)),this,SLOT(ToggleButtonToggled(CToggleButtonWidget*)));
mZT1TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mZT1TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT1TKToggleBtn->resize(SlideButtonSize); mZT1TKToggleBtn->resize(SlideButtonSize);
@@ -147,6 +154,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mZT2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mZT2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT2FuncToggleBtn->resize(SlideButtonSize); mZT2FuncToggleBtn->resize(SlideButtonSize);
mZT2FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing)); mZT2FuncToggleBtn->setPos(ArrayTopLeft.x(),ArrayTopLeft.y() + (i*YLineSpacing));
mZT2FuncToggleBtn->hide();//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
connect(mZT2FuncToggleBtn,SIGNAL(ButtonToggled(CToggleButtonWidget*)),this,SLOT(ToggleButtonToggled(CToggleButtonWidget*))); connect(mZT2FuncToggleBtn,SIGNAL(ButtonToggled(CToggleButtonWidget*)),this,SLOT(ToggleButtonToggled(CToggleButtonWidget*)));
mZT2TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this); mZT2TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT2TKToggleBtn->resize(SlideButtonSize); mZT2TKToggleBtn->resize(SlideButtonSize);
@@ -0,0 +1,303 @@
#include "HistorienDisplayPage.h"
#include "Zonetest.h"
#include <QGraphicsProxyWidget>
#include "ModbusCCDefs.h"
#include "ModbusSEIDefs.h"
#include "ModbusRepository.h"
#include <QGraphicsTextItem>
#include "HistorienData.h"
#include "PIHistorianDefs.h"
CHistorienDisplayPage::CHistorienDisplayPage(QGraphicsWidget *parent)
{
setParentItem(parent);
mProgramHandle = 0;
mHistorienRepoHandle = 0;
mBackgroundRect = new QGraphicsRectItem(boundingRect(), this);
QBrush BackgroundBrush(QColor(245, 245, 255,200));
mBackgroundRect->setBrush(BackgroundBrush);
QGraphicsTextItem *TableTitle = new QGraphicsTextItem("Table Modbus Historien",this);
QFont font;
font.setPointSize(18);
TableTitle->setFont(font);
TableTitle->setPos(40,10);
mCloseBtn = new CTextButtonWidget("Fermer");
// mCloseBtn->setParentItem(this);
mCloseBtn->setPos(775,610);
connect(mCloseBtn,SIGNAL(TxtButtonClicked(CTextButtonWidget*)),this,SLOT(ButtonClicked(CTextButtonWidget*)));
mHistorienDataTree = new QTreeWidget;
QGraphicsProxyWidget *Proxy = new QGraphicsProxyWidget(this);
Proxy->setWidget(mHistorienDataTree);
Proxy->setPos(0,0);
QTreeWidgetItem *Item = new QTreeWidgetItem(QStringList()<<"ZT");
mHistorienDataTree->setColumnCount(3);
mHistorienDataTree->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"<<"---"));
mHistorienDataTree->insertTopLevelItem(0,Item);
mHistorienDataTree->expandAll();
mHistorienDataTree->resizeColumnToContents(0);
mHistorienDataTree->resizeColumnToContents(1);
mHistorienDataTree->resizeColumnToContents(2);
mHistorienDataTree->resize(750,750);
mRefreshTimer = new QTimer();
mRefreshTimer->setSingleShot(false);
mRefreshTimer->setInterval(500);
mRefreshTimer->stop();
connect(mRefreshTimer,SIGNAL(timeout()),this,SLOT(RefreshTimerExpired()));
}
void CHistorienDisplayPage::UpdateHistorienTable()
{
if(mHistorienRepoHandle == 0)
return;
CHistorienData NewData;
bool OK;
mHistorienRepoHandle->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 = mHistorienRepoHandle->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 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_YEAR_REG_ADD,&OK);
NewData.mBootDateMonth = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_MONTH_REG_ADD,&OK);
NewData.mBootDateDay = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_DAY_REG_ADD,&OK);
NewData.mBootDateHour = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_HOUR_REG_ADD,&OK);
NewData.mBootDateMinutes = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_MINUTES_REG_ADD,&OK);
NewData.mBootDateSeconds = mHistorienRepoHandle->GetSingleReg(HISTORIAN_BOOT_DATE_SECONDS_REG_ADD,&OK);
NewData.mTotalTrains = mHistorienRepoHandle->GetSingleReg(HISTORIAN_TRAINS_TOTAL_REG_ADD,&OK);
NewData.mTotalDetections = mHistorienRepoHandle->GetSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,&OK);
NewData.mTrainsToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD ,&OK);
NewData.mDetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD ,&OK);
NewData.mFNDetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_FN_DETECTS_TODAY_REG_ADD,&OK);
NewData.mPPIDetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_PPI_ZT1_DETECTS_TODAY_REG_ADD,&OK);
NewData.mPPEDetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD,&OK);
NewData.mPGDetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_PG_DETECTS_TODAY_REG_ADD,&OK);
NewData.mPPIZT2DetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,&OK);
NewData.mPPEZT2DetectToday = mHistorienRepoHandle->GetSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,&OK);
NewData.mLastTrainYear = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_YEAR_REG_ADD,&OK);
NewData.mLastTrainMonth = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_MONTH_REG_ADD,&OK);
NewData.mLastTrainDay = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_DAY_REG_ADD,&OK);
NewData.mLastTrainHour = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_HOUR_REG_ADD,&OK);
NewData.mLastTrainMinutes = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_MINUTE_REG_ADD,&OK);
NewData.mLastTrainSeconds = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_SECONDS_REG_ADD,&OK);
NewData.mLastZone = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_ZONE_REG_ADD ,&OK);
NewData.mNbDetectLasTrain = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD ,&OK);
NewData.mLastTrainPPI1 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_1_REG_ADD,&OK);
NewData.mLastTrainPPI2 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_2_REG_ADD,&OK);
NewData.mLastTrainPPI3 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_3_REG_ADD,&OK);
NewData.mLastTrainPPI4 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPI_RK_4_REG_ADD,&OK);
NewData.mLastTrainPPE1 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_1_REG_ADD,&OK);
NewData.mLastTrainPPE2 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_2_REG_ADD,&OK);
NewData.mLastTrainPPE3 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_3_REG_ADD,&OK);
NewData.mLastTrainPPE4 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PPE_RK_4_REG_ADD,&OK);
NewData.mLastTrainPG1 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_1_REG_ADD,&OK);
NewData.mLastTrainPG2 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_2_REG_ADD,&OK);
NewData.mLastTrainPG3 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_3_REG_ADD,&OK);
NewData.mLastTrainPG4 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PG_RK_4_REG_ADD,&OK);
NewData.mLastTrainFN1 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_1_REG_ADD,&OK);
NewData.mLastTrainFN2 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_2_REG_ADD,&OK);
NewData.mLastTrainFN3 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_3_REG_ADD,&OK);
NewData.mLastTrainFN4 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_FN_RK_4_REG_ADD,&OK);
NewData.mLastTrainCountErr = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_COMPTAGE_DET_REG_ADD,&OK);
NewData.mLastTrainPEQ = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_PEQ_REG_ADD,&OK);
NewData.mLastTrainType = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_TYPE_REG_ADD,&OK);
NewData.mLastTrainCompo1 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_ID1_REG_ADD,&OK);
NewData.mLastTrainCompo2 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_ID2_REG_ADD,&OK);
NewData.mLastTrainCompo3 = mHistorienRepoHandle->GetSingleReg(HISTORIAN_LAST_TRAIN_ID3_REG_ADD,&OK);
QTreeWidgetItem* Item = mHistorienDataTree->topLevelItem(0);
Item->child(0)->setText(2,QString("%1").arg(NewData.mFNEnabled));
Item->child(1)->setText(2,QString("%1").arg(NewData.mPPEnabled));
Item->child(2)->setText(2,QString("%1").arg(NewData.mPGEnabled));
Item->child(3)->setText(2,QString("%1").arg(NewData.mPPZT2Enabled));
Item->child(4)->setText(2,QString("%1").arg(NewData.mMaintenanceMode));
Item->child(5)->setText(2,QString("%1").arg(NewData.mHPCHealth));
Item->child(6)->setText(2,QString("%1").arg(NewData.mSEIHealth));
Item->child(7)->setText(2,QString("%1").arg(NewData.mZT1Enabled));
Item->child(8)->setText(2,QString("%1").arg(NewData.mZT2Enabled));
Item->child(9)->setText(2,QString("%1").arg(NewData.mCalibPG));
Item->child(10)->setText(2,QString("%1").arg(NewData.mBootDateYr));
Item->child(11)->setText(2,QString("%1").arg(NewData.mBootDateMonth));
Item->child(12)->setText(2,QString("%1").arg(NewData.mBootDateDay));
Item->child(13)->setText(2,QString("%1").arg(NewData.mBootDateHour));
Item->child(14)->setText(2,QString("%1").arg(NewData.mBootDateMinutes));
Item->child(15)->setText(2,QString("%1").arg(NewData.mBootDateSeconds));
Item->child(16)->setText(2,QString("%1").arg(NewData.mTotalTrains));
Item->child(17)->setText(2,QString("%1").arg(NewData.mTotalDetections));
Item->child(18)->setText(2,QString("%1").arg(NewData.mTrainsToday));
Item->child(19)->setText(2,QString("%1").arg(NewData.mDetectToday));
Item->child(20)->setText(2,QString("%1").arg(NewData.mFNDetectToday));
Item->child(21)->setText(2,QString("%1").arg(NewData.mPPIDetectToday));
Item->child(22)->setText(2,QString("%1").arg(NewData.mPPEDetectToday));
Item->child(23)->setText(2,QString("%1").arg(NewData.mPGDetectToday));
Item->child(24)->setText(2,QString("%1").arg(NewData.mPPIZT2DetectToday));
Item->child(25)->setText(2,QString("%1").arg(NewData.mPPEZT2DetectToday));
Item->child(26)->setText(2,QString("%1").arg(NewData.mLastTrainYear));
Item->child(27)->setText(2,QString("%1").arg(NewData.mLastTrainMonth));
Item->child(28)->setText(2,QString("%1").arg(NewData.mLastTrainDay));
Item->child(29)->setText(2,QString("%1").arg(NewData.mLastTrainHour));
Item->child(30)->setText(2,QString("%1").arg(NewData.mLastTrainMinutes));
Item->child(31)->setText(2,QString("%1").arg(NewData.mLastTrainSeconds));
Item->child(32)->setText(2,QString("%1").arg(NewData.mLastZone));
Item->child(33)->setText(2,QString("%1").arg(NewData.mNbDetectLasTrain));
Item->child(34)->setText(2,QString("%1").arg(NewData.mLastTrainPPI1));
Item->child(35)->setText(2,QString("%1").arg(NewData.mLastTrainPPI2));
Item->child(36)->setText(2,QString("%1").arg(NewData.mLastTrainPPI3));
Item->child(37)->setText(2,QString("%1").arg(NewData.mLastTrainPPI4));
Item->child(38)->setText(2,QString("%1").arg(NewData.mLastTrainPPE1));
Item->child(39)->setText(2,QString("%1").arg(NewData.mLastTrainPPE2));
Item->child(40)->setText(2,QString("%1").arg(NewData.mLastTrainPPE3));
Item->child(41)->setText(2,QString("%1").arg(NewData.mLastTrainPPE4));
Item->child(42)->setText(2,QString("%1").arg(NewData.mLastTrainPG1));
Item->child(43)->setText(2,QString("%1").arg(NewData.mLastTrainPG2));
Item->child(44)->setText(2,QString("%1").arg(NewData.mLastTrainPG3));
Item->child(45)->setText(2,QString("%1").arg(NewData.mLastTrainPG4));
Item->child(46)->setText(2,QString("%1").arg(NewData.mLastTrainFN1));
Item->child(47)->setText(2,QString("%1").arg(NewData.mLastTrainFN2));
Item->child(48)->setText(2,QString("%1").arg(NewData.mLastTrainFN3));
Item->child(49)->setText(2,QString("%1").arg(NewData.mLastTrainFN4));
Item->child(50)->setText(2,QString("%1").arg(NewData.mLastTrainCountErr));
Item->child(51)->setText(2,QString("%1").arg(NewData.mLastTrainPEQ));
Item->child(52)->setText(2,QString("%1").arg(NewData.mLastTrainType));
Item->child(53)->setText(2,QString("%1").arg(NewData.mLastTrainCompo1));
Item->child(54)->setText(2,QString("%1").arg(NewData.mLastTrainCompo2));
Item->child(55)->setText(2,QString("%1").arg(NewData.mLastTrainCompo3));
}
void CHistorienDisplayPage::ButtonClicked(CTextButtonWidget *)
{
}
void CHistorienDisplayPage::RefreshTimerExpired()
{
UpdateHistorienTable();
}
void CHistorienDisplayPage::showEvent(QShowEvent *event)
{
if(mHistorienRepoHandle == 0 ||
mProgramHandle == 0)
{
return;
}
mRefreshTimer->start();
}
void CHistorienDisplayPage::HideHistorienPage()
{
mRefreshTimer->stop();
this->hide();
}
void CHistorienDisplayPage::resizeEvent(QGraphicsSceneResizeEvent *event)
{
Q_UNUSED(event)
mBackgroundRect->setRect(boundingRect());
mHistorienDataTree->setGeometry(0,50,((boundingRect().width()) - 10),boundingRect().height()-100);
}
@@ -0,0 +1,39 @@
#ifndef HISTORIENDISPLAYPAGE_H
#define HISTORIENDISPLAYPAGE_H
#include <QGraphicsWidget>
#include "TextButtonWidget.h"
#include <QTreeWidget>
#include <QTimer>
#include "Guipage.h"
class CZoneTest;
class CModbusRepository;
class CHistorienDisplayPage : public CGuiPage
{
Q_OBJECT
public:
CHistorienDisplayPage(QGraphicsWidget *parent = 0);
CZoneTest *mProgramHandle;
QGraphicsRectItem *mBackgroundRect;
CTextButtonWidget *mCloseBtn;
QTreeWidget *mHistorienDataTree;
CModbusRepository *mHistorienRepoHandle;
QTimer *mRefreshTimer;
virtual void showEvent(QShowEvent *event);
void HideHistorienPage();
void resizeEvent(QGraphicsSceneResizeEvent *event);
public slots:
void ButtonClicked(CTextButtonWidget*);
void UpdateHistorienTable();
void RefreshTimerExpired();
};
#endif // HISTORIENDISPLAYPAGE_H
+8
View File
@@ -104,6 +104,7 @@ Panel::Panel()
mModbusSettingsPage = new CModbusSettingsPage(); mModbusSettingsPage = new CModbusSettingsPage();
mSEISettingsPage = new CSEISettingsPage(); mSEISettingsPage = new CSEISettingsPage();
mModbusDisplayPage = new CModbusDisplayPage(); mModbusDisplayPage = new CModbusDisplayPage();
mHistorienDisplayPage = new CHistorienDisplayPage();
scene->addItem(mWelcomePage); scene->addItem(mWelcomePage);
scene->addItem(mZTMainPage); scene->addItem(mZTMainPage);
@@ -118,6 +119,7 @@ Panel::Panel()
scene->addItem(mSEISettingsPage); scene->addItem(mSEISettingsPage);
scene->addItem(mZTLogViewerPage); scene->addItem(mZTLogViewerPage);
scene->addItem(mModbusDisplayPage); scene->addItem(mModbusDisplayPage);
scene->addItem(mHistorienDisplayPage);
mZTMainPage->setPos(0,0); mZTMainPage->setPos(0,0);
mZTMainPage->hide(); mZTMainPage->hide();
@@ -184,6 +186,12 @@ Panel::Panel()
mModbusDisplayPage->setZValue(1); mModbusDisplayPage->setZValue(1);
mModbusDisplayPage->hide(); mModbusDisplayPage->hide();
mHistorienDisplayPage->setPos(10,10);
mHistorienDisplayPage->resize(SCREEN_RES_WIDTH-20,SCREEN_RES_HEIGHT-20);
mHistorienDisplayPage->setZValue(1);
mHistorienDisplayPage->hide();
installEventFilter(mLogViewPage); installEventFilter(mLogViewPage);
+2
View File
@@ -47,6 +47,7 @@
#include "ModbusSettingsPage.h" #include "ModbusSettingsPage.h"
#include "SEISettingsPage.h" #include "SEISettingsPage.h"
#include "ModbusDisplayPage.h" #include "ModbusDisplayPage.h"
#include "HistorienDisplayPage.h"
class CZoneTest; class CZoneTest;
@@ -90,6 +91,7 @@ public:
CModbusSettingsPage *mModbusSettingsPage; CModbusSettingsPage *mModbusSettingsPage;
CSEISettingsPage *mSEISettingsPage; CSEISettingsPage *mSEISettingsPage;
CModbusDisplayPage *mModbusDisplayPage; CModbusDisplayPage *mModbusDisplayPage;
CHistorienDisplayPage *mHistorienDisplayPage;
}; };
#endif // PANEL_H #endif // PANEL_H
+6
View File
@@ -0,0 +1,6 @@
#include "HistorienData.h"
CHistorienData::CHistorienData()
{
}
+70
View File
@@ -0,0 +1,70 @@
#ifndef HISTORIENDATA_H
#define HISTORIENDATA_H
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
+8 -7
View File
@@ -168,7 +168,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
//Validate data range //Validate data range
if(!mModbusRepo->IsHRValid(StartAdress,1)) if(!mModbusRepo->IsHRValid(StartAdress,1))
{ {
qDebug("Reg invalid"); CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register in Rx Write Single Register req. Address: %d",StartAdress));
//Send negative response //Send negative response
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS); SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER); ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER);
@@ -180,11 +180,10 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
//Write register data //Write register data
mModbusRepo->WriteHRData(StartAdress,1,data); mModbusRepo->WriteHRData(StartAdress,1,data);
if(StartAdress == 2000)
{
qDebug("debug... 2000");
}
CEngLog::instance()->AddLogString(QString().sprintf("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data()));
CEngLog::instance()->AddLogString(QString().sprintf("Data: %s\n",data.toHex().data()));
// qDebug("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data()); // qDebug("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data());
// qDebug("Data: %s",data.toHex().data()); // qDebug("Data: %s",data.toHex().data());
@@ -211,7 +210,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
//Validate nb of registers //Validate nb of registers
if(NbRegisters < 1 || NbRegisters > 0x7D || ByteCount != (NbRegisters*2)) if(NbRegisters < 1 || NbRegisters > 0x7D || ByteCount != (NbRegisters*2))
{ {
qDebug("Invalid register number or byte count "); CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register nb or byte count in multiple registers write req. ByteCount: %d, Nb Reg: %d",ByteCount, NbRegisters));
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE); SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE);
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
return 0; return 0;
@@ -220,7 +219,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
//Validate data range //Validate data range
if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters)) if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters))
{ {
qDebug("Reg invalid"); CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register in multiple registers write req. Address: %d, Nb Reg: %d",StartAdress, NbRegisters));
//Send negative response //Send negative response
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS); SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS); ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
@@ -233,6 +232,8 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
//Write register data //Write register data
mModbusRepo->WriteHRData(StartAdress,NbRegisters,data); mModbusRepo->WriteHRData(StartAdress,NbRegisters,data);
CEngLog::instance()->AddLogString(QString().sprintf("Slave Rx Write Multiple Registers. Address: %d, Nb Reg: %d",StartAdress, NbRegisters));
CEngLog::instance()->AddLogString(QString().sprintf("Data: %s\n",data.toHex().data()));
//qDebug("\nSlave Rx Write Multiple Registers. Address: %d, Nb Reg: %d",StartAdress, NbRegisters); //qDebug("\nSlave Rx Write Multiple Registers. Address: %d, Nb Reg: %d",StartAdress, NbRegisters);
//qDebug("Data: %s\n",data.toHex().data()); //qDebug("Data: %s\n",data.toHex().data());
+32 -13
View File
@@ -2,6 +2,8 @@
#include "ZTLog.h" #include "ZTLog.h"
#include "ModbusRepository.h" #include "ModbusRepository.h"
#include "PIHistorianDefs.h" #include "PIHistorianDefs.h"
#include "EngLog.h"
#include <QDebug>
CPIHistorianManager::CPIHistorianManager(CModbusRepository *PIHistorianRepo, int ModbusPort, int ModbusDevID) CPIHistorianManager::CPIHistorianManager(CModbusRepository *PIHistorianRepo, int ModbusPort, int ModbusDevID)
{ {
@@ -13,8 +15,10 @@ CPIHistorianManager::CPIHistorianManager(CModbusRepository *PIHistorianRepo, int
mHistorianTimer = new QTimer; mHistorianTimer = new QTimer;
mHistorianTimer->setSingleShot(true); mHistorianTimer->setSingleShot(true);
connect(mHistorianTimer,SIGNAL(timeout()),this,SLOT(HistorianTimerExpired()));
mTodaysDate = QDate::currentDate();
mNbPassagesToday = 0; mNbPassagesToday = 0;
mNbDeclToday = 0; mNbDeclToday = 0;
mNbDeclTotal = 0; mNbDeclTotal = 0;
@@ -300,7 +304,6 @@ int CPIHistorianManager::NewZT1Passage(CZTPassageInfo ZT1PassageInfo)
quint16 NbDecl = ZT1PassageInfo.mDetections->size(); quint16 NbDecl = ZT1PassageInfo.mDetections->size();
quint16 NbDeclFN = 0, NbDeclPG = 0, NbDeclPPI = 0, NbDeclPPE = 0; quint16 NbDeclFN = 0, NbDeclPG = 0, NbDeclPPI = 0, NbDeclPPE = 0;
quint16 PEQ = 0, ErrComptage = 0;
mPIHistorianRepo->WriteSingleReg(HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD,NbDecl); mPIHistorianRepo->WriteSingleReg(HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD,NbDecl);
if(NbDecl != 0) if(NbDecl != 0)
{ {
@@ -433,6 +436,8 @@ int CPIHistorianManager::NewZT1Passage(CZTPassageInfo ZT1PassageInfo)
mNbPPIZT1Today += NbDeclPPI; mNbPPIZT1Today += NbDeclPPI;
mNbPPEZT1Today += NbDeclPPE; mNbPPEZT1Today += NbDeclPPE;
}
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday); mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT1PassageInfo.mNbDeclenchements); mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT1PassageInfo.mNbDeclenchements);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_FN_DETECTS_TODAY_REG_ADD,mNbFNToday); mPIHistorianRepo->WriteSingleReg(HISTORIAN_FN_DETECTS_TODAY_REG_ADD,mNbFNToday);
@@ -440,9 +445,6 @@ int CPIHistorianManager::NewZT1Passage(CZTPassageInfo ZT1PassageInfo)
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD,mNbPPEZT1Today); mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD,mNbPPEZT1Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PG_DETECTS_TODAY_REG_ADD,mNbPGToday); mPIHistorianRepo->WriteSingleReg(HISTORIAN_PG_DETECTS_TODAY_REG_ADD,mNbPGToday);
}
return RET_OK; return RET_OK;
} }
@@ -560,28 +562,30 @@ int CPIHistorianManager::NewZT2Passage(CZTPassageInfo ZT2PassageInfo)
mNbPPIZT2Today += NbDeclPPI; mNbPPIZT2Today += NbDeclPPI;
mNbPPEZT2Today += NbDeclPPE; mNbPPEZT2Today += NbDeclPPE;
}
mPIHistorianRepo->WriteSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD,mNbPassagesToday); mPIHistorianRepo->WriteSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD,mNbPassagesToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT2PassageInfo.mNbDeclenchements); mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT2PassageInfo.mNbDeclenchements);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday); mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,mNbPPIZT2Today); mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,mNbPPIZT2Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,mNbPPEZT2Today); mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,mNbPPEZT2Today);
}
return RET_OK; return RET_OK;
} }
void CPIHistorianManager::StartHistorianTimer() void CPIHistorianManager::StartHistorianTimer()
{ {
QTime Time = QTime::currentTime();
int Delay = Time.msecsTo(QTime(23,59,59,999));
if(Delay < 0)
{
Delay += MSECS_IN_A_DAY;
}
mHistorianTimer->start(Delay); mHistorianTimer->start(PI_HISTORIAN_DAILY_RESET_CHECK_TIMEOUT);
} }
void CPIHistorianManager::HistorianTimerExpired() void CPIHistorianManager::HistorianTimerExpired()
{
// qDebug(qPrintable(QString("Vérification du changement de date: Today:%1, Current:%2").arg(mTodaysDate.toString("yyyy-MM-dd")).arg(QDate::currentDate().toString("yyyy-MM-dd"))));
if(mTodaysDate != QDate::currentDate() &&
QTime::currentTime() >= QTime(3,0,0,0))
{ {
mNbFNToday = 0; mNbFNToday = 0;
mNbPGToday = 0; mNbPGToday = 0;
@@ -590,7 +594,22 @@ void CPIHistorianManager::HistorianTimerExpired()
mNbPPIZT2Today = 0; mNbPPIZT2Today = 0;
mNbPPEZT2Today = 0; mNbPPEZT2Today = 0;
mNbDeclToday = 0; mNbDeclToday = 0;
mNbPassagesToday = 0;
StartHistorianTimer(); mTodaysDate = QDate::currentDate();
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_FN_DETECTS_TODAY_REG_ADD,mNbFNToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPI_ZT1_DETECTS_TODAY_REG_ADD,mNbPPIZT1Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT1_DETECTS_TODAY_REG_ADD,mNbPPEZT1Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PG_DETECTS_TODAY_REG_ADD,mNbPGToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,mNbPPIZT2Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,mNbPPEZT2Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD,mNbPassagesToday);
CEngLog::instance()->AddLogString("Reset des stats historien du jour",2);
} }
StartHistorianTimer();
}
+2 -1
View File
@@ -8,7 +8,7 @@
#include "ZTData.h" #include "ZTData.h"
#define PI_HISTORIAN_MODBUS_DEVICE_ID 1 #define PI_HISTORIAN_MODBUS_DEVICE_ID 1
#define MSECS_IN_A_DAY (24 * 60 * 60 * 1000) #define PI_HISTORIAN_DAILY_RESET_CHECK_TIMEOUT 60000 //60 seconds
class CPIHistorianManager : public QObject class CPIHistorianManager : public QObject
{ {
@@ -33,6 +33,7 @@ public:
QTimer *mHistorianTimer; QTimer *mHistorianTimer;
void StartHistorianTimer(); void StartHistorianTimer();
QDate mTodaysDate;
private: private:
QList<CPIHistorianSession*> mHistorianSessionsList; //Les sessions établies par le serveur sont gardées dans cette liste QList<CPIHistorianSession*> mHistorianSessionsList; //Les sessions établies par le serveur sont gardées dans cette liste
+83 -82
View File
@@ -49,56 +49,57 @@ unsigned int CSimulationScenario::CreateScenario()
/// //MPM10 /// //MPM10
// InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300); InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300);
// InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,300); InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,300);
// InsertNewStep(STEP_ACTION_OCCUPY_ZT1,300); InsertNewStep(STEP_ACTION_OCCUPY_ZT1,300);
InsertNewStep(STEP_ACTION_ACTIVATE_FN,0);
// for(int bogie = 1; bogie <= 18; bogie++) for(int bogie = 1; bogie <= 18; bogie++)
// { {
// //if(bogie != 5 /*&& bogie != 6*/) //if(bogie != 5 /*&& bogie != 6*/)
//// InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0); // InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
//// InsertNewStep(STEP_ACTION_ACTIVATE_PGE,5); // InsertNewStep(STEP_ACTION_ACTIVATE_PGE,5);
// InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY); InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY); InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0); InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0); InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
// if(bogie != 5 && bogie != 6) // if(bogie != 5 && bogie != 6)
// InsertNewStep(STEP_ACTION_ACTIVATE_FN,5); // InsertNewStep(STEP_ACTION_ACTIVATE_FN,5);
// InsertNewStep(STEP_ACTION_ACTIVATE_FN,5); // InsertNewStep(STEP_ACTION_ACTIVATE_FN,5);
//// if(bogie == 12) // if(bogie == 12)
//// InsertNewStep(STEP_ACTION_ACTIVATE_PPI,0); // InsertNewStep(STEP_ACTION_ACTIVATE_PPI,0);
// InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY); InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S2,SENSOR_DELAY); InsertNewStep(STEP_ACTION_DEACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_FN,5); // InsertNewStep(STEP_ACTION_DEACTIVATE_FN,5);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PPI,5); // InsertNewStep(STEP_ACTION_DEACTIVATE_PPI,5);
// InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY); InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY); InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
// //if(bogie != 5 /*&& bogie != 6 && bogie != 7*/) //if(bogie != 5 /*&& bogie != 6 && bogie != 7*/)
//// InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0); // InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
//// InsertNewStep(STEP_ACTION_ACTIVATE_PGE,5); // InsertNewStep(STEP_ACTION_ACTIVATE_PGE,5);
// InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY); InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY); InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0); InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0); InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
// } }
// // InsertNewStep(STEP_ACTION_DESTROY_ZT1_ITI,800); // InsertNewStep(STEP_ACTION_DESTROY_ZT1_ITI,800);
// InsertNewStep(STEP_ACTION_FREE_ZT1_APPROACH,800); InsertNewStep(STEP_ACTION_FREE_ZT1_APPROACH,800);
// InsertNewStep(STEP_ACTION_FREE_ZT1,800); InsertNewStep(STEP_ACTION_FREE_ZT1,800);
@@ -143,67 +144,67 @@ unsigned int CSimulationScenario::CreateScenario()
//// MR ////// MR
// InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300); // // InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300);
InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,300); // InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,300);
InsertNewStep(STEP_ACTION_OCCUPY_ZT1,300); // InsertNewStep(STEP_ACTION_OCCUPY_ZT1,300);
InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0); // InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
for(int bogie = 1; bogie <= 18; bogie++) // for(int bogie = 1; bogie <= 18; bogie++)
{
// if(bogie != 5 && bogie != 7)
// InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
// InsertNewStep(STEP_ACTION_ACTIVATE_PGE,0);
//V00 DETECTION
// if(bogie != 9)
// { // {
InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY); // // if(bogie != 5 && bogie != 7)
// // InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
// // InsertNewStep(STEP_ACTION_ACTIVATE_PGE,0);
////V00 DETECTION
//// if(bogie != 9)
//// {
// InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY);
//// }
// InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
// // InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// // InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
////FN DETECTION
//// if(bogie != 7 /*&& bogie != 8 && bogie != 3*/)
// InsertNewStep(STEP_ACTION_ACTIVATE_FN,0);
// InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
////PPI DETECTION
// if(bogie == 6 || bogie == 9)
// InsertNewStep(STEP_ACTION_ACTIVATE_PPI,0);
////FN DETECTION
//// if(bogie != 7 /*&& bogie != 8 && bogie != 3*/)
// InsertNewStep(STEP_ACTION_DEACTIVATE_FN,0);
// InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY);
////PPI DETECTION
// if(bogie == 6 || bogie == 9)
// InsertNewStep(STEP_ACTION_DEACTIVATE_PPI,0);
// // if(bogie != 2 && bogie != 11)
// // InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
// // if(bogie != 2 && bogie != 11)
// // InsertNewStep(STEP_ACTION_ACTIVATE_PGE,0);
// InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY);
// // InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// // InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
// } // }
InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
//FN DETECTION
// if(bogie != 7 /*&& bogie != 8 && bogie != 3*/)
InsertNewStep(STEP_ACTION_ACTIVATE_FN,0);
InsertNewStep(STEP_ACTION_ACTIVATE_S1,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_DEACTIVATE_S1,BOGIE_DELAY);
//PPI DETECTION
if(bogie == 6 || bogie == 9)
InsertNewStep(STEP_ACTION_ACTIVATE_PPI,0);
//FN DETECTION
// if(bogie != 7 /*&& bogie != 8 && bogie != 3*/)
InsertNewStep(STEP_ACTION_DEACTIVATE_FN,0);
InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY);
//PPI DETECTION
if(bogie == 6 || bogie == 9)
InsertNewStep(STEP_ACTION_DEACTIVATE_PPI,0);
// if(bogie != 2 && bogie != 11)
// InsertNewStep(STEP_ACTION_ACTIVATE_PGI,0);
// if(bogie != 2 && bogie != 11)
// InsertNewStep(STEP_ACTION_ACTIVATE_PGE,0);
InsertNewStep(STEP_ACTION_ACTIVATE_S2,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_DEACTIVATE_S2,BOGIE_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGI,0);
// InsertNewStep(STEP_ACTION_DEACTIVATE_PGE,0);
}
InsertNewStep(STEP_ACTION_DESTROY_ZT1_ITI,800); // InsertNewStep(STEP_ACTION_DESTROY_ZT1_ITI,800);
InsertNewStep(STEP_ACTION_FREE_ZT1,800); // InsertNewStep(STEP_ACTION_FREE_ZT1,800);
InsertNewStep(STEP_ACTION_FREE_ZT1_APPROACH,800); // InsertNewStep(STEP_ACTION_FREE_ZT1_APPROACH,800);
return RET_OK; return RET_OK;
} }
+36 -4
View File
@@ -171,7 +171,7 @@ QDataStream &operator<<(QDataStream &out, const CZT1FlagsData &source)
<< source.mTrainCompo3 << source.mTrainCompo3
<< source.mModbusTrainType << source.mModbusTrainType
<< source.mZT1ITI << source.mZT1ITI
<< source.mUnusedFlag13 << source.mZTDetectionsConfig
<< source.mUnusedFlag14 << source.mUnusedFlag14
<< source.mUnusedFlag15 << source.mUnusedFlag15
<< source.mUnusedFlag16 << source.mUnusedFlag16
@@ -198,7 +198,7 @@ QDataStream &operator>>(QDataStream &in, CZT1FlagsData &dest)
>> dest.mTrainCompo3 >> dest.mTrainCompo3
>> dest.mModbusTrainType >> dest.mModbusTrainType
>> dest.mZT1ITI >> dest.mZT1ITI
>> dest.mUnusedFlag13 >> dest.mZTDetectionsConfig
>> dest.mUnusedFlag14 >> dest.mUnusedFlag14
>> dest.mUnusedFlag15 >> dest.mUnusedFlag15
>> dest.mUnusedFlag16 >> dest.mUnusedFlag16
@@ -218,7 +218,7 @@ QDataStream &operator<<(QDataStream &out, const CZT2FlagsData &source)
<< source.mTrainCompo2 << source.mTrainCompo2
<< source.mTrainCompo3 << source.mTrainCompo3
<< source.mModbusTrainType << source.mModbusTrainType
<< source.mUnusedFlag6 << source.mZTDetectionsConfig
<< source.mUnusedFlag7 << source.mUnusedFlag7
<< source.mUnusedFlag8 << source.mUnusedFlag8
<< source.mUnusedFlag9 << source.mUnusedFlag9
@@ -235,7 +235,7 @@ QDataStream &operator>>(QDataStream &in, CZT2FlagsData &dest)
>> dest.mTrainCompo2 >> dest.mTrainCompo2
>> dest.mTrainCompo3 >> dest.mTrainCompo3
>> dest.mModbusTrainType >> dest.mModbusTrainType
>> dest.mUnusedFlag6 >> dest.mZTDetectionsConfig
>> dest.mUnusedFlag7 >> dest.mUnusedFlag7
>> dest.mUnusedFlag8 >> dest.mUnusedFlag8
>> dest.mUnusedFlag9 >> dest.mUnusedFlag9
@@ -412,6 +412,38 @@ CZTDetectionFunctionConfig::CZTDetectionFunctionConfig()
} }
} }
qint32 CZTDetectionFunctionConfig::GetDetectionsConfigMask()
{
qint32 DetectionsMask = 0;
if(mZTDetectionConfig[DETECTION_FCT_FN].TKActive == true && mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_FN_MASK;
}
if(mZTDetectionConfig[DETECTION_FCT_PG].TKActive == true && mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_PG_MASK;
}
if(mZTDetectionConfig[DETECTION_FCT_PP].TKActive == true && mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_PP_MASK;
}
if(mZTDetectionConfig[DETECTION_FCT_PP2].TKActive == true && mZTDetectionConfig[DETECTION_FCT_PP2].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_PP2_MASK;
}
if(mZTDetectionConfig[DETECTION_FCT_ZT1].TKActive == true && mZTDetectionConfig[DETECTION_FCT_ZT1].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_ZT1_MASK;
}
if(mZTDetectionConfig[DETECTION_FCT_ZT2].TKActive == true && mZTDetectionConfig[DETECTION_FCT_ZT2].AnalysisActive == true)
{
DetectionsMask |= DETECTION_FCT_ZT2_MASK;
}
return DetectionsMask;
}
void CZTDetectionFunctionConfig::operator =(CZTDetectionFunctionConfig& DF) void CZTDetectionFunctionConfig::operator =(CZTDetectionFunctionConfig& DF)
{ {
for(int i = 0; i < DETECTION_FCT_MAX_FCT; i++) for(int i = 0; i < DETECTION_FCT_MAX_FCT; i++)
+13 -2
View File
@@ -100,6 +100,16 @@ enum eDetectionFunctionID
DETECTION_FCT_MAX_FCT DETECTION_FCT_MAX_FCT
}; };
enum eDetectionFunctionMask
{
DETECTION_FCT_FN_MASK = 0x00000001,
DETECTION_FCT_PG_MASK = 0x00000002,
DETECTION_FCT_PP_MASK = 0x00000004,
DETECTION_FCT_PP2_MASK = 0x00000008,
DETECTION_FCT_ZT1_MASK = 0x00000010,
DETECTION_FCT_ZT2_MASK = 0x00000020
};
enum ePEQ1Types enum ePEQ1Types
{ {
PEQ1_UNKNOWN_TYPE, PEQ1_UNKNOWN_TYPE,
@@ -215,7 +225,7 @@ public:
qint32 mTrainCompo3; qint32 mTrainCompo3;
qint32 mModbusTrainType; qint32 mModbusTrainType;
qint32 mZT1ITI; qint32 mZT1ITI;
qint32 mUnusedFlag13; qint32 mZTDetectionsConfig;
qint32 mUnusedFlag14; qint32 mUnusedFlag14;
qint32 mUnusedFlag15; qint32 mUnusedFlag15;
qint32 mUnusedFlag16; qint32 mUnusedFlag16;
@@ -235,7 +245,7 @@ public:
qint32 mTrainCompo2; qint32 mTrainCompo2;
qint32 mTrainCompo3; qint32 mTrainCompo3;
qint32 mModbusTrainType; qint32 mModbusTrainType;
qint32 mUnusedFlag6; qint32 mZTDetectionsConfig;
qint32 mUnusedFlag7; qint32 mUnusedFlag7;
qint32 mUnusedFlag8; qint32 mUnusedFlag8;
qint32 mUnusedFlag9; qint32 mUnusedFlag9;
@@ -342,6 +352,7 @@ public:
CZTDetectionConfig mZTDetectionConfig[DETECTION_FCT_MAX_FCT]; CZTDetectionConfig mZTDetectionConfig[DETECTION_FCT_MAX_FCT];
void operator=(CZTDetectionFunctionConfig& a); void operator=(CZTDetectionFunctionConfig& a);
qint32 GetDetectionsConfigMask();
}; };
+8
View File
@@ -85,6 +85,14 @@ unsigned int CZTSettingsFileMgr::LoadSettings(CZTSettingsData *SettingsData)
*InputStream >> SettingsData->mModbusCCHostAddress; *InputStream >> SettingsData->mModbusCCHostAddress;
*InputStream >> SettingsData->mSEIModbusHostAddress; *InputStream >> SettingsData->mSEIModbusHostAddress;
//JFM 2024-09-05 Enlèvement de l'inhibition d'analyse...
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive = true;
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive = true;
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive = true;
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_PP2].AnalysisActive = true;
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_ZT1].AnalysisActive = true;
SettingsData->mDetectionFunctionSettings->mZTDetectionConfig[DETECTION_FCT_ZT2].AnalysisActive = true;
SettingsFile->close(); SettingsFile->close();
+10 -7
View File
@@ -308,6 +308,7 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
mNbPassages++; mNbPassages++;
InsertZT1LogItem(); InsertZT1LogItem();
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true); mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
mZT1Log.mZT1Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE; mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
} }
} }
@@ -318,6 +319,7 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
mNbPassages++; mNbPassages++;
InsertZT1LogItem(); InsertZT1LogItem();
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true); mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
mZT1Log.mZT1Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE; mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
} }
break; break;
@@ -594,13 +596,13 @@ unsigned int CZTStateMachine::AnalyzeZT1PostDetection()
PostAnalyseData = true; //This flag is used to re-analyze the data in case of a mag sensor count error PostAnalyseData = true; //This flag is used to re-analyze the data in case of a mag sensor count error
} }
//If the detection is de-activated, ignore it //If the detection is de-activated, ignore it
else if((mZT1PEQType == PEQ1_FN_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive == false) || else if((mZT1PEQType == PEQ1_FN_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].TKActive == false) ||
(mZT1PEQType == PEQ1_FN_STUCK_LOW_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive == false) || (mZT1PEQType == PEQ1_FN_STUCK_LOW_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].TKActive == false) ||
(mZT1PEQType == PEQ1_PEXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive == false) || (mZT1PEQType == PEQ1_PEXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].TKActive == false) ||
(mZT1PEQType == PEQ1_PINT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive == false) || (mZT1PEQType == PEQ1_PINT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].TKActive == false) ||
(mZT1PEQType == PEQ1_LAZER_SENSOR_EXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == false) || (mZT1PEQType == PEQ1_LAZER_SENSOR_EXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].TKActive == false) ||
(mZT1PEQType == PEQ1_LAZER_SENSOR_INT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == false) || (mZT1PEQType == PEQ1_LAZER_SENSOR_INT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].TKActive == false) ||
(mZT1PEQType == PEQ1_PG_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == false)) (mZT1PEQType == PEQ1_PG_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].TKActive == false))
{ {
//The PEQ1 is invalid because analysis was deactivated. Remove it from detection buffer. //The PEQ1 is invalid because analysis was deactivated. Remove it from detection buffer.
for(int i = 0; i < mZT1DetectionsLog.size(); i++) for(int i = 0; i < mZT1DetectionsLog.size(); i++)
@@ -1257,6 +1259,7 @@ unsigned int CZTStateMachine::ZT2StateMachine(unsigned int Event, unsigned int S
mZTActivationDateTime = QDateTime::currentDateTime(); mZTActivationDateTime = QDateTime::currentDateTime();
mZTPagePTr->SetZTStatus(mNbPassages,mNbTriggers,mZT1ActiveStatus,mZT2ActiveStatus); mZTPagePTr->SetZTStatus(mNbPassages,mNbTriggers,mZT1ActiveStatus,mZT2ActiveStatus);
mZTPagePTr->ResetZT2Stats(); mZTPagePTr->ResetZT2Stats();
mZT2Log.mZT2Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
if(mModbusCCMgr != 0) if(mModbusCCMgr != 0)
{ {
//update train info received from the CC Modbus interface //update train info received from the CC Modbus interface
+24 -1
View File
@@ -29,14 +29,37 @@
#ifndef ZTVERSION_H #ifndef ZTVERSION_H
#define ZTVERSION_H #define ZTVERSION_H
#define ZT_SOFT_VERSION "V1.28" #define ZT_SOFT_VERSION "V1.34"
//LOG DES CHANGEMENTS //LOG DES CHANGEMENTS
//Version 1.34
//-Ajout du log des requêtes d'écriture Modbus dans le IngLog
//Version 1.33
//-Inhibition des déclenchements PEQ avec la désactivation des TK
//-Remise à zéro du Nb de passage aujourd'hui avec le reste à 3h
//Version 1.32
//-Ajout des flags d'etat des fonctions de détection dans le fichier log
//-Retrait de la possibilité d'inhiber l'analyse des fonctions
//-Changement de l'heure de reset des données Historien à 3h plutôt qu'à minuit.
//Version 1.31
//-Finalement finalement pour vrai réglé le problème de reset des stats aujourd'hui.
//Version 1.30
//-Finalement réglé le problème de reset du nombre de passages aujourd'hui.
//Version 1.29
//-Tentative de faire marcher le reset des données Historien du jour
//Version 1.28 //Version 1.28
//Corrections à l'interface historien: //Corrections à l'interface historien:
//-Correction du Nb de déclenchements aujourd'hui qui n'est pas remis à zéro //-Correction du Nb de déclenchements aujourd'hui qui n'est pas remis à zéro
//-Correction du Nb de passages aujourd'hui qui ne se met pas à jour //-Correction du Nb de passages aujourd'hui qui ne se met pas à jour
//-Changement du calcul du Nb de ms avant minuit à la ms près (plutôt qu'à la seconde) //-Changement du calcul du Nb de ms avant minuit à la ms près (plutôt qu'à la seconde)
//-Ajout de l'icône de connexion du client historien dans la page principale
//-Ajout de la visualisation de la TE historien (touche F3)
//Version 1.27 //Version 1.27
//-Ajout du flag pour ignorer la clef RSA lors du transfert FTP. Suite aux problemes //-Ajout du flag pour ignorer la clef RSA lors du transfert FTP. Suite aux problemes
+33
View File
@@ -65,6 +65,7 @@
#ifdef USE_NETWORKING #ifdef USE_NETWORKING
#include "NetworkManager.h" #include "NetworkManager.h"
#endif #endif
@@ -278,6 +279,7 @@ unsigned int CZoneTest::Start()
panel.mSEISettingsPage->mProgramHandle = this; panel.mSEISettingsPage->mProgramHandle = this;
panel.mZTLogViewerPage->mProgramHandle = this; panel.mZTLogViewerPage->mProgramHandle = this;
panel.mModbusDisplayPage->mProgramHandle = this; panel.mModbusDisplayPage->mProgramHandle = this;
panel.mHistorienDisplayPage->mProgramHandle = this;
panel.mEngineeringPage->mDisablePassword = mDisablePassword; panel.mEngineeringPage->mDisablePassword = mDisablePassword;
mInternalWatchdog = new CWatchdogCtrl(mUseWatchdog); mInternalWatchdog = new CWatchdogCtrl(mUseWatchdog);
@@ -605,6 +607,9 @@ unsigned int CZoneTest::InitZT()
mPIHistorianRepository->AddHRDataMap(HISTORIAN_ZT_DATA_BASE_REG,HISTORIAN_MODBUS_ZT_TABLE_DATA_SIZE); //Add the ZT data map mPIHistorianRepository->AddHRDataMap(HISTORIAN_ZT_DATA_BASE_REG,HISTORIAN_MODBUS_ZT_TABLE_DATA_SIZE); //Add the ZT data map
mPIHistorianManager = new CPIHistorianManager(mPIHistorianRepository,PIHistorianPort,PIHistorianDevID); mPIHistorianManager = new CPIHistorianManager(mPIHistorianRepository,PIHistorianPort,PIHistorianDevID);
panel.mHistorienDisplayPage->mHistorienRepoHandle = mPIHistorianRepository;
if(UseModbusInterface) if(UseModbusInterface)
{ {
connect(mModbusCCMgr,SIGNAL(ModbusCCConnected(qint32,qint32)),mPIHistorianManager,SLOT(HPCConnected(qint32,qint32))); connect(mModbusCCMgr,SIGNAL(ModbusCCConnected(qint32,qint32)),mPIHistorianManager,SLOT(HPCConnected(qint32,qint32)));
@@ -911,6 +916,22 @@ bool CZoneTest::eventFilter(QObject *obj, QEvent *event)
panel.mModbusDisplayPage->show(); panel.mModbusDisplayPage->show();
} }
} }
}
else if(KeyEvent->key() == Qt::Key_F3) //F3 Key toggles the Historien data display page
{
if(CZTConfigMgr::instance()->GetPIHistorianEnabled())
{
if(panel.mHistorienDisplayPage->isVisible())
{
panel.mHistorienDisplayPage->HideHistorienPage();
}
else
{
panel.mHistorienDisplayPage->show();
}
}
} }
} }
} }
@@ -1280,6 +1301,18 @@ void CZoneTest::CloseModbusDataPageRequest()
panel.mEngineeringPage->show(); panel.mEngineeringPage->show();
} }
void CZoneTest::OpenHistorienDataPageRequest()
{
panel.mModbusDisplayPage->hide();
panel.mHistorienDisplayPage->show();
}
void CZoneTest::CloseHistorienDataPageRequest()
{
panel.mHistorienDisplayPage->hide();
panel.mEngineeringPage->show();
}
void CZoneTest::CheckAndCreateDirectories() void CZoneTest::CheckAndCreateDirectories()
{ {
QDir dir("./Trains"); QDir dir("./Trains");
+3
View File
@@ -147,6 +147,9 @@ public:
void OpenModbusDataPageRequest(); void OpenModbusDataPageRequest();
void CloseModbusDataPageRequest(); void CloseModbusDataPageRequest();
void OpenHistorienDataPageRequest();
void CloseHistorienDataPageRequest();
void LogZTSettingsRequest(bool LogStationName = false); void LogZTSettingsRequest(bool LogStationName = false);
void ApplicationQuit(int Reason); void ApplicationQuit(int Reason);