3500/FileServerConfig.cpp

384 lines
14 KiB
C++

#include "FileServerConfig.h"
#include "ui_FileServerConfig.h"
#include "NetMgr.h"
CFileServerConfig::CFileServerConfig(QWidget *parent) :
QWidget(parent),
ui(new Ui::CFileServerConfig)
{
ui->setupUi(this);
ui->lineEdit_hostIP->setText(IP);
ui->label_MAC->setText(MAC);
ui->widget_3->setProperty("flag", "Title");
ui->widget->setProperty("flag", "normal");
Init();
QString exp = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.)"
"{3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b";
QRegExp rege(exp);
QValidator *Validator = new QRegExpValidator(rege);
ui->lineEdit_IP_PS->setValidator(Validator);
ui->lineEdit_GateWay_PS->setValidator(Validator);
ui->lineEdit_DNS_PS->setValidator(Validator);
ui->lineEdit_Mask_PS->setValidator(Validator);
ui->lineEdit_hostIP->setValidator(Validator);
ui->lineEdit_IP_PL->setValidator(Validator);
ui->lineEdit_GateWay_PL->setValidator(Validator);
ui->lineEdit_DNS_PL->setValidator(Validator);
ui->lineEdit_Mask_PL->setValidator(Validator);
ui->lineEdit_ServerIP->setValidator(Validator);
ui->lineEdit_TCP_IP->setValidator(Validator);
ui->lineEdit_TCP_IP_2->setValidator(Validator);
ui->lineEdit_TCP_IP_3->setValidator(Validator);
}
CFileServerConfig::~CFileServerConfig()
{
delete ui;
}
void CFileServerConfig::Init()
{
ui->comboBox_NetStatus_PS->addItem("STATIC");
ui->comboBox_NetStatus_PS->addItem("DHCP");
ui->comboBox_NetStatus_PL->addItem("STATIC");
ui->comboBox_NetStatus_PL->addItem("DHCP");
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/NetWorkConfig.json";
#endif
if(!fileName.isEmpty())
{
qDebug() << "打开" << fileName ;
QFile file(fileName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString value = file.readAll();
file.close();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(value.toUtf8(), &parseJsonErr);
if (!(parseJsonErr.error == QJsonParseError::NoError)) {
QMessageBox::about(NULL, "提示", "读取文件错误!");
return;
}
QJsonObject jsonObject = document.object();
if(jsonObject.contains(QStringLiteral("PS"))) {
QJsonObject plObject = jsonObject.value(QStringLiteral("PS")).toObject();
QJsonObject OptionObject = plObject["option"].toObject();
ui->lineEdit_IP_PS->setText(OptionObject["ipAddress"].toString());
ui->lineEdit_HostName_PS->setText(OptionObject["hostName"].toString());
ui->lineEdit_GateWay_PS->setText(OptionObject["gateway"].toString());
ui->lineEdit_DNS_PS->setText(OptionObject["dnsName"].toString());
ui->lineEdit_Mask_PS->setText(OptionObject["subnetMask"].toString());
ui->comboBox_NetStatus_PS->setCurrentText(OptionObject["networkPortStatus"].toString());
}
if(jsonObject.contains(QStringLiteral("PL"))) {
QJsonObject plObject = jsonObject.value(QStringLiteral("PL")).toObject();
QJsonObject OptionObject = plObject["option"].toObject();
ui->lineEdit_IP_PL->setText(OptionObject["ipAddress"].toString());
ui->lineEdit_HostName_PL->setText(OptionObject["hostName"].toString());
ui->lineEdit_GateWay_PL->setText(OptionObject["gateway"].toString());
ui->lineEdit_DNS_PL->setText(OptionObject["dnsName"].toString());
ui->lineEdit_Mask_PL->setText(OptionObject["subnetMask"].toString());
ui->comboBox_NetStatus_PL->setCurrentText(OptionObject["networkPortStatus"].toString());
}
}
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
if(!fileName.isEmpty())
{
qDebug() << "打开" << fileName ;
QFile file(fileName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString value = file.readAll();
file.close();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(value.toUtf8(), &parseJsonErr);
if (!(parseJsonErr.error == QJsonParseError::NoError)) {
QMessageBox::about(NULL, "提示", "读取文件错误!");
return;
}
m_ServerObject = document.object();
if(m_ServerObject.contains(QStringLiteral("Server"))){
QJsonObject tempObject = m_ServerObject.value(QStringLiteral("Server")).toObject();
QJsonObject OptionObject = tempObject["option"].toObject();
ui->lineEdit_ServerIP->setText(OptionObject["localServerIpAddress"].toString());
ui->lineEdit_ServerPort->setText(OptionObject["localServerPort"].toString());
ui->lineEdit_writingPeriod->setText(OptionObject["writingPeriodLocalServer"].toString());
}
}
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/TcpConfig.json";
#endif
if(!fileName.isEmpty())
{
QFile file(fileName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString value = file.readAll();
file.close();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(value.toUtf8(), &parseJsonErr);
if (!(parseJsonErr.error == QJsonParseError::NoError)) {
QMessageBox::about(NULL, "提示", "读取文件错误!");
return;
}
QJsonObject jsonObject = document.object();
QJsonArray arrayIP = jsonObject["ip"].toArray();
ui->lineEdit_TCP_IP->setText(arrayIP[0].toString());
ui->lineEdit_TCP_IP_2->setText(arrayIP[1].toString());
ui->lineEdit_TCP_IP_3->setText(arrayIP[2].toString());
QString strPort = QString("%1").arg(jsonObject["port"].toInt());
ui->lineEdit_TCP_PORT->setText(strPort);
}
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ModbusConfig.json";
#endif
if(!fileName.isEmpty())
{
QFile file(fileName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString value = file.readAll();
file.close();
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(value.toUtf8(), &parseJsonErr);
if (!(parseJsonErr.error == QJsonParseError::NoError)) {
QMessageBox::about(NULL, "提示", "读取文件错误!");
}
QJsonObject jsonObject = document.object();
ui->comboBox_485->addItem("PL");
ui->comboBox_485->addItem("PS");
ui->comboBox_485->setCurrentText(jsonObject["rs485_port"].toString());
QStringList strbaudrate;
strbaudrate << "9600" << "38400" << "115200" ;
ui->comboBox_baudrate->addItems(strbaudrate);
QString str = QString("%1").arg(jsonObject["baudrate"].toInt());
ui->comboBox_baudrate->setCurrentText(str);
QString strServerID = QString("%1").arg(jsonObject["serverid"].toInt());
ui->lineEdit_serverID->setText(strServerID);
}
}
void CFileServerConfig::on_pushButtonPush_clicked()
{
QJsonObject netWorkObj,plObj,psObj;
psObj["ipAddress"] = ui->lineEdit_IP_PS->text();
psObj["hostName"] = ui->lineEdit_HostName_PS->text();
psObj["gateway"] = ui->lineEdit_GateWay_PS->text();
psObj["dnsName"] = ui->lineEdit_DNS_PS->text();
psObj["subnetMask"] = ui->lineEdit_Mask_PS->text();
psObj["networkPortStatus"] = ui->comboBox_NetStatus_PS->currentText();
QJsonObject optionPSObj;
optionPSObj["option"] = psObj;
plObj["ipAddress"] = ui->lineEdit_IP_PL->text();
plObj["hostName"] = ui->lineEdit_HostName_PL->text();
plObj["gateway"] = ui->lineEdit_GateWay_PL->text();
plObj["dnsName"] = ui->lineEdit_DNS_PL->text();
plObj["subnetMask"] = ui->lineEdit_Mask_PL->text();
plObj["networkPortStatus"] = ui->comboBox_NetStatus_PL->currentText();
QJsonObject optionPLObj;
optionPLObj["option"] = plObj;
netWorkObj.insert("PS",optionPSObj);
netWorkObj.insert("PL",optionPLObj);
QJsonDocument jsonDoc;
jsonDoc.setObject(netWorkObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\NetWorkConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/NetWorkConfig.json";
#endif
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson());
file.close();
QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("NetWorkConfig.json");
g_FtpClient->SetServerInfo(str2);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"NetWorkConfig.json");
QJsonObject tempObj,OptionObj;
OptionObj["localServerIpAddress"] = ui->lineEdit_ServerIP->text();
OptionObj["localServerPort"] = ui->lineEdit_ServerPort->text();
OptionObj["writingPeriodLocalServer"] = ui->lineEdit_ServerPort->text();
OptionObj["username"] = ui->lineEdit_UserName->text();
OptionObj["passwd"] = ui->lineEdit_Passwd->text();
tempObj["option"] = OptionObj;
m_ServerObject["Server"] = tempObj;
QJsonDocument jsonDoc2;
jsonDoc2.setObject(m_ServerObject);
#ifdef Q_OS_WIN32
fileName = QCoreApplication::applicationDirPath() + "\\config\\ServerConfig.json";
#endif
#ifdef Q_OS_LINUX
fileName = QCoreApplication::applicationDirPath() + "/config/ServerConfig.json";
#endif
QFile file2(fileName);
file2.open(QIODevice::WriteOnly);
file2.write(jsonDoc.toJson());
file2.close();
QString str3 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("ServerConfig.json");
g_FtpClient->SetServerInfo(str3);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"ServerConfig.json");
}
void CFileServerConfig::slotNetMgr(QString sAddr, const QVariant &msg)
{
QJsonObject objec = msg.value<QJsonObject>();
bool Status = objec.take("success").toBool();
QString strMessage = objec.take("message").toString();
if(Status){
//QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!"));
}else{
QMessageBox::information(this, QStringLiteral("提示"), strMessage);
return;
}
if(objec.contains("cmd"))
{
QJsonValue arrays_value = objec.take("cmd");
qDebug()<<"cmd ="<<arrays_value.toString();
if(arrays_value.toString() == "20"){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("获取成功!"));
QJsonObject contentObj = objec["content"].toObject();
QJsonObject sysObj = contentObj["SystemInfo"].toObject();
ui->label_MAC->setText(sysObj["dataWatchNo"].toString());
QString strTableName = " t_DeviceInfo ";
MAC = sysObj["dataWatchNo"].toString();
QString strUpdateCol = QString(" MAC = '%1' ").arg(sysObj["dataWatchNo"].toString());
QString strWhereSql = QString(" IP = '%1' ;").arg(ui->lineEdit_hostIP->text());
g_SqliteDB->UpdataDataCol(strTableName,strUpdateCol,strWhereSql);
}
}
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
}
void CFileServerConfig::on_pushButton_get_clicked()
{
QString strTableName = "t_DeviceInfo";
QString strUpdateSql = QString(" set IP = '%1' ;").arg(ui->lineEdit_hostIP->text());
g_SqliteDB->UpdateDataSql(strTableName,strUpdateSql);
QString col = "IP";
QString str = g_SqliteDB->GetSingelLine(strTableName,col);
QStringList strList = str.split(",");
IP = strList[0];
qDebug() << "IP" << IP << endl;
QJsonObject allObj,cmdBody;
QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
allObj.insert("cmd", "20");
cmdBody.insert("type","GET");
allObj["cmdBody"] = cmdBody;
req.setUrl(sUrl);
//绑定HTTP消息响应
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
g_NetMgr->PostJson(req,allObj);
}
void CFileServerConfig::on_pushButtonConfirm_clicked()
{
QJsonObject TcpConfigObj;
QJsonArray arrayIP;
arrayIP.append(ui->lineEdit_TCP_IP->text());
arrayIP.append(ui->lineEdit_TCP_IP_2->text());
arrayIP.append(ui->lineEdit_TCP_IP_3->text());
TcpConfigObj["ip"] = arrayIP;
TcpConfigObj["port"] = ui->lineEdit_TCP_PORT->text().toInt();
QJsonDocument jsonDoc;
jsonDoc.setObject(TcpConfigObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\TcpConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/TcpConfig.json";
#endif
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson());
file.close();
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TcpConfig.json");
g_FtpClient->SetServerInfo(str);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"TcpConfig.json");
}
void CFileServerConfig::on_pushButtonConfirm2_clicked()
{
QJsonObject RTUConfigObj;
RTUConfigObj["rs485_port"] = ui->comboBox_485->currentText();
RTUConfigObj["baudrate"] = ui->comboBox_baudrate->currentText().toInt();
RTUConfigObj["serverid"] = ui->lineEdit_serverID->text().toInt();
QJsonDocument jsonDoc;
jsonDoc.setObject(RTUConfigObj);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\ModbusConfig.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/ModbusConfig.json";
#endif
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson());
file.close();
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("ModbusConfig.json");
g_FtpClient->SetServerInfo(str);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"ModbusConfig.json");
}