3500/UnitSetting.cpp

342 lines
14 KiB
C++

#include "UnitSetting.h"
#include "ui_UnitSetting.h"
#include "global.h"
#include <QListView>
#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()
{
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitParameters.json";
#endif
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<QJsonObject>();
if(objec.contains("cmd"))
{
QJsonValue arrays_value = objec.take("cmd");
//qDebug()<<"cmd ="<<arrays_value.toString();
if(arrays_value.toString() == "110"){
bool Status = objec.take("success").toBool();
if(Status){
PushData();
}
}
}
}
void CUnitSetting::on_Btn_Confirm_clicked()
{
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
g_NetMgr->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.remove("Unit");
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);
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitParameters.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitParameters.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("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);
}
}