#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(); 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 ="<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"); }