Début dev SFTP suite
This commit is contained in:
parent
f6bb9f3d9a
commit
f35cb3cfee
@ -95,7 +95,7 @@ STATION=COTE_VERTU
|
||||
#----------------------------------
|
||||
#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=OUI
|
||||
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
|
||||
@ -105,11 +105,19 @@ 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
|
||||
|
||||
#Path du dossier cible sur le réseau
|
||||
#NETWORK_SHARE_PATH=//192.168.50.110/TestZT
|
||||
#Login pour accéder au drive
|
||||
#NETWORK_SHARE_LOGIN=JF
|
||||
#Mot de passe pour accéder au drive
|
||||
#NETWORK_SHARE_PASSWORD=signal77240
|
||||
#Nom de domaine du drive réseau
|
||||
#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=127.0.0.1
|
||||
#Répertoire de destination sur le serveur (doit finir par un "/")
|
||||
SFTP_DESTINATION=/Transfert$/vers_corpo/CT/
|
||||
|
||||
|
||||
|
||||
|
||||
12
ZT.pro
12
ZT.pro
@ -121,7 +121,8 @@ SOURCES += \
|
||||
sources/Modbus/ModbusSEIMgr.cpp \
|
||||
sources/GuiElements/SEISettingsPage.cpp \
|
||||
sources/GuiElements/ModbusDisplayPage.cpp \
|
||||
sources/NetDriveMgr.cpp
|
||||
sources/NetDriveMgr.cpp \
|
||||
sources/SFTPServerManager.cpp
|
||||
|
||||
HEADERS += \
|
||||
sources/MainPanel.h \
|
||||
@ -243,7 +244,9 @@ HEADERS += \
|
||||
sources/Modbus/ModbusSEIDefs.h \
|
||||
sources/GuiElements/SEISettingsPage.h \
|
||||
sources/GuiElements/ModbusDisplayPage.h \
|
||||
sources/NetDriveMgr.h
|
||||
sources/NetDriveMgr.h \
|
||||
sources/SFTPServerManager.h
|
||||
|
||||
|
||||
#QMAKE_LIBDIR += ./ExtLib
|
||||
#QT += network
|
||||
@ -300,7 +303,7 @@ OTHER_FILES += \
|
||||
FwdPort.sh \
|
||||
SetPortCap.sh \
|
||||
interfaces \
|
||||
UpdateZT.sh
|
||||
UpdateZT.sh \
|
||||
|
||||
INCLUDEPATH += $$PWD/ \
|
||||
$$PWD/SeaMaxLinux/ \
|
||||
@ -312,4 +315,5 @@ INCLUDEPATH += $$PWD/ \
|
||||
$$PWD/sources/SerialPort \
|
||||
$$PWD/sources/Simulator \
|
||||
$$PWD/sources/QCustomPlot \
|
||||
$$PWD/sources/Modbus
|
||||
$$PWD/sources/Modbus \
|
||||
|
||||
|
||||
@ -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
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user