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
|
#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)
|
#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
|
#Path du dossier cible sur le réseau
|
||||||
NETWORK_SHARE_PATH=//10.133.3.136/Transfert$/vers_corpo/CT
|
NETWORK_SHARE_PATH=//10.133.3.136/Transfert$/vers_corpo/CT
|
||||||
#Login pour accéder au drive
|
#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é
|
#Nom de domaine du drive réseau. Commenter si aucun nom de domaine ne doit être spécifié
|
||||||
NETWORK_SHARE_DOMAIN=metro
|
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
|
#Paramètres du serveur SFTP pour la copie des fichiers logs
|
||||||
#NETWORK_SHARE_LOGIN=JF
|
#Activation de la copie des fichiers sur le réseau (OUI ou NON)
|
||||||
#Mot de passe pour accéder au drive
|
ACTIVER_SFTP=OUI
|
||||||
#NETWORK_SHARE_PASSWORD=signal77240
|
#Login pour accéder au serveur SFTP
|
||||||
#Nom de domaine du drive réseau
|
SFTP_LOGIN=service.ct
|
||||||
#NETWORK_SHARE_DOMAIN=METRO
|
#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/Modbus/ModbusSEIMgr.cpp \
|
||||||
sources/GuiElements/SEISettingsPage.cpp \
|
sources/GuiElements/SEISettingsPage.cpp \
|
||||||
sources/GuiElements/ModbusDisplayPage.cpp \
|
sources/GuiElements/ModbusDisplayPage.cpp \
|
||||||
sources/NetDriveMgr.cpp
|
sources/NetDriveMgr.cpp \
|
||||||
|
sources/SFTPServerManager.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
sources/MainPanel.h \
|
sources/MainPanel.h \
|
||||||
@ -243,7 +244,9 @@ HEADERS += \
|
|||||||
sources/Modbus/ModbusSEIDefs.h \
|
sources/Modbus/ModbusSEIDefs.h \
|
||||||
sources/GuiElements/SEISettingsPage.h \
|
sources/GuiElements/SEISettingsPage.h \
|
||||||
sources/GuiElements/ModbusDisplayPage.h \
|
sources/GuiElements/ModbusDisplayPage.h \
|
||||||
sources/NetDriveMgr.h
|
sources/NetDriveMgr.h \
|
||||||
|
sources/SFTPServerManager.h
|
||||||
|
|
||||||
|
|
||||||
#QMAKE_LIBDIR += ./ExtLib
|
#QMAKE_LIBDIR += ./ExtLib
|
||||||
#QT += network
|
#QT += network
|
||||||
@ -300,7 +303,7 @@ OTHER_FILES += \
|
|||||||
FwdPort.sh \
|
FwdPort.sh \
|
||||||
SetPortCap.sh \
|
SetPortCap.sh \
|
||||||
interfaces \
|
interfaces \
|
||||||
UpdateZT.sh
|
UpdateZT.sh \
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/ \
|
INCLUDEPATH += $$PWD/ \
|
||||||
$$PWD/SeaMaxLinux/ \
|
$$PWD/SeaMaxLinux/ \
|
||||||
@ -312,4 +315,5 @@ INCLUDEPATH += $$PWD/ \
|
|||||||
$$PWD/sources/SerialPort \
|
$$PWD/sources/SerialPort \
|
||||||
$$PWD/sources/Simulator \
|
$$PWD/sources/Simulator \
|
||||||
$$PWD/sources/QCustomPlot \
|
$$PWD/sources/QCustomPlot \
|
||||||
$$PWD/sources/Modbus
|
$$PWD/sources/Modbus \
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,70 @@
|
|||||||
#include "SFTPServerManager.h"
|
#include "SFTPServerManager.h"
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
|
||||||
CSFTPServerManager::CSFTPServerManager()
|
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
|
#ifndef SFTPSERVERMANAGER_H
|
||||||
#define SFTPSERVERMANAGER_H
|
#define SFTPSERVERMANAGER_H
|
||||||
|
|
||||||
class CSFTPServerManager
|
#include <QObject>
|
||||||
|
|
||||||
|
#define USE_SCP
|
||||||
|
|
||||||
|
class CSFTPServerManager : public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
CSFTPServerManager();
|
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
|
#endif // SFTPSERVERMANAGER_H
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -296,6 +296,40 @@ ZTConfigResult CZTConfigMgr::LoadZTConfig()
|
|||||||
mSAMBADomain = string.mid(pos);
|
mSAMBADomain = string.mid(pos);
|
||||||
CEngLog::instance()->AddLogString(QString("Domaine SAMBA: %1").arg(mSAMBADomain),1);
|
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;
|
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 GetSAMBALogin();
|
||||||
QString GetSAMBAPassword();
|
QString GetSAMBAPassword();
|
||||||
QString GetSAMBADomain();
|
QString GetSAMBADomain();
|
||||||
|
bool GetSFTPActivated();
|
||||||
|
QString GetSFTPLogin();
|
||||||
|
QString GetSFTPPassword();
|
||||||
|
QString GetSFTPServerAddress();
|
||||||
|
QString GetSFTPServerRemoteDir();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -134,6 +139,13 @@ private:
|
|||||||
QString mSAMBALogin;
|
QString mSAMBALogin;
|
||||||
QString mSAMBAPassword;
|
QString mSAMBAPassword;
|
||||||
QString mSAMBADomain;
|
QString mSAMBADomain;
|
||||||
|
|
||||||
|
// SFTP server parameters
|
||||||
|
bool mActivateSFTPClient;
|
||||||
|
QString mSFTPLogin;
|
||||||
|
QString mSFTPPassword;
|
||||||
|
QString mSFTPAddress;
|
||||||
|
QString mSFTPRemoteDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ZTCONFIGMGR_H
|
#endif // ZTCONFIGMGR_H
|
||||||
|
|||||||
@ -62,6 +62,8 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_NETWORKING
|
#ifdef USE_NETWORKING
|
||||||
#include "NetworkManager.h"
|
#include "NetworkManager.h"
|
||||||
#endif
|
#endif
|
||||||
@ -290,7 +292,7 @@ unsigned int CZoneTest::Start()
|
|||||||
mZTStateMachine->mZTDetectionConfig = mZTSettings->mDetectionFunctionSettings;
|
mZTStateMachine->mZTDetectionConfig = mZTSettings->mDetectionFunctionSettings;
|
||||||
connect(mZTStateMachine,SIGNAL(NewTrainLogSaved(QString,bool)),panel.mLogsListPage,SLOT(NewTrainLogFileSaved(QString,bool)));
|
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;
|
CZTLog::instance()->mProgramHandle = this;
|
||||||
|
|
||||||
@ -648,7 +650,21 @@ unsigned int CZoneTest::InitZT()
|
|||||||
QString SAMBAPassword = CZTConfigMgr::instance()->GetSAMBAPassword();
|
QString SAMBAPassword = CZTConfigMgr::instance()->GetSAMBAPassword();
|
||||||
QString SAMBADomain = CZTConfigMgr::instance()->GetSAMBADomain();
|
QString SAMBADomain = CZTConfigMgr::instance()->GetSAMBADomain();
|
||||||
mNetworkDriveMgr.InitNetDriveMgr(UseNetworkDrive,SAMBAMountPoint,SAMBALogin,SAMBAPassword,SAMBADomain,mZTStation->GetStationShortName());
|
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 "ModbusSEIMgr.h"
|
||||||
#include "NetworkCfgMgr.h"
|
#include "NetworkCfgMgr.h"
|
||||||
#include "NetDriveMgr.h"
|
#include "NetDriveMgr.h"
|
||||||
|
#include "SFTPServerManager.h"
|
||||||
|
|
||||||
#include "TCPProtocol.h"
|
#include "TCPProtocol.h"
|
||||||
|
|
||||||
@ -89,6 +90,7 @@ public:
|
|||||||
|
|
||||||
CWelcomePage *mWelcomePagePtr;
|
CWelcomePage *mWelcomePagePtr;
|
||||||
|
|
||||||
|
|
||||||
void ZTFunctionsOptionSelected();
|
void ZTFunctionsOptionSelected();
|
||||||
void ZTMaintenanceOptionSeleced();
|
void ZTMaintenanceOptionSeleced();
|
||||||
void OptionsMenuPageSelected();
|
void OptionsMenuPageSelected();
|
||||||
@ -203,6 +205,7 @@ private:
|
|||||||
CModbusSEIMgr *mModbusSEIMgr;
|
CModbusSEIMgr *mModbusSEIMgr;
|
||||||
CNetworkCfgMgr mNetworkCfgMgr;
|
CNetworkCfgMgr mNetworkCfgMgr;
|
||||||
CNetDriveMgr mNetworkDriveMgr;
|
CNetDriveMgr mNetworkDriveMgr;
|
||||||
|
CSFTPServerManager mSFTPManager;
|
||||||
|
|
||||||
QLocalSocket mACPISocket;
|
QLocalSocket mACPISocket;
|
||||||
// CWatchdogCtrl mWatchdogCtrl;
|
// CWatchdogCtrl mWatchdogCtrl;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user