Gestion des nouveaux fichiers avec info du Modbus
This commit is contained in:
@@ -89,7 +89,7 @@ int CDirParserThread::ParseDir(QDir dir, bool KeepData)
|
||||
|
||||
void CDirParserThread::SetParsingInfo(QDir dir, QString Filter, bool KeepData)
|
||||
{
|
||||
qDebug("DirParserThread parsing info: dir: %s, Filter: ",dir.dirName().toAscii().data(),Filter.toAscii().data());
|
||||
qDebug("DirParserThread parsing info: dir: %s, Filter: %s",dir.dirName().toAscii().data(),Filter.toAscii().data());
|
||||
mRootDir = dir;
|
||||
mKeepData = KeepData;
|
||||
mFilter = Filter;
|
||||
|
||||
@@ -731,6 +731,8 @@ int CDatabaseImporterThread::ArchiveDB()
|
||||
|
||||
}
|
||||
|
||||
delete m7zipProcess;
|
||||
|
||||
int IgnoredFiles = 0;
|
||||
|
||||
|
||||
|
||||
@@ -514,12 +514,34 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
||||
Problem = "NON";
|
||||
}
|
||||
MeanSpeed = ZT1LogElement->mMeanSpeed;
|
||||
Summary.sprintf("Passage:\n\nDate: %s\nHeure: %s\nZone Test : ZT1\nTrain : %s\nNombre d'éléments: %d\nProblématique: %s\n\n\nDéclenchements: \n",
|
||||
ZT1LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||
ZT1LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||
CZTData::GetTrainTypeString(ZT1LogElement->mTrainType),
|
||||
ZT1LogElement->mNbElements,
|
||||
Problem.toAscii().data());
|
||||
|
||||
QString TrainType = CZTData::GetModbusTrainTypeString(ZT1LogElement->mFlags.mModbusTrainType);
|
||||
if(TrainType == "Inconnu")
|
||||
{
|
||||
TrainType = CZTData::GetTrainTypeString(ZT1LogElement->mTrainType);
|
||||
}
|
||||
|
||||
QString TrainCompo = "Non Disponible";
|
||||
if(ZT1LogElement->mFlags.mTrainCompo1 != 0)
|
||||
{
|
||||
TrainCompo = QString("%1-%2-%3").arg(ZT1LogElement->mFlags.mTrainCompo1)\
|
||||
.arg(ZT1LogElement->mFlags.mTrainCompo2)
|
||||
.arg(ZT1LogElement->mFlags.mTrainCompo3);
|
||||
}
|
||||
|
||||
Summary = QString("Passage:\n\nDate: %1\nHeure: %2\nZone Test : ZT1\nTrain : %3\nCompo: %6\nNombre d'éléments: %4\nProblématique: %5\n\n\nDéclenchements: \n")\
|
||||
.arg(ZT1LogElement->mPassageDateTime.toString("yyyy/MM/dd"))\
|
||||
.arg(ZT1LogElement->mPassageDateTime.toString("hh:mm:ss"))\
|
||||
.arg(TrainType)\
|
||||
.arg(ZT1LogElement->mNbElements)\
|
||||
.arg(Problem)
|
||||
.arg(TrainCompo);
|
||||
// Summary.sprintf("Passage:\n\nDate: %s\nHeure: %s\nZone Test : ZT1\nTrain : %s\nNombre d'éléments: %d\nProblématique: %s\n\n\nDéclenchements: \n",
|
||||
// ZT1LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||
// ZT1LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||
// CZTData::GetTrainTypeString(ZT1LogElement->mTrainType),
|
||||
// ZT1LogElement->mNbElements,
|
||||
// Problem.toAscii().data());
|
||||
|
||||
if(ZT1LogElement->mZTDetections.size() > 0)
|
||||
{
|
||||
@@ -570,11 +592,29 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
||||
{
|
||||
Problem = "NON";
|
||||
}
|
||||
Summary.sprintf("Statistiques du passage:\n\nDate: %s\nHeure: %s\nZone Test: ZT2\nNombre d'éléments: %d\nProblématique: %s\n\n\n\nDéclenchements: \n",
|
||||
ZT2LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||
ZT2LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||
ZT2LogElement->mNbElements,
|
||||
Problem.toAscii().data());
|
||||
// Summary.sprintf("Statistiques du passage:\n\nDate: %s\nHeure: %s\nZone Test: ZT2\nNombre d'éléments: %d\nProblématique: %s\n\n\n\nDéclenchements: \n",
|
||||
// ZT2LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||
// ZT2LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||
// ZT2LogElement->mNbElements,
|
||||
// Problem.toAscii().data());
|
||||
|
||||
QString TrainType = CZTData::GetModbusTrainTypeString(ZT2LogElement->mFlags.mModbusTrainType);
|
||||
|
||||
QString TrainCompo = "Non Disponible";
|
||||
if(ZT2LogElement->mFlags.mTrainCompo1 != 0)
|
||||
{
|
||||
TrainCompo = QString("%1-%2-%3").arg(ZT2LogElement->mFlags.mTrainCompo1)\
|
||||
.arg(ZT2LogElement->mFlags.mTrainCompo2)
|
||||
.arg(ZT2LogElement->mFlags.mTrainCompo3);
|
||||
}
|
||||
|
||||
Summary = QString("Passage:\n\nDate: %1\nHeure: %2\nZone Test : ZT2\nTrain : %3\nCompo: %6\nNombre d'éléments: %4\nProblématique: %5\n\n\nDéclenchements: \n")\
|
||||
.arg(ZT2LogElement->mPassageDateTime.toString("yyyy/MM/dd"))\
|
||||
.arg(ZT2LogElement->mPassageDateTime.toString("hh:mm:ss"))\
|
||||
.arg(TrainType)\
|
||||
.arg(ZT2LogElement->mNbElements)\
|
||||
.arg(Problem)
|
||||
.arg(TrainCompo);
|
||||
|
||||
if(ZT2LogElement->mZTDetections.size() > 0)
|
||||
{
|
||||
|
||||
@@ -61,6 +61,7 @@ public:
|
||||
CZT1FlagsData mFlags;
|
||||
QString mStationName;
|
||||
bool mFileProtected;
|
||||
int mFileVersion;
|
||||
};
|
||||
//QDataStream &operator<<(QDataStream &out, const CZT1LogElement &source);
|
||||
//QDataStream &operator>>(QDataStream &in, CZT1LogElement &dest);
|
||||
|
||||
@@ -292,9 +292,27 @@ CLogElement* CTrainLogFileMgr::OpenTrainLog(QString LogFilePathName,unsigned int
|
||||
LogFileVersion = 2;
|
||||
FileProtected = true;
|
||||
}
|
||||
else if(MagicNbr == 0xDEADBEEF+15)
|
||||
{
|
||||
LogFileVersion = 3;
|
||||
|
||||
qint32 OutilZTFlags[10];
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
*InputStream >> OutilZTFlags[i];
|
||||
}
|
||||
|
||||
if(OutilZTFlags[OUTILZT_FILE_PROTECTED_FLAG] == 1)
|
||||
{
|
||||
FileProtected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
FileProtected = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
qDebug(QString().sprintf("Fichier de passage invalide (Magic number) %s",LogFilePathName.toAscii().data()).toAscii().data());
|
||||
BinaryLogFile->close();
|
||||
delete BinaryLogFile;
|
||||
@@ -331,8 +349,27 @@ CLogElement* CTrainLogFileMgr::OpenTrainLog(QString LogFilePathName,unsigned int
|
||||
>> PassageLog->mFlags.mPGCalibrationON
|
||||
>> PassageLog->mFlags.mPGTresholdValue
|
||||
>> PassageLog->mFlags.mAnalogTracePresent;
|
||||
|
||||
PassageLog->mFlags.mTrainCompo1 = 0;
|
||||
PassageLog->mFlags.mTrainCompo2 = 0;
|
||||
PassageLog->mFlags.mTrainCompo3 = 0;
|
||||
PassageLog->mFlags.mModbusTrainType = MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED;
|
||||
}
|
||||
else if(LogFileVersion == 2)
|
||||
{
|
||||
*InputStream >> PassageLog->mFlags.mExtPGOffset
|
||||
>> PassageLog->mFlags.mIntPGOffset
|
||||
>> PassageLog->mFlags.mPGCalibrationON
|
||||
>> PassageLog->mFlags.mPGTresholdValue
|
||||
>> PassageLog->mFlags.mAnalogTracePresent
|
||||
>> PassageLog->mFlags.mIsProblematicPassage;
|
||||
|
||||
PassageLog->mFlags.mTrainCompo1 = 0;
|
||||
PassageLog->mFlags.mTrainCompo2 = 0;
|
||||
PassageLog->mFlags.mTrainCompo3 = 0;
|
||||
PassageLog->mFlags.mModbusTrainType = MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED;
|
||||
}
|
||||
else if(LogFileVersion == 3)
|
||||
{
|
||||
*InputStream >> PassageLog->mFlags;
|
||||
}
|
||||
@@ -371,9 +408,6 @@ CLogElement* CTrainLogFileMgr::OpenTrainLog(QString LogFilePathName,unsigned int
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
BinaryLogFile->close();
|
||||
delete BinaryLogFile;
|
||||
delete InputStream;
|
||||
@@ -400,12 +434,24 @@ CLogElement* CTrainLogFileMgr::OpenTrainLog(QString LogFilePathName,unsigned int
|
||||
*InputStream >> NbDetections;
|
||||
*InputStream >> PassageLog->mStationName;
|
||||
if(LogFileVersion == 2)
|
||||
{
|
||||
*InputStream >> PassageLog->mFlags.mIsProblematicPassage;
|
||||
PassageLog->mFlags.mModbusTrainType = MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED;
|
||||
PassageLog->mFlags.mTrainCompo1 = 0;
|
||||
PassageLog->mFlags.mTrainCompo2 = 0;
|
||||
PassageLog->mFlags.mTrainCompo3 = 0;
|
||||
}
|
||||
else if(LogFileVersion == 3)
|
||||
{
|
||||
*InputStream >> PassageLog->mFlags;
|
||||
}
|
||||
else
|
||||
{
|
||||
PassageLog->mFlags.mIsProblematicPassage = 2;
|
||||
PassageLog->mFlags.mModbusTrainType = MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED;
|
||||
PassageLog->mFlags.mTrainCompo1 = 0;
|
||||
PassageLog->mFlags.mTrainCompo2 = 0;
|
||||
PassageLog->mFlags.mTrainCompo3 = 0;
|
||||
}
|
||||
*InputStream >> NbElements;
|
||||
*InputStream >> DateTime;
|
||||
@@ -475,7 +521,7 @@ unsigned int CTrainLogFileMgr::SetTrainLogProtected(bool IsProtected, QString Lo
|
||||
|
||||
*Stream >> MagicNbr;
|
||||
|
||||
BinaryLogFile->seek(0);
|
||||
|
||||
|
||||
if(IsProtected == true)
|
||||
{
|
||||
@@ -487,8 +533,27 @@ unsigned int CTrainLogFileMgr::SetTrainLogProtected(bool IsProtected, QString Lo
|
||||
else if(MagicNbr == 0xDEADBEEF || MagicNbr == 0xDEADBEEF + 1)
|
||||
{
|
||||
MagicNbr += 2;
|
||||
BinaryLogFile->seek(0);
|
||||
*Stream << MagicNbr;
|
||||
}
|
||||
else if(MagicNbr == 0xDEADBEEF + 15)
|
||||
{
|
||||
//Use the reserved registers inside the file...
|
||||
qint32 Flags[10];
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
*Stream >> Flags[i];
|
||||
}
|
||||
|
||||
Flags[OUTILZT_FILE_PROTECTED_FLAG] = 1;
|
||||
BinaryLogFile->seek(0);
|
||||
*Stream >> MagicNbr; //Dummy read;
|
||||
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
*Stream << Flags[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log File Error
|
||||
@@ -504,6 +569,7 @@ unsigned int CTrainLogFileMgr::SetTrainLogProtected(bool IsProtected, QString Lo
|
||||
{
|
||||
//file is already protected
|
||||
MagicNbr -= 2;
|
||||
BinaryLogFile->seek(0);
|
||||
*Stream << MagicNbr;
|
||||
|
||||
}
|
||||
@@ -511,6 +577,24 @@ unsigned int CTrainLogFileMgr::SetTrainLogProtected(bool IsProtected, QString Lo
|
||||
{
|
||||
//file is already unprotected
|
||||
}
|
||||
else if(MagicNbr == 0xDEADBEEF + 15)
|
||||
{
|
||||
//Use the reserved registers inside the file...
|
||||
qint32 Flags[10];
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
*Stream >> Flags[i];
|
||||
}
|
||||
|
||||
Flags[OUTILZT_FILE_PROTECTED_FLAG] = 0;
|
||||
BinaryLogFile->seek(0);
|
||||
*Stream >> MagicNbr; //Dummy read;
|
||||
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
*Stream << Flags[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log File Error
|
||||
|
||||
+80
-4
@@ -82,6 +82,42 @@ const char* CZTData::GetTrainTypeString(unsigned int TrainType)
|
||||
return TrainTypeString[TrainType];
|
||||
}
|
||||
|
||||
const char* CZTData::GetModbusTrainTypeString(unsigned int TrainType)
|
||||
{
|
||||
switch(TrainType)
|
||||
{
|
||||
case MODBUS_CC_TRAIN_TYPE_MR63:
|
||||
{
|
||||
return "MR63";
|
||||
break;
|
||||
}
|
||||
case MODBUS_CC_TRAIN_TYPE_MR73:
|
||||
{
|
||||
return "MR73";
|
||||
break;
|
||||
}
|
||||
case MODBUS_CC_TRAIN_TYPE_MPM10:
|
||||
{
|
||||
return "MPM10";
|
||||
break;
|
||||
}
|
||||
case MODBUS_CC_TRAIN_TYPE_MAINTENANCE:
|
||||
{
|
||||
return "Vehicule Travaux";
|
||||
break;
|
||||
}
|
||||
case MODBUS_CC_TRAIN_TYPE_INVALID_ATS_OFFLINE:
|
||||
case MODBUS_CC_TRAIN_TYPE_INVALID_SERVICE_REBOOT:
|
||||
case MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED:
|
||||
case MODBUS_CC_TRAIN_TYPE_INVALID_SACL_OFFLINE:
|
||||
default:
|
||||
{
|
||||
return "Inconnu";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CZT1LogData::CZT1LogData(CZT1ThreadData *ThreadData):
|
||||
mZT1ThreadData(ThreadData)
|
||||
@@ -130,7 +166,19 @@ QDataStream &operator<<(QDataStream &out, const CZT1FlagsData &source)
|
||||
<< source.mPGTresholdValue
|
||||
<< source.mAnalogTracePresent
|
||||
<< source.mIsProblematicPassage
|
||||
;
|
||||
<< source.mTrainCompo1
|
||||
<< source.mTrainCompo2
|
||||
<< source.mTrainCompo3
|
||||
<< source.mModbusTrainType
|
||||
<< source.mUnusedFlag12
|
||||
<< source.mUnusedFlag13
|
||||
<< source.mUnusedFlag14
|
||||
<< source.mUnusedFlag15
|
||||
<< source.mUnusedFlag16
|
||||
<< source.mUnusedFlag17
|
||||
<< source.mUnusedFlag18
|
||||
<< source.mUnusedFlag19
|
||||
<< source.mUnusedFlag20;
|
||||
|
||||
return out;
|
||||
}
|
||||
@@ -143,7 +191,19 @@ QDataStream &operator>>(QDataStream &in, CZT1FlagsData &dest)
|
||||
>> dest.mPGTresholdValue
|
||||
>> dest.mAnalogTracePresent
|
||||
>> dest.mIsProblematicPassage
|
||||
;
|
||||
>> dest.mTrainCompo1
|
||||
>> dest.mTrainCompo2
|
||||
>> dest.mTrainCompo3
|
||||
>> dest.mModbusTrainType
|
||||
>> dest.mUnusedFlag12
|
||||
>> dest.mUnusedFlag13
|
||||
>> dest.mUnusedFlag14
|
||||
>> dest.mUnusedFlag15
|
||||
>> dest.mUnusedFlag16
|
||||
>> dest.mUnusedFlag17
|
||||
>> dest.mUnusedFlag18
|
||||
>> dest.mUnusedFlag19
|
||||
>> dest.mUnusedFlag20;
|
||||
|
||||
return in;
|
||||
}
|
||||
@@ -245,7 +305,15 @@ CZT2LogData::~CZT2LogData()
|
||||
QDataStream &operator<<(QDataStream &out, const CZT2FlagsData &source)
|
||||
{
|
||||
out << source.mIsProblematicPassage
|
||||
;
|
||||
<< source.mTrainCompo1
|
||||
<< source.mTrainCompo2
|
||||
<< source.mTrainCompo3
|
||||
<< source.mModbusTrainType
|
||||
<< source.mUnusedFlag6
|
||||
<< source.mUnusedFlag7
|
||||
<< source.mUnusedFlag8
|
||||
<< source.mUnusedFlag9
|
||||
<< source.mUnusedFlag10;
|
||||
|
||||
return out;
|
||||
}
|
||||
@@ -253,7 +321,15 @@ QDataStream &operator<<(QDataStream &out, const CZT2FlagsData &source)
|
||||
QDataStream &operator>>(QDataStream &in, CZT2FlagsData &dest)
|
||||
{
|
||||
in >> dest.mIsProblematicPassage
|
||||
;
|
||||
>> dest.mTrainCompo1
|
||||
>> dest.mTrainCompo2
|
||||
>> dest.mTrainCompo3
|
||||
>> dest.mModbusTrainType
|
||||
>> dest.mUnusedFlag6
|
||||
>> dest.mUnusedFlag7
|
||||
>> dest.mUnusedFlag8
|
||||
>> dest.mUnusedFlag9
|
||||
>> dest.mUnusedFlag10;;
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,35 @@ enum eTrainTypeID
|
||||
TRAIN_TYPE_MAX_ID
|
||||
};
|
||||
|
||||
enum eOutilZTFlagsIndex
|
||||
{
|
||||
OUTILZT_FILE_PROTECTED_FLAG,
|
||||
OUTILSZT_UNUSED_FLAG_2,
|
||||
OUTILSZT_UNUSED_FLAG_3,
|
||||
OUTILSZT_UNUSED_FLAG_4,
|
||||
OUTILSZT_UNUSED_FLAG_5,
|
||||
OUTILSZT_UNUSED_FLAG_6,
|
||||
OUTILSZT_UNUSED_FLAG_7,
|
||||
OUTILSZT_UNUSED_FLAG_8,
|
||||
OUTILSZT_UNUSED_FLAG_9,
|
||||
OUTILSZT_UNUSED_FLAG_10
|
||||
};
|
||||
|
||||
enum eModbusCCTrainTypes
|
||||
{
|
||||
MODBUS_CC_TRAIN_TYPE_MR63 = 63,
|
||||
MODBUS_CC_TRAIN_TYPE_MR73 = 73,
|
||||
MODBUS_CC_TRAIN_TYPE_MPM10 = 10,
|
||||
MODBUS_CC_TRAIN_TYPE_MAINTENANCE = 0,
|
||||
MODBUS_CC_TRAIN_TYPE_INVALID_ATS_OFFLINE = 98,
|
||||
MODBUS_CC_TRAIN_TYPE_INVALID_SERVICE_REBOOT = 97,
|
||||
MODBUS_CC_TRAIN_TYPE_INVALID_NOT_UPDATED = 99,
|
||||
MODBUS_CC_TRAIN_TYPE_INVALID_SACL_OFFLINE = 96,
|
||||
|
||||
MODBUS_CC_TRAIN_TYPE_MAX_VALUE
|
||||
};
|
||||
|
||||
|
||||
enum eZT1FlagsID
|
||||
{
|
||||
ZT1_INT_PG_OFFSET_FLAG_ID,
|
||||
@@ -138,6 +167,7 @@ public:
|
||||
|
||||
static const char *TrainTypeString[];
|
||||
static const char *GetTrainTypeString(unsigned int TrainType);
|
||||
static const char *GetModbusTrainTypeString(unsigned int TrainType);
|
||||
|
||||
};
|
||||
|
||||
@@ -180,6 +210,19 @@ public:
|
||||
qint32 mPGCalibrationON;
|
||||
qint32 mAnalogTracePresent;
|
||||
qint32 mIsProblematicPassage; //This flag will be set if problems have been detected but not sent to PCC due to PURE comitee rules.
|
||||
qint32 mTrainCompo1;
|
||||
qint32 mTrainCompo2;
|
||||
qint32 mTrainCompo3;
|
||||
qint32 mModbusTrainType;
|
||||
qint32 mUnusedFlag12;
|
||||
qint32 mUnusedFlag13;
|
||||
qint32 mUnusedFlag14;
|
||||
qint32 mUnusedFlag15;
|
||||
qint32 mUnusedFlag16;
|
||||
qint32 mUnusedFlag17;
|
||||
qint32 mUnusedFlag18;
|
||||
qint32 mUnusedFlag19;
|
||||
qint32 mUnusedFlag20;
|
||||
};
|
||||
|
||||
QDataStream &operator<<(QDataStream &out, const CZT1FlagsData &source);
|
||||
@@ -245,6 +288,15 @@ class CZT2FlagsData
|
||||
{
|
||||
public:
|
||||
qint32 mIsProblematicPassage; //This flag will be set if problems have been detected but not sent to PCC due to PURE comitee rules.
|
||||
qint32 mTrainCompo1;
|
||||
qint32 mTrainCompo2;
|
||||
qint32 mTrainCompo3;
|
||||
qint32 mModbusTrainType;
|
||||
qint32 mUnusedFlag6;
|
||||
qint32 mUnusedFlag7;
|
||||
qint32 mUnusedFlag8;
|
||||
qint32 mUnusedFlag9;
|
||||
qint32 mUnusedFlag10;
|
||||
};
|
||||
|
||||
QDataStream &operator<<(QDataStream &out, const CZT2FlagsData &source);
|
||||
|
||||
Reference in New Issue
Block a user