342 lines
14 KiB
C++
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);
|
|
}
|
|
}
|
|
|