#include "UnitSetting.h" #include "ui_UnitSetting.h" #include "global.h" #include #include "ftpclient.h" CUnitSetting::CUnitSetting(QWidget *parent) : QWidget(parent), ui(new Ui::CUnitSetting) { ui->setupUi(this); initReadConfig(); ui->UnitStyle->setView(new QListView()); ui->widget_2->setProperty("flag", "Title"); ui->widget_3->setProperty("flag", "normal"); } CUnitSetting::~CUnitSetting() { delete ui; } void CUnitSetting::initReadConfig() { QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json"; QFile loadFile(name); if(!loadFile.open(QIODevice::ReadOnly)) { qDebug() << "could't open projects json"; return; } QString value = loadFile.readAll(); loadFile.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("PlantName"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("PlantName")); QString strContent = jsonValue["content"].toString(); ui->PlantName->setText(strContent); }if (jsonObject.contains(QStringLiteral("UnitName"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("UnitName")); QString strContent = jsonValue["content"].toString(); ui->UnitName->setText(strContent); }if (jsonObject.contains(QStringLiteral("UnitID"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("UnitID")); QString strContent = jsonValue["content"].toString(); ui->UnitID->setText(strContent); }if (jsonObject.contains(QStringLiteral("BladesNumber"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("BladesNumber")); QString strContent = jsonValue["content"].toString(); ui->BladesNumber->setText(strContent); }if (jsonObject.contains(QStringLiteral("DesignHead"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("DesignHead")); QString strContent = jsonValue["content"].toString(); ui->DesignHead->setText(strContent); }if (jsonObject.contains(QStringLiteral("FlowCoefficient"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("FlowCoefficient")); QString strContent = jsonValue["content"].toString(); ui->FlowCoefficient->setText(strContent); }if (jsonObject.contains(QStringLiteral("GeneratorManufacturer"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("GeneratorManufacturer")); QString strContent = jsonValue["content"].toString(); ui->GeneratorManufacturer->setText(strContent); }if (jsonObject.contains(QStringLiteral("GuideVanesNumber"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("GuideVanesNumber")); QString strContent = jsonValue["content"].toString(); ui->GuideVanesNumber->setText(strContent); }if (jsonObject.contains(QStringLiteral("LowerGuideVaneWattage"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("LowerGuideVaneWattage")); QString strContent = jsonValue["content"].toString(); ui->LowerGuideVaneWattage->setText(strContent); }if (jsonObject.contains(QStringLiteral("MaximumHead"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("MaximumHead")); QString strContent = jsonValue["content"].toString(); ui->MaximumHead->setText(strContent); }if (jsonObject.contains(QStringLiteral("MinimumHead"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("MinimumHead")); QString strContent = jsonValue["content"].toString(); ui->MinimumHead->setText(strContent); }if (jsonObject.contains(QStringLiteral("RatedExcitationCurrent"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("RatedExcitationCurrent")); QString strContent = jsonValue["content"].toString(); ui->RatedExcitationCurrent->setText(strContent); }if (jsonObject.contains(QStringLiteral("RatedPower"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("RatedPower")); QString strContent = jsonValue["content"].toString(); ui->RatedPower->setText(strContent); }if (jsonObject.contains(QStringLiteral("RatedSpeed"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("RatedSpeed")); QString strContent = jsonValue["content"].toString(); ui->RatedSpeed->setText(strContent); }if (jsonObject.contains(QStringLiteral("ThrustWattage"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("ThrustWattage")); QString strContent = jsonValue["content"].toString(); ui->ThrustWattage->setText(strContent); }if (jsonObject.contains(QStringLiteral("UpperGuideVaneWattage"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("UpperGuideVaneWattage")); QString strContent = jsonValue["content"].toString(); ui->UpperGuideVaneWattage->setText(strContent); }if (jsonObject.contains(QStringLiteral("WaterGuideVaneWattage"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("WaterGuideVaneWattage")); QString strContent = jsonValue["content"].toString(); ui->WaterGuideVaneWattage->setText(strContent); }if (jsonObject.contains(QStringLiteral("TurbineManufacturer"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("TurbineManufacturer")); QString strContent = jsonValue["content"].toString(); ui->TurbineManufacturer->setText(strContent); }if (jsonObject.contains(QStringLiteral("PlantID"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("PlantID")); QString strContent = jsonValue["content"].toString(); ui->PlantID->setText(strContent); }if (jsonObject.contains(QStringLiteral("PlantName"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("PlantName")); QString strContent = jsonValue["content"].toString(); ui->PlantName->setText(strContent); }if (jsonObject.contains(QStringLiteral("PoleNum"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("PoleNum")); QString strContent = jsonValue["content"].toString(); ui->poleNum->setText(strContent); } if (jsonObject.contains(QStringLiteral("UnitStyle"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("UnitStyle")); QString strContent = jsonValue["content"].toString(); QJsonArray arrayValue = jsonValue["Options"].toArray(); ui->UnitStyle->addItem(strContent); QStringList strItems; for (int i = 0; i < arrayValue.size() ; i++) { strItems << arrayValue[i].toString(); } foreach(QString strItem,strItems){ if(strContent == strItem){ strItems.removeOne(strItem); } } ui->UnitStyle->addItems(strItems); }if (jsonObject.contains(QStringLiteral("PressurePulsationDisplayunit"))) { QJsonValue jsonValue = jsonObject.value(QStringLiteral("PressurePulsationDisplayunit")); QString strContent = jsonValue["content"].toString(); QJsonArray arrayValue = jsonValue["Options"].toArray(); ui->PressurePulsationDisplayunit->addItem(strContent); QStringList strItems; for (int i = 0; i < arrayValue.size() ; i++) { strItems << arrayValue[i].toString(); } foreach(QString strItem,strItems){ if(strContent == strItem){ strItems.removeOne(strItem); } } ui->PressurePulsationDisplayunit->addItems(strItems); } } void CUnitSetting::slotNetMgr(QString sAddr, const QVariant &msg) { QJsonObject objec = msg.value(); if(objec.contains("cmd")) { QJsonValue arrays_value = objec.take("cmd"); //qDebug()<<"cmd ="<DetectNet(); } void CUnitSetting::PushData() { QJsonObject paramsObj,tempObj; tempObj.insert("content",ui->PlantName->text()); paramsObj.insert("PlantName",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->UnitName->text()); paramsObj.insert("UnitName",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->UnitID->text()); paramsObj.insert("UnitID",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->BladesNumber->text()); paramsObj.insert("BladesNumber",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->DesignHead->text()); tempObj.insert("Unit","m"); paramsObj.insert("DesignHead",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->FlowCoefficient->text()); paramsObj.insert("FlowCoefficient",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->GeneratorManufacturer->text()); paramsObj.insert("GeneratorManufacturer",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->GuideVanesNumber->text()); paramsObj.insert("GuideVanesNumber",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->LowerGuideVaneWattage->text()); paramsObj.insert("LowerGuideVaneWattage",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->MaximumHead->text()); tempObj.insert("Unit","m"); paramsObj.insert("MaximumHead",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->MinimumHead->text()); tempObj.insert("Unit","m"); paramsObj.insert("MinimumHead",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->RatedExcitationCurrent->text()); tempObj.insert("Unit","A"); paramsObj.insert("RatedExcitationCurrent",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->RatedPower->text()); tempObj.insert("Unit","MW"); paramsObj.insert("RatedPower",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->RatedSpeed->text()); tempObj.insert("Unit","rpm"); paramsObj.insert("RatedSpeed",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->ThrustWattage->text()); paramsObj.insert("ThrustWattage",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->UpperGuideVaneWattage->text()); paramsObj.insert("UpperGuideVaneWattage",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->WaterGuideVaneWattage->text()); paramsObj.insert("WaterGuideVaneWattage",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->TurbineManufacturer->text()); paramsObj.insert("TurbineManufacturer",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->PlantID->text()); paramsObj.insert("PlantID",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->PlantName->text()); paramsObj.insert("PlantName",tempObj); //tempObj.remove("content"); tempObj.insert("content",ui->poleNum->text()); paramsObj.insert("PoleNum",tempObj); tempObj.insert("content",ui->UnitStyle->currentText()); QJsonArray array; array.append("混流式机组"); array.append("轴流定桨式机组"); array.append("轴流转浆式机组"); array.append("可逆式机组"); array.append("灯泡式机组"); array.append("冲击式机组"); array.append("贯流式机组"); tempObj["Options"] = array; paramsObj.insert("UnitStyle",tempObj); tempObj.remove("content"); tempObj.insert("content",ui->PressurePulsationDisplayunit->currentText()); QJsonArray array2; array2.append("Kpa"); array2.append("%"); tempObj["Options"] = array2; paramsObj.insert("PressurePulsationDisplayunit",tempObj); tempObj.remove("content"); qDebug() << paramsObj << endl; QJsonDocument jsonDoc; jsonDoc.setObject(paramsObj); QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json"; QFile file(fileName); file.open(QIODevice::WriteOnly); file.write(jsonDoc.toJson()); file.close(); QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitParameters.json"); g_FtpClient->SetServerInfo(str); g_FtpClient->SetUserInfo("root","@#cidw!@123456"); g_FtpClient->UpLoadFile(fileName,"UnitParameters.json"); disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&))); } void CUnitSetting::on_UnitStyle_currentTextChanged(const QString &arg1) { if(arg1 == "贯流式机组"){ ui->UpperGuideVaneWattage->setEnabled(false); ui->LowerGuideVaneWattage->setEnabled(false); ui->WaterGuideVaneWattage->setEnabled(false); ui->ThrustWattage->setEnabled(false); }else{ ui->UpperGuideVaneWattage->setEnabled(true); ui->LowerGuideVaneWattage->setEnabled(true); ui->WaterGuideVaneWattage->setEnabled(true); ui->ThrustWattage->setEnabled(true); } }