From c4db201023af4f085ef0c9b4552beeb38cb4930f Mon Sep 17 00:00:00 2001 From: jfmartel Date: Mon, 27 Nov 2023 07:49:05 -0500 Subject: [PATCH] =?UTF-8?q?Interface=20SFTP=20pr=C3=AAte=20pour=20tests=20?= =?UTF-8?q?sur=20site?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sftpbatch | 4 +- sources/SFTPServerManager.cpp | 22 +++- sources/SFTPServerManager.h | 5 +- sources/Simulator/SimulationScenario.cpp | 140 +++++++++++------------ sources/ZTconfigmgr.cpp | 3 + sources/Zonetest.cpp | 3 +- 6 files changed, 97 insertions(+), 80 deletions(-) diff --git a/sftpbatch b/sftpbatch index af4f3ed..4ce8917 100644 --- a/sftpbatch +++ b/sftpbatch @@ -1 +1,3 @@ -put ./Trains/LOGZT2_2023-11-24-13-19-04-944.bin /home/zonetest/DevZT/test/CVRT-N-LOGZT2_2023-11-24-13-19-04-944.bin \ No newline at end of file +put ./Trains/LOGZT1_2023-11-27-07-28-45-323.bin /home/zonetest/DevZT/test/CVRT-D-LOGZT1_2023-11-27-07-28-45-323.bin +put ./LOG/LogZT.txt /home/zonetest/DevZT/test/CVRT-LogZT.txt +put ./ING/IngLog.txt /home/zonetest/DevZT/test/CVRT-IngLog.txt \ No newline at end of file diff --git a/sources/SFTPServerManager.cpp b/sources/SFTPServerManager.cpp index 1800ab4..f04be27 100644 --- a/sources/SFTPServerManager.cpp +++ b/sources/SFTPServerManager.cpp @@ -1,6 +1,7 @@ #include "SFTPServerManager.h" #include "GlobalDefine.h" #include +#include "EngLog.h" CSFTPServerManager::CSFTPServerManager() @@ -8,7 +9,7 @@ CSFTPServerManager::CSFTPServerManager() mEnableSFTPClient = false; } -int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix) +int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix, bool CopyEngLog) { if(EnableSFTPClient == false) { @@ -22,6 +23,7 @@ int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTP mSFTPServerAddress = SFTPServerAddress; mSFTPRemoteDir = SFTPRemoteDir; mFilenamePrefix = FilenamePrefix; + mCopyEngLog = CopyEngLog; mProcessTimer = new QTimer; mProcessTimer->setSingleShot(true); @@ -81,7 +83,15 @@ int CSFTPServerManager::TransferTrainLogToSFTPServer(QString FileName, bool Dete QString BatchCmds; BatchCmds.clear(); - BatchCmds.append(QString("put %1 %2").arg(OriginFilePath).arg(DestFilePath)); + BatchCmds.append(QString("put %1 %2\n").arg(OriginFilePath).arg(DestFilePath)); + QString DestLogFileName = QString("%1%2-LogZT.txt").arg(mSFTPRemoteDir).arg(mFilenamePrefix); + BatchCmds.append(QString("put ./LOG/LogZT.txt %1").arg(DestLogFileName)); + if(mCopyEngLog == true) + { + DestLogFileName = QString("%1%2-IngLog.txt").arg(mSFTPRemoteDir).arg(mFilenamePrefix); + BatchCmds.append(QString("\n")); + BatchCmds.append(QString("put ./ING/IngLog.txt %1").arg(DestLogFileName)); + } SFTPBatchFile->write(qPrintable(BatchCmds)); SFTPBatchFile->close(); @@ -100,7 +110,7 @@ int CSFTPServerManager::TransferTrainLogToSFTPServer(QString FileName, bool Dete } mTransferProcess->start(Cmd); - mProcessTimer->start(PROCESS_TIMEOUT); //Allow some time to copy the file + mProcessTimer->start(SFTP_PROCESS_TIMEOUT); //Allow some time to copy the file return RET_OK; @@ -113,8 +123,8 @@ void CSFTPServerManager::NewTrainFileSaved(QString Filename, bool Detection) void CSFTPServerManager::ProcessFinished(int ExitCode, QProcess::ExitStatus ExitStatus) { - qDebug("Process SFTP terminé. Exit code - status %d - %d || Output %s || Erreur %s",ExitCode,ExitStatus,qPrintable(mTransferProcess->readAllStandardOutput()),qPrintable(mTransferProcess->readAllStandardError())); - qDebug("stdout: %s",qPrintable(mTransferProcess->readAll())); + CEngLog::instance()->AddLogString(QString("Process SFTP terminé. Exit code: %1 || Exit status: %2 || Output: %3 || Erreur: %4 || stdout: %5").arg(ExitCode).arg(ExitStatus).arg(qPrintable(mTransferProcess->readAllStandardOutput())).arg(qPrintable(mTransferProcess->readAllStandardError())).arg(qPrintable(mTransferProcess->readAll()))); + // qDebug("stdout: %s",qPrintable(mTransferProcess->readAll())); } void CSFTPServerManager::ProcessTimerExpired() @@ -122,6 +132,6 @@ void CSFTPServerManager::ProcessTimerExpired() if(mTransferProcess->state() != QProcess::NotRunning) { mTransferProcess->terminate(); - qDebug("Timer du process SFTP expiré Output %s || Erreur %s",qPrintable(mTransferProcess->readAllStandardOutput()),qPrintable(mTransferProcess->readAllStandardError())); + CEngLog::instance()->AddLogString(QString("Timer du process SFTP expiré Output: %1 || Erreur: %s").arg(qPrintable(mTransferProcess->readAllStandardOutput())).arg(qPrintable(mTransferProcess->readAllStandardError())),2); } } diff --git a/sources/SFTPServerManager.h b/sources/SFTPServerManager.h index aa8e7f6..86aee58 100644 --- a/sources/SFTPServerManager.h +++ b/sources/SFTPServerManager.h @@ -6,7 +6,7 @@ #include //#define USE_SCP -#define PROCESS_TIMEOUT 2000 //millisecs +#define SFTP_PROCESS_TIMEOUT 2000 //millisecs class CSFTPServerManager : public QObject { @@ -15,7 +15,7 @@ public: CSFTPServerManager(); ~CSFTPServerManager(); - int InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix); + int InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix, bool CopyEngLog); int TransferTrainLogToSFTPServer(QString Filename, bool Detection); private: @@ -25,6 +25,7 @@ private: QString mSFTPServerAddress; QString mSFTPRemoteDir; QString mFilenamePrefix; + bool mCopyEngLog; QProcess *mTransferProcess; diff --git a/sources/Simulator/SimulationScenario.cpp b/sources/Simulator/SimulationScenario.cpp index c28ce68..044878c 100644 --- a/sources/Simulator/SimulationScenario.cpp +++ b/sources/Simulator/SimulationScenario.cpp @@ -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); + // 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; } diff --git a/sources/ZTconfigmgr.cpp b/sources/ZTconfigmgr.cpp index 23d721e..ec91962 100644 --- a/sources/ZTconfigmgr.cpp +++ b/sources/ZTconfigmgr.cpp @@ -63,6 +63,9 @@ CZTConfigMgr::CZTConfigMgr() //SAMBA drive parameters mActivateSAMBADrive = false; mSAMBADomain.clear(); + + //SFTP server parameters + mActivateSFTPClient = false; } ZTConfigResult CZTConfigMgr::LoadZTConfig() diff --git a/sources/Zonetest.cpp b/sources/Zonetest.cpp index 3657da4..989b059 100644 --- a/sources/Zonetest.cpp +++ b/sources/Zonetest.cpp @@ -660,7 +660,8 @@ unsigned int CZoneTest::InitZT() QString SFTPPassword = CZTConfigMgr::instance()->GetSFTPPassword(); QString SFTPServerAddress = CZTConfigMgr::instance()->GetSFTPServerAddress(); QString SFTPRemoteDir = CZTConfigMgr::instance()->GetSFTPServerRemoteDir(); - mSFTPManager.InitFTPServerManager(EnableSFTPClient,SFTPLogin,SFTPPassword,SFTPServerAddress,SFTPRemoteDir,mZTStation->GetStationShortName()); + bool UseEngLog = CZTConfigMgr::instance()->GetEngLog() != -1; + mSFTPManager.InitFTPServerManager(EnableSFTPClient,SFTPLogin,SFTPPassword,SFTPServerAddress,SFTPRemoteDir,mZTStation->GetStationShortName(),UseEngLog); if(EnableSFTPClient == true) { connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),&mSFTPManager,SLOT(NewTrainFileSaved(QString,bool)));