Compare commits

...

10 Commits

Author SHA1 Message Date
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
24 changed files with 799 additions and 124 deletions

42
AddHistorienCfg.sh Normal file
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
AddSFTPCfg.sh Normal file
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"

View File

@ -11,4 +11,6 @@ rsync -av --exclude 'ZT.pro.*' --exclude 'Debug/*' --exclude 'Release/*' --exclu
rm -rf ./ZT/Debug/*
rm -rf ./ZT/Release/*
find ./ZT/sources/ -type f -exec touch {} +
exit

View File

@ -3,8 +3,8 @@
#ZT Update Script V1.0
ZTVERSION=V1.27
VERSIONROOT=ZoneTest_V127 #Nom du répertoire sur la clef USB contenant la nouvelle version
ZTVERSION=V1.32
VERSIONROOT=ZoneTest_V132 #Nom du répertoire sur la clef USB contenant la nouvelle version
ARCHIVEDIR=/home/zonetest/Archives
ZTEXECDIR=/home/zonetest/ZT
USBEXECDIR=$VERSIONROOT/EXE
@ -62,12 +62,12 @@ else
fi
echo " "
echo "Création du répertoire réseau"
if mkdir -p /home/zonetest/ZT/NetDrive
echo "Destruction des fichiers de passage existants"
if rm /home/zonetest/ZT/Trains/*
then
echo "OK"
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
fi

12
ZT.pro
View File

@ -124,7 +124,9 @@ SOURCES += \
sources/NetDriveMgr.cpp \
sources/SFTPServerManager.cpp \
sources/Modbus/PIHistorianManager.cpp \
sources/Modbus/PIHistorianSession.cpp
sources/Modbus/PIHistorianSession.cpp \
sources/GuiElements/HistorienDisplayPage.cpp \
sources/Modbus/HistorienData.cpp
HEADERS += \
sources/MainPanel.h \
@ -250,7 +252,9 @@ HEADERS += \
sources/SFTPServerManager.h \
sources/Modbus/PIHistorianManager.h \
sources/Modbus/PIHistorianSession.h \
sources/Modbus/PIHistorianDefs.h
sources/Modbus/PIHistorianDefs.h \
sources/GuiElements/HistorienDisplayPage.h \
sources/Modbus/HistorienData.h
#QMAKE_LIBDIR += ./ExtLib
@ -311,7 +315,9 @@ OTHER_FILES += \
UpdateZT.sh \
sftpbatch \
password \
Instsshpass.sh
Instsshpass.sh \
AddHistorienCfg.sh \
AddSFTPCfg.sh
INCLUDEPATH += $$PWD/ \
$$PWD/SeaMaxLinux/ \

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/LOGZT2_2024-08-15-13-45-44-992.bin CVRT-N-LOGZT2_2024-08-15-13-45-44-992.bin
put ./LOG/LogZT.txt CVRT-LogZT.txt
put ./ING/IngLog.txt CVRT-IngLog.txt

View File

@ -52,7 +52,8 @@
#define DEFAULT_PASSWORD "zonetest"
#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

View File

@ -78,6 +78,8 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
QGraphicsTextItem *Label = new QGraphicsTextItem("Analyse",this);
Label->setFont(font);
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->setFont(font);
@ -90,6 +92,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mFNFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mFNFuncToggleBtn->resize(SlideButtonSize);
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->resize(SlideButtonSize);
mFNTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@ -101,6 +104,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPGFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPGFuncToggleBtn->resize(SlideButtonSize);
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->resize(SlideButtonSize);
mPGTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@ -112,6 +116,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPPFuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPPFuncToggleBtn->resize(SlideButtonSize);
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->resize(SlideButtonSize);
mPPTKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@ -123,6 +128,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mPP2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mPP2FuncToggleBtn->resize(SlideButtonSize);
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->resize(SlideButtonSize);
mPP2TKToggleBtn->setPos(ArrayTopLeft.x() + XButtonSpacing,ArrayTopLeft.y() + (i*YLineSpacing));
@ -134,6 +140,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mZT1FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT1FuncToggleBtn->resize(SlideButtonSize);
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*)));
mZT1TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT1TKToggleBtn->resize(SlideButtonSize);
@ -147,6 +154,7 @@ CFunctionSelectionPage::CFunctionSelectionPage(QGraphicsWidget *Parent)
mZT2FuncToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT2FuncToggleBtn->resize(SlideButtonSize);
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*)));
mZT2TKToggleBtn = new CToggleButtonWidget(ONPixmapFilePath,OFFPixmapFilePath,this);
mZT2TKToggleBtn->resize(SlideButtonSize);

View File

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

View File

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

View File

@ -104,6 +104,7 @@ Panel::Panel()
mModbusSettingsPage = new CModbusSettingsPage();
mSEISettingsPage = new CSEISettingsPage();
mModbusDisplayPage = new CModbusDisplayPage();
mHistorienDisplayPage = new CHistorienDisplayPage();
scene->addItem(mWelcomePage);
scene->addItem(mZTMainPage);
@ -118,6 +119,7 @@ Panel::Panel()
scene->addItem(mSEISettingsPage);
scene->addItem(mZTLogViewerPage);
scene->addItem(mModbusDisplayPage);
scene->addItem(mHistorienDisplayPage);
mZTMainPage->setPos(0,0);
mZTMainPage->hide();
@ -184,6 +186,12 @@ Panel::Panel()
mModbusDisplayPage->setZValue(1);
mModbusDisplayPage->hide();
mHistorienDisplayPage->setPos(10,10);
mHistorienDisplayPage->resize(SCREEN_RES_WIDTH-20,SCREEN_RES_HEIGHT-20);
mHistorienDisplayPage->setZValue(1);
mHistorienDisplayPage->hide();
installEventFilter(mLogViewPage);

View File

@ -47,6 +47,7 @@
#include "ModbusSettingsPage.h"
#include "SEISettingsPage.h"
#include "ModbusDisplayPage.h"
#include "HistorienDisplayPage.h"
class CZoneTest;
@ -90,6 +91,7 @@ public:
CModbusSettingsPage *mModbusSettingsPage;
CSEISettingsPage *mSEISettingsPage;
CModbusDisplayPage *mModbusDisplayPage;
CHistorienDisplayPage *mHistorienDisplayPage;
};
#endif // PANEL_H

View File

@ -0,0 +1,6 @@
#include "HistorienData.h"
CHistorienData::CHistorienData()
{
}

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

View File

@ -2,6 +2,8 @@
#include "ZTLog.h"
#include "ModbusRepository.h"
#include "PIHistorianDefs.h"
#include "EngLog.h"
#include <QDebug>
CPIHistorianManager::CPIHistorianManager(CModbusRepository *PIHistorianRepo, int ModbusPort, int ModbusDevID)
{
@ -13,8 +15,10 @@ CPIHistorianManager::CPIHistorianManager(CModbusRepository *PIHistorianRepo, int
mHistorianTimer = new QTimer;
mHistorianTimer->setSingleShot(true);
connect(mHistorianTimer,SIGNAL(timeout()),this,SLOT(HistorianTimerExpired()));
mTodaysDate = QDate::currentDate();
mNbPassagesToday = 0;
mNbDeclToday = 0;
mNbDeclTotal = 0;
@ -300,7 +304,6 @@ int CPIHistorianManager::NewZT1Passage(CZTPassageInfo ZT1PassageInfo)
quint16 NbDecl = ZT1PassageInfo.mDetections->size();
quint16 NbDeclFN = 0, NbDeclPG = 0, NbDeclPPI = 0, NbDeclPPE = 0;
quint16 PEQ = 0, ErrComptage = 0;
mPIHistorianRepo->WriteSingleReg(HISTORIAN_LAST_TRAIN_NB_DETECTS_REG_ADD,NbDecl);
if(NbDecl != 0)
{
@ -433,15 +436,14 @@ int CPIHistorianManager::NewZT1Passage(CZTPassageInfo ZT1PassageInfo)
mNbPPIZT1Today += NbDeclPPI;
mNbPPEZT1Today += NbDeclPPE;
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT1PassageInfo.mNbDeclenchements);
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_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT1PassageInfo.mNbDeclenchements);
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);
return RET_OK;
@ -560,37 +562,54 @@ int CPIHistorianManager::NewZT2Passage(CZTPassageInfo ZT2PassageInfo)
mNbPPIZT2Today += NbDeclPPI;
mNbPPEZT2Today += NbDeclPPE;
mPIHistorianRepo->WriteSingleReg(HISTORIAN_TRAINS_TODAY_REG_ADD,mNbPassagesToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT2PassageInfo.mNbDeclenchements);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
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);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TOTAL_REG_ADD,ZT2PassageInfo.mNbDeclenchements);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_DETECTIONS_TODAY_REG_ADD,mNbDeclToday);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPI_ZT2_DETECTS_TODAY_REG_ADD,mNbPPIZT2Today);
mPIHistorianRepo->WriteSingleReg(HISTORIAN_PPE_ZT2_DETECTS_TODAY_REG_ADD,mNbPPEZT2Today);
return RET_OK;
}
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()
{
mNbFNToday = 0;
mNbPGToday = 0;
mNbPPIZT1Today = 0;
mNbPPEZT1Today = 0;
mNbPPIZT2Today = 0;
mNbPPEZT2Today = 0;
mNbDeclToday = 0;
// 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;
mNbPGToday = 0;
mNbPPIZT1Today = 0;
mNbPPEZT1Today = 0;
mNbPPIZT2Today = 0;
mNbPPEZT2Today = 0;
mNbDeclToday = 0;
mNbPassagesToday = 0;
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();
}

View File

@ -8,7 +8,7 @@
#include "ZTData.h"
#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
{
@ -33,6 +33,7 @@ public:
QTimer *mHistorianTimer;
void StartHistorianTimer();
QDate mTodaysDate;
private:
QList<CPIHistorianSession*> mHistorianSessionsList; //Les sessions établies par le serveur sont gardées dans cette liste

View File

@ -107,103 +107,103 @@ unsigned int CSimulationScenario::CreateScenario()
/// //ZT2
// InsertNewStep(STEP_ACTION_REGISTER_ZT2_ITI,300);
// InsertNewStep(STEP_ACTION_OCCUPY_ZT2,300);
InsertNewStep(STEP_ACTION_REGISTER_ZT2_ITI,300);
InsertNewStep(STEP_ACTION_OCCUPY_ZT2,300);
// for(int bogie = 1; bogie <= 18; bogie++)
// {
// InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_S1,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_S1,BOGIE_DELAY);
for(int bogie = 1; bogie <= 18; bogie++)
{
InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_S1,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_S1,BOGIE_DELAY);
// // if(bogie == 5 || bogie == 2)
// {
// // InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_PPE,5);
// // InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_PPE,1);
// if(bogie == 5 || bogie == 2)
{
// InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_PPE,5);
// InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_PPE,1);
// }
}
// // if(bogie == 3 || bogie == 10)
// {
//// InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_PPI,3);
//// InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_PPI,1);
// if(bogie == 3 || bogie == 10)
{
// InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_PPI,3);
// InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_PPI,1);
// }
}
// //if(bogie != 3)
// {
// InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_S1,SENSOR_DELAY);
// InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_S1,BOGIE_DELAY);
// }
//if(bogie != 3)
{
InsertNewStep(STEP_ACTION_ACTIVATE_ZT2_S1,SENSOR_DELAY);
InsertNewStep(STEP_ACTION_DEACTIVATE_ZT2_S1,BOGIE_DELAY);
}
// }
}
// InsertNewStep(STEP_ACTION_DESTROY_ZT2_ITI,800);
// InsertNewStep(STEP_ACTION_FREE_ZT2,800);
InsertNewStep(STEP_ACTION_DESTROY_ZT2_ITI,800);
InsertNewStep(STEP_ACTION_FREE_ZT2,800);
//// MR
// InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300);
InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,300);
InsertNewStep(STEP_ACTION_OCCUPY_ZT1,300);
////// MR
// // InsertNewStep(STEP_ACTION_REGISTER_ZT1_ITI,300);
// InsertNewStep(STEP_ACTION_OCCUPY_ZT1_APPROACH,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++)
{
// 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);
// 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);
//// }
// 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);
////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);
// 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);
////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);
////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);
// 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);
////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);
// // 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;
}

View File

@ -171,7 +171,7 @@ QDataStream &operator<<(QDataStream &out, const CZT1FlagsData &source)
<< source.mTrainCompo3
<< source.mModbusTrainType
<< source.mZT1ITI
<< source.mUnusedFlag13
<< source.mZTDetectionsConfig
<< source.mUnusedFlag14
<< source.mUnusedFlag15
<< source.mUnusedFlag16
@ -198,7 +198,7 @@ QDataStream &operator>>(QDataStream &in, CZT1FlagsData &dest)
>> dest.mTrainCompo3
>> dest.mModbusTrainType
>> dest.mZT1ITI
>> dest.mUnusedFlag13
>> dest.mZTDetectionsConfig
>> dest.mUnusedFlag14
>> dest.mUnusedFlag15
>> dest.mUnusedFlag16
@ -218,7 +218,7 @@ QDataStream &operator<<(QDataStream &out, const CZT2FlagsData &source)
<< source.mTrainCompo2
<< source.mTrainCompo3
<< source.mModbusTrainType
<< source.mUnusedFlag6
<< source.mZTDetectionsConfig
<< source.mUnusedFlag7
<< source.mUnusedFlag8
<< source.mUnusedFlag9
@ -235,7 +235,7 @@ QDataStream &operator>>(QDataStream &in, CZT2FlagsData &dest)
>> dest.mTrainCompo2
>> dest.mTrainCompo3
>> dest.mModbusTrainType
>> dest.mUnusedFlag6
>> dest.mZTDetectionsConfig
>> dest.mUnusedFlag7
>> dest.mUnusedFlag8
>> 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)
{
for(int i = 0; i < DETECTION_FCT_MAX_FCT; i++)

View File

@ -100,6 +100,16 @@ enum eDetectionFunctionID
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
{
PEQ1_UNKNOWN_TYPE,
@ -215,7 +225,7 @@ public:
qint32 mTrainCompo3;
qint32 mModbusTrainType;
qint32 mZT1ITI;
qint32 mUnusedFlag13;
qint32 mZTDetectionsConfig;
qint32 mUnusedFlag14;
qint32 mUnusedFlag15;
qint32 mUnusedFlag16;
@ -235,7 +245,7 @@ public:
qint32 mTrainCompo2;
qint32 mTrainCompo3;
qint32 mModbusTrainType;
qint32 mUnusedFlag6;
qint32 mZTDetectionsConfig;
qint32 mUnusedFlag7;
qint32 mUnusedFlag8;
qint32 mUnusedFlag9;
@ -342,6 +352,7 @@ public:
CZTDetectionConfig mZTDetectionConfig[DETECTION_FCT_MAX_FCT];
void operator=(CZTDetectionFunctionConfig& a);
qint32 GetDetectionsConfigMask();
};

View File

@ -85,6 +85,14 @@ unsigned int CZTSettingsFileMgr::LoadSettings(CZTSettingsData *SettingsData)
*InputStream >> SettingsData->mModbusCCHostAddress;
*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();

View File

@ -308,6 +308,7 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
mNbPassages++;
InsertZT1LogItem();
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
mZT1Log.mZT1Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
}
}
@ -318,6 +319,7 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
mNbPassages++;
InsertZT1LogItem();
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
mZT1Log.mZT1Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
}
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
}
//If the detection is de-activated, ignore it
else if((mZT1PEQType == PEQ1_FN_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_FN_STUCK_LOW_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_FN].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_PEXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_PINT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_LAZER_SENSOR_EXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_LAZER_SENSOR_INT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].AnalysisActive == false) ||
(mZT1PEQType == PEQ1_PG_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PG].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].TKActive == false) ||
(mZT1PEQType == PEQ1_PEXT_PREDETECTION_TYPE && mZTDetectionConfig->mZTDetectionConfig[DETECTION_FCT_PP].TKActive == 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].TKActive == 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].TKActive == false))
{
//The PEQ1 is invalid because analysis was deactivated. Remove it from detection buffer.
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();
mZTPagePTr->SetZTStatus(mNbPassages,mNbTriggers,mZT1ActiveStatus,mZT2ActiveStatus);
mZTPagePTr->ResetZT2Stats();
mZT2Log.mZT2Flags.mZTDetectionsConfig = mZTDetectionConfig->GetDetectionsConfigMask();
if(mModbusCCMgr != 0)
{
//update train info received from the CC Modbus interface

View File

@ -29,14 +29,34 @@
#ifndef ZTVERSION_H
#define ZTVERSION_H
#define ZT_SOFT_VERSION "V1.28"
#define ZT_SOFT_VERSION "V1.33"
//LOG DES CHANGEMENTS
//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
//Corrections à l'interface historien:
//-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
//-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
//-Ajout du flag pour ignorer la clef RSA lors du transfert FTP. Suite aux problemes

View File

@ -278,6 +278,7 @@ unsigned int CZoneTest::Start()
panel.mSEISettingsPage->mProgramHandle = this;
panel.mZTLogViewerPage->mProgramHandle = this;
panel.mModbusDisplayPage->mProgramHandle = this;
panel.mHistorienDisplayPage->mProgramHandle = this;
panel.mEngineeringPage->mDisablePassword = mDisablePassword;
mInternalWatchdog = new CWatchdogCtrl(mUseWatchdog);
@ -605,6 +606,9 @@ unsigned int CZoneTest::InitZT()
mPIHistorianRepository->AddHRDataMap(HISTORIAN_ZT_DATA_BASE_REG,HISTORIAN_MODBUS_ZT_TABLE_DATA_SIZE); //Add the ZT data map
mPIHistorianManager = new CPIHistorianManager(mPIHistorianRepository,PIHistorianPort,PIHistorianDevID);
panel.mHistorienDisplayPage->mHistorienRepoHandle = mPIHistorianRepository;
if(UseModbusInterface)
{
connect(mModbusCCMgr,SIGNAL(ModbusCCConnected(qint32,qint32)),mPIHistorianManager,SLOT(HPCConnected(qint32,qint32)));
@ -911,6 +915,22 @@ bool CZoneTest::eventFilter(QObject *obj, QEvent *event)
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 +1300,18 @@ void CZoneTest::CloseModbusDataPageRequest()
panel.mEngineeringPage->show();
}
void CZoneTest::OpenHistorienDataPageRequest()
{
panel.mModbusDisplayPage->hide();
panel.mHistorienDisplayPage->show();
}
void CZoneTest::CloseHistorienDataPageRequest()
{
panel.mHistorienDisplayPage->hide();
panel.mEngineeringPage->show();
}
void CZoneTest::CheckAndCreateDirectories()
{
QDir dir("./Trains");

View File

@ -147,6 +147,9 @@ public:
void OpenModbusDataPageRequest();
void CloseModbusDataPageRequest();
void OpenHistorienDataPageRequest();
void CloseHistorienDataPageRequest();
void LogZTSettingsRequest(bool LogStationName = false);
void ApplicationQuit(int Reason);