Configuration des paramètres réseau

+ Options de configuration de l'adresse IP du réseau exploitation.
+ Option d'activation du réseau Modbus CC
This commit is contained in:
jfmartel
2017-11-27 14:49:55 -05:00
parent 1282e37311
commit 5cac0fc8f3
19 changed files with 628 additions and 79 deletions
+1 -1
View File
@@ -108,7 +108,7 @@ void CModbusCCMgr::NewModbusConnection()
connect(mModbusTCPSocketHandle,SIGNAL(readyRead()),this,SLOT(ModbusDataReady()));
connect(mModbusTCPSocketHandle,SIGNAL(disconnected()),this,SLOT(ConnectionLost()));
//qDebug("ModbusCC: Connection with CC established");
CZTLog::instance()->AddLogString(QString("Connection Modbus avec la CC établie. IP[%1]").arg(mModbusTCPSocketHandle->peerAddress().toString()),true);
CZTLog::instance()->AddLogString(QString("Connection Modbus avec la CC établie. IP locale [%1] - IP HPC [%2]").arg(mModbusTCPSocketHandle->localAddress().toString()).arg(mModbusTCPSocketHandle->peerAddress().toString()),true);
mZTWatchdogTimer->start();
mCCWatchdogTimer->start(MODBUS_CC_WATCHDOG_TIMEOUT*2); //Allow twice the time for the first watchdog reset.
mCCLinkState = true;
+80
View File
@@ -0,0 +1,80 @@
#include "NetworkCfgMgr.h"
#include <QFile>
#include <QTextStream>
#include "ZTLog.h"
CNetworkCfgMgr::CNetworkCfgMgr()
{
}
int CNetworkCfgMgr::SetTRCPNetworkAddress(QHostAddress Address)
{
if(QFile::exists("./interfaces") == false)
{
CZTLog::instance()->AddLogString("ERREUR: Le fichier template de configuration réseau est inexistant",true);
return RET_ERROR;
}
//Open the template file
QFile *TemplateFile = new QFile("./interfaces");
if(TemplateFile)
{
if(TemplateFile->open(QIODevice::ReadOnly | QIODevice::Unbuffered | QIODevice::Text) == false)
{
CZTLog::instance()->AddLogString("ERREUR: impossible d'ouvrir le fichier template de configuration réseau",true);
delete TemplateFile;
return RET_ERROR;
}
}
else
{
CZTLog::instance()->AddLogString("ERREUR: impossible d'ouvrir le fichier template de configuration réseau",true);
return RET_ERROR;
}
//Create a temporary file
QFile *TempInterfaceFile = new QFile("./interfaces_tmp");
if(TempInterfaceFile)
{
if(TempInterfaceFile->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text | QIODevice::Unbuffered) == false)
{
CZTLog::instance()->AddLogString("ERREUR: impossible de créer le fichier temporaire de configuration réseau",true);
delete TempInterfaceFile;
return RET_ERROR;
}
}
else
{
CZTLog::instance()->AddLogString("ERREUR: impossible de créer le fichier temporaire de configuration réseau",true);
return RET_ERROR;
}
QString ConfigText(TemplateFile->readAll());
QString WorkString;
QHostAddress Gateway(Address.toIPv4Address() & 0xFFFFFF01);
WorkString = ConfigText.replace("[TELETRANS_IP]",Address.toString());
ConfigText = WorkString.replace("[TELETRANS_GATEWAY]",Gateway.toString());
if(TempInterfaceFile->write(ConfigText.toAscii()) < 0)
{
CZTLog::instance()->AddLogString("ERREUR: impossible de créer le fichier temporaire de configuration réseau",true);
}
TemplateFile->close();
delete TemplateFile;
TempInterfaceFile->close();
delete TempInterfaceFile;
system("cp -f ./interfaces_tmp /etc/network/interfaces");
return RET_OK;
}
+14
View File
@@ -0,0 +1,14 @@
#ifndef NETWORKCFGMGR_H
#define NETWORKCFGMGR_H
#include <QHostAddress>
class CNetworkCfgMgr
{
public:
CNetworkCfgMgr();
int SetTRCPNetworkAddress(QHostAddress Address);
};
#endif // NETWORKCFGMGR_H