Début dev SFTP suite
This commit is contained in:
@@ -1,5 +1,70 @@
|
||||
#include "SFTPServerManager.h"
|
||||
#include "GlobalDefine.h"
|
||||
|
||||
CSFTPServerManager::CSFTPServerManager()
|
||||
{
|
||||
mEnableSFTPClient = false;
|
||||
}
|
||||
|
||||
int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix)
|
||||
{
|
||||
if(EnableSFTPClient == false)
|
||||
{
|
||||
mEnableSFTPClient = false;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
mEnableSFTPClient = true;
|
||||
mSFTPLogin = SFTPLogin;
|
||||
mSFTPPassword = SFTPPassword;
|
||||
mSFTPServerAddress = SFTPServerAddress;
|
||||
mSFTPRemoteDir = SFTPRemoteDir;
|
||||
mFilenamePrefix = FilenamePrefix;
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CSFTPServerManager::TransferTrainLogToSFTPServer(QString FileName, bool Detection)
|
||||
{
|
||||
if(mEnableSFTPClient == false)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
QString DestFilePath = FileName;
|
||||
if(Detection == true)
|
||||
{
|
||||
DestFilePath.prepend(mFilenamePrefix + "-D-"); //Flag indiquant que ce passage contient des détections (D)
|
||||
}
|
||||
else
|
||||
{
|
||||
DestFilePath.prepend(mFilenamePrefix + "-N-"); //Flag inidiquant un passage normal (sans détection) (N)
|
||||
}
|
||||
|
||||
|
||||
DestFilePath.prepend(mSFTPRemoteDir);
|
||||
QString OriginFilePath = FileName;
|
||||
OriginFilePath.prepend("./Trains/");
|
||||
|
||||
QString Cmd;
|
||||
|
||||
#ifdef USE_SCP
|
||||
Cmd = QString ("sshpass -p \"%1\" scp %2 %3@%4:%5").arg(mSFTPPassword).arg(OriginFilePath).arg(mSFTPLogin).arg(mSFTPServerAddress).arg(DestFilePath);
|
||||
#else
|
||||
#endif
|
||||
qDebug("%s",qPrintable(Cmd));
|
||||
|
||||
// mTransferProcess->start(Cmd);
|
||||
// mProcessTimer->start(PROCESS_TIMEOUT); //Allow some time to copy the file
|
||||
// mNetDriveSMState = NET_DRIVE_TRANSFERRING_TRAIN_LOG_STATE;
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CSFTPServerManager::NewTrainFileSaved(QString Filename, bool Detection)
|
||||
{
|
||||
TransferTrainLogToSFTPServer(Filename,Detection);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,30 @@
|
||||
#ifndef SFTPSERVERMANAGER_H
|
||||
#define SFTPSERVERMANAGER_H
|
||||
|
||||
class CSFTPServerManager
|
||||
#include <QObject>
|
||||
|
||||
#define USE_SCP
|
||||
|
||||
class CSFTPServerManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CSFTPServerManager();
|
||||
|
||||
int InitFTPServerManager(bool EnableSFTPClient, QString SFTPLogin, QString SFTPPassword, QString SFTPServerAddress, QString SFTPRemoteDir, QString FilenamePrefix);
|
||||
int TransferTrainLogToSFTPServer(QString Filename, bool Detection);
|
||||
|
||||
private:
|
||||
bool mEnableSFTPClient;
|
||||
QString mSFTPLogin;
|
||||
QString mSFTPPassword;
|
||||
QString mSFTPServerAddress;
|
||||
QString mSFTPRemoteDir;
|
||||
QString mFilenamePrefix;
|
||||
|
||||
public slots:
|
||||
void NewTrainFileSaved(QString,bool);
|
||||
|
||||
};
|
||||
|
||||
#endif // SFTPSERVERMANAGER_H
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+60
-1
@@ -296,7 +296,41 @@ ZTConfigResult CZTConfigMgr::LoadZTConfig()
|
||||
mSAMBADomain = string.mid(pos);
|
||||
CEngLog::instance()->AddLogString(QString("Domaine SAMBA: %1").arg(mSAMBADomain),1);
|
||||
}
|
||||
}
|
||||
else if(string.contains("ACTIVER_SFTP"))
|
||||
{
|
||||
if(string.mid(pos) == "OUI")
|
||||
{
|
||||
mActivateSFTPClient = true;
|
||||
CEngLog::instance()->AddLogString(QString().sprintf("Copie sur serveur SFTP activée"),1);
|
||||
}
|
||||
else if(string.mid(pos) == "NON")
|
||||
{
|
||||
mActivateSFTPClient = false;
|
||||
CEngLog::instance()->AddLogString(QString().sprintf("Copie sur serveur SFTP désactivée"),1);
|
||||
}
|
||||
}
|
||||
else if(string.contains("SFTP_LOGIN"))
|
||||
{
|
||||
mSFTPLogin = string.mid(pos);
|
||||
CEngLog::instance()->AddLogString(QString("Login SFTP: %1").arg(mSFTPLogin),1);
|
||||
}
|
||||
else if(string.contains("SFTP_PASSWORD"))
|
||||
{
|
||||
mSFTPPassword = string.mid(pos);
|
||||
CEngLog::instance()->AddLogString(QString("Mot de passe SFTP: %1").arg(mSFTPPassword),1);
|
||||
}
|
||||
else if(string.contains("SFTP_SERVER_ADDRESS"))
|
||||
{
|
||||
mSFTPAddress = string.mid(pos);
|
||||
CEngLog::instance()->AddLogString(QString("Adresse du serveur SFTP: %1").arg(mSFTPAddress),1);
|
||||
}
|
||||
else if(string.contains("SFTP_DESTINATION"))
|
||||
{
|
||||
mSFTPRemoteDir = string.mid(pos);
|
||||
CEngLog::instance()->AddLogString(QString("Répertoire distant SFTP %1").arg(mSFTPRemoteDir),1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,3 +429,28 @@ QString CZTConfigMgr::GetSAMBADomain()
|
||||
{
|
||||
return mSAMBADomain;
|
||||
}
|
||||
|
||||
bool CZTConfigMgr::GetSFTPActivated()
|
||||
{
|
||||
return mActivateSFTPClient;
|
||||
}
|
||||
|
||||
QString CZTConfigMgr::GetSFTPLogin()
|
||||
{
|
||||
return mSFTPLogin;
|
||||
}
|
||||
|
||||
QString CZTConfigMgr::GetSFTPPassword()
|
||||
{
|
||||
return mSFTPPassword;
|
||||
}
|
||||
|
||||
QString CZTConfigMgr::GetSFTPServerAddress()
|
||||
{
|
||||
return mSFTPAddress;
|
||||
}
|
||||
|
||||
QString CZTConfigMgr::GetSFTPServerRemoteDir()
|
||||
{
|
||||
return mSFTPRemoteDir;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,11 @@ public:
|
||||
QString GetSAMBALogin();
|
||||
QString GetSAMBAPassword();
|
||||
QString GetSAMBADomain();
|
||||
bool GetSFTPActivated();
|
||||
QString GetSFTPLogin();
|
||||
QString GetSFTPPassword();
|
||||
QString GetSFTPServerAddress();
|
||||
QString GetSFTPServerRemoteDir();
|
||||
|
||||
|
||||
|
||||
@@ -134,6 +139,13 @@ private:
|
||||
QString mSAMBALogin;
|
||||
QString mSAMBAPassword;
|
||||
QString mSAMBADomain;
|
||||
|
||||
// SFTP server parameters
|
||||
bool mActivateSFTPClient;
|
||||
QString mSFTPLogin;
|
||||
QString mSFTPPassword;
|
||||
QString mSFTPAddress;
|
||||
QString mSFTPRemoteDir;
|
||||
};
|
||||
|
||||
#endif // ZTCONFIGMGR_H
|
||||
|
||||
+18
-2
@@ -62,6 +62,8 @@
|
||||
#include <sys/time.h>
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef USE_NETWORKING
|
||||
#include "NetworkManager.h"
|
||||
#endif
|
||||
@@ -290,7 +292,7 @@ unsigned int CZoneTest::Start()
|
||||
mZTStateMachine->mZTDetectionConfig = mZTSettings->mDetectionFunctionSettings;
|
||||
connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),panel.mLogsListPage,SLOT(NewTrainLogFileSaved(QString,bool)));
|
||||
|
||||
connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),&mNetworkDriveMgr,SLOT(NewTrainFileSaved(QString,bool)));
|
||||
// connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),&mNetworkDriveMgr,SLOT(NewTrainFileSaved(QString,bool))); //JFM déplacé plus bas, connect seulement si NetworkDrive est activé
|
||||
|
||||
CZTLog::instance()->mProgramHandle = this;
|
||||
|
||||
@@ -648,7 +650,21 @@ unsigned int CZoneTest::InitZT()
|
||||
QString SAMBAPassword = CZTConfigMgr::instance()->GetSAMBAPassword();
|
||||
QString SAMBADomain = CZTConfigMgr::instance()->GetSAMBADomain();
|
||||
mNetworkDriveMgr.InitNetDriveMgr(UseNetworkDrive,SAMBAMountPoint,SAMBALogin,SAMBAPassword,SAMBADomain,mZTStation->GetStationShortName());
|
||||
// mNetworkDriveMgr.InitNetDriveMgr(true,"//192.168.50.50/TestZT","JF","signal77240","",mZTStation->GetStationShortName());
|
||||
if(UseNetworkDrive == true)
|
||||
{
|
||||
connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),&mNetworkDriveMgr,SLOT(NewTrainFileSaved(QString,bool)));
|
||||
}
|
||||
|
||||
bool EnableSFTPClient = CZTConfigMgr::instance()->GetSFTPActivated();
|
||||
QString SFTPLogin = CZTConfigMgr::instance()->GetSFTPLogin();
|
||||
QString SFTPPassword = CZTConfigMgr::instance()->GetSFTPPassword();
|
||||
QString SFTPServerAddress = CZTConfigMgr::instance()->GetSFTPServerAddress();
|
||||
QString SFTPRemoteDir = CZTConfigMgr::instance()->GetSFTPServerRemoteDir();
|
||||
mSFTPManager.InitFTPServerManager(EnableSFTPClient,SFTPLogin,SFTPPassword,SFTPServerAddress,SFTPRemoteDir,mZTStation->GetStationShortName());
|
||||
if(EnableSFTPClient == true)
|
||||
{
|
||||
connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),&mSFTPManager,SLOT(NewTrainFileSaved(QString,bool)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
#include "ModbusSEIMgr.h"
|
||||
#include "NetworkCfgMgr.h"
|
||||
#include "NetDriveMgr.h"
|
||||
#include "SFTPServerManager.h"
|
||||
|
||||
#include "TCPProtocol.h"
|
||||
|
||||
@@ -89,6 +90,7 @@ public:
|
||||
|
||||
CWelcomePage *mWelcomePagePtr;
|
||||
|
||||
|
||||
void ZTFunctionsOptionSelected();
|
||||
void ZTMaintenanceOptionSeleced();
|
||||
void OptionsMenuPageSelected();
|
||||
@@ -203,6 +205,7 @@ private:
|
||||
CModbusSEIMgr *mModbusSEIMgr;
|
||||
CNetworkCfgMgr mNetworkCfgMgr;
|
||||
CNetDriveMgr mNetworkDriveMgr;
|
||||
CSFTPServerManager mSFTPManager;
|
||||
|
||||
QLocalSocket mACPISocket;
|
||||
// CWatchdogCtrl mWatchdogCtrl;
|
||||
|
||||
Reference in New Issue
Block a user