3500/Configuration.cpp

1219 lines
56 KiB
C++
Raw Normal View History

2023-04-14 19:30:30 +08:00
#include "Configuration.h"
#include "ui_Configuration.h"
#include <QStyleFactory>
#include <QMenu>
#include <QInputDialog>
2023-10-19 14:15:31 +08:00
#include <QScrollArea>
2023-04-14 19:30:30 +08:00
CConfiguration::CConfiguration(QWidget *parent) :
QWidget(parent),
ui(new Ui::CConfiguration)
{
ui->setupUi(this);
m_isConfirm = -1;
ui->widget_2->setProperty("flag", "configure");
ui->widget->setProperty("flag", "Title");
ui->widget_5->setProperty("flag", "normal");
QRegExp exp("[0-9\\.-]+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit_2->setValidator(Validator);
Init();
2023-10-19 14:15:31 +08:00
QHeaderView *pHeader=ui->treeView_Available->header();
pHeader->setSectionResizeMode(QHeaderView::ResizeToContents);
pHeader->setStretchLastSection(false);
QHeaderView *pHeader2=ui->treeView_Relay->header();
pHeader2->setSectionResizeMode(QHeaderView::ResizeToContents);
pHeader2->setStretchLastSection(false);
2023-04-14 19:30:30 +08:00
2024-10-24 13:49:00 +08:00
ui->treeView_Available->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->treeView_Relay->setEditTriggers(QAbstractItemView::NoEditTriggers);
2023-10-19 14:15:31 +08:00
connect(ui->comboBox_WC,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WC_currentTextChanged2(const QString&)));
2024-04-24 14:41:13 +08:00
2023-04-14 19:30:30 +08:00
}
CConfiguration::~CConfiguration()
{
qDebug()<< "~CConfiguration" << endl;
// for(int i = 0;i < model_Available->rowCount() ;i++){
// model_Relay->removeRow(i);
// }
// for(int i = 0;i < model_Relay->rowCount() ;i++){
// model_Relay->removeRow(i);
// }
// delete model_Available;
// delete model_Relay;
// model_Relay = NULL;
// model_Available = NULL;
delete ui;
}
void CConfiguration::Init()
{
QString wherecon = "";
wherecon = QString("Enable = \"1\" ");
m_WorkCondition = g_SqliteDB->GetWorkCondition("t_WorkCondition",wherecon);
QStringList strWorkConditionList;
for (int i = 0; i < m_WorkCondition.size(); i++) {
strWorkConditionList << m_WorkCondition.at(i).WorkConditionName;
}
ui->treeView_Available->setContextMenuPolicy(Qt::CustomContextMenu);
ui->treeView_Available->setStyle(QStyleFactory::create("windows"));
model_Available = new QStandardItemModel(ui->treeView_Available); //创建模型指定父类
ui->treeView_Available->setModel(model_Available);
ui->treeView_Available->setHeaderHidden(true);
ui->treeView_Relay->setContextMenuPolicy(Qt::CustomContextMenu);
ui->treeView_Relay->setStyle(QStyleFactory::create("windows"));
model_Relay = new QStandardItemModel(ui->treeView_Relay); //创建模型指定父类
ui->treeView_Relay->setModel(model_Relay);
ui->treeView_Relay->setHeaderHidden(true);
QStandardItem* item1 = new QStandardItem("Operator");
QStandardItem* item2 = new QStandardItem("Operand");
model_Available->appendRow(item1);
model_Available->appendRow(item2);
QStandardItem *itemAnd = new QStandardItem(QString("logicAND(1)"));
2023-04-27 19:48:15 +08:00
itemAnd->setData(1,Qt::UserRole+1);
2023-04-14 19:30:30 +08:00
QStandardItem *itemOr = new QStandardItem(QString("logicOR"));
item1->appendRow(itemAnd);
item1->appendRow(itemOr);
2024-09-11 16:37:00 +08:00
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.json";
#endif
2023-04-14 19:30:30 +08:00
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;
}
ui->comboBox_WC->clear();
ui->comboBox_WC->addItems(strWorkConditionList);
QString strWC = ui->comboBox_WC->currentText();
2023-04-27 19:48:15 +08:00
qDebug() << strWC;
2023-04-14 19:30:30 +08:00
arrayTriggerConfig = document.array();
for (int i = 0; i < arrayTriggerConfig.size(); i++) {
if(strWC == arrayTriggerConfig.at(i)["workConditionName"].toString()){
QString strFirstDelaySeconds = arrayTriggerConfig.at(i)["FirstDelaySeconds"].toString();
QString strSecondDelaySeconds = arrayTriggerConfig.at(i)["SecondDelaySeconds"].toString();
QString strThirdDelaySeconds = arrayTriggerConfig.at(i)["ThirdDelaySeconds"].toString();
ui->lineEdit_2->setText(strSecondDelaySeconds);
QJsonArray TriggerSettings = arrayTriggerConfig.at(i)["triggerSettings"].toArray();
for (int j = 0; j < TriggerSettings.size(); j++){
QString channelName = TriggerSettings.at(j)["channelName"].toString();
QStandardItem *itemChannel = new QStandardItem(QString(channelName));
QJsonArray arrayConfig = TriggerSettings.at(j)["triggerConfig"].toArray();
if(arrayConfig.size() > 0){
item2->appendRow(itemChannel);
for (int k = 0; k < arrayConfig.size(); k++){
2024-04-24 14:41:13 +08:00
QStringList strList = arrayConfig.at(k)["triggerEventName"].toString().split('-');
QString strStaticData;
2023-04-14 19:30:30 +08:00
QStandardItem *item = NULL;
int xAlertOverEnabled = arrayConfig.at(k)["xAlertOverEnabled"].toInt();
int xAlertUnderEnabled = arrayConfig.at(k)["xAlertUnderEnabled"].toInt();
int xDangerOverEnabled = arrayConfig.at(k)["xDangerOverEnabled"].toInt();
int xDangerUnderEnabled = arrayConfig.at(k)["xDangerUnderEnabled"].toInt();
2024-04-24 14:41:13 +08:00
if(strList[0] == "MinValues")
strStaticData = "最小值";
else if(strList[0] == "MaxValues")
strStaticData = "最大值";
else if( strList[0] == "DCValues")
strStaticData = "平均值";
else if(strList[0] == "RMSValues")
strStaticData = "有效值";
else if(strList[0] == "DiagnosisPk2Pk")
strStaticData = "诊断峰峰值";
else if(strList[0] == "IntegratRMS")//积分
strStaticData = "积分有效值";
else if(strList[0] == "IntegratPk2Pk")
strStaticData = "积分峰峰值";
else if(strList[0] == "SpeedProfileSpeed")
strStaticData = "转速";
else if(strList[0] == "IntegratPk2Pk/2")//积分
strStaticData = "积分峰值";
else if(strList[0] == "DiagnosisPeak")
strStaticData = "峰值";
else if(strList[0] == "MonitorPk2Pk")
strStaticData = "监测保护峰峰值";
2024-07-04 15:23:26 +08:00
else if(strList[0] == "InvertDanger")
strStaticData = "反时限危险值";
else if(strList[0] == "InvertAlarm")
strStaticData = "反时限警报值";
2023-04-14 19:30:30 +08:00
if(xAlertOverEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"警报"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xAlertUnderEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-"+ "低于警报值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"警报"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xDangerOverEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于危险值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"危险"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xDangerUnderEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "低于危险值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"危险"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
2024-04-24 14:41:13 +08:00
itemChannel->setData(strStaticData);
2023-04-14 19:30:30 +08:00
}
}
}
break;
}
}
LoadConfiguration();
}
void CConfiguration::LoadConfiguration()
{
2024-09-11 16:37:00 +08:00
#ifdef Q_OS_WIN32
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString name = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
2023-04-14 19:30:30 +08:00
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;
}
QString strWC = ui->comboBox_WC->currentText();
QJsonObject TriggerConfigObj = document.object();
QJsonArray arrayConfig = TriggerConfigObj["WorkConditionConfiguraitons"].toArray();
for (int i = 0; i < arrayConfig.size(); i++) {
m_vecWorkConditionObj.append(arrayConfig[i].toObject());
}
2023-10-19 14:15:31 +08:00
2023-04-14 19:30:30 +08:00
}
void CConfiguration::slotDeleteItem()
{
int BoardNo,ChannelNoInBoard;
QString ChannelId,ChannelName,SN;
QString strTableName = " t_UnitConfiguration ";
QJsonObject jsonObj;
QJsonObject logicObj,ConfiguraitonsObj,ConfiguraitonsWCObj;
QJsonArray logicExpressArray,ConfiguraitonsArray;
2023-04-14 19:30:30 +08:00
QModelIndex curIndex = ui->treeView_Relay->currentIndex();
if(curIndex.isValid())
{
QStandardItem* item = model_Relay->itemFromIndex(curIndex);
QString nodeText = item->text();
qDebug() << nodeText <<endl;
QString strWC = ui->comboBox_WC->currentText();
for (int i = 0; i < m_WorkCondition.size(); i++) {
if(m_WorkCondition[i].WorkConditionName == ui->comboBox_WC->currentText()){
SN = m_WorkCondition[i].SN;
}
}
for (int i = 0; i < g_ChannelBaseInfo.size(); i++) {
if(g_ChannelBaseInfo[i].bordNo == 10 && g_ChannelBaseInfo[i].channelNoInBoard == m_curentRLY){
BoardNo = g_ChannelBaseInfo[i].bordNo;
ChannelId = g_ChannelBaseInfo[i].channelID;
ChannelName = g_ChannelBaseInfo[i].channelName;
ChannelNoInBoard = g_ChannelBaseInfo[i].channelNoInBoard;
}
}
if(nodeText.contains("logicOR") || nodeText.contains("logicAND")){
QString strSql = QString(" values('%1','%2',%3,%4,'',4)").arg(SN).arg(ChannelId).arg(BoardNo).arg(ChannelNoInBoard);
g_SqliteDB->InsertData(strTableName,strSql);
}else{
QStandardItem* parantitem = item->parent();
2024-07-04 15:23:26 +08:00
if(parantitem == NULL){
model_Relay->removeRow(curIndex.row(),curIndex.parent());
return;
}
QString paranNodeText = parantitem->text();
if(paranNodeText.contains("logicAND")){
if(nodeText.contains("警报")){
jsonObj["alarm"] = 1;
jsonObj["danger"] = 0;
}else if (nodeText.contains("危险")) {
jsonObj["danger"] = 1;
jsonObj["alarm"] = 0;
}
jsonObj["triggerFeatureName"] = nodeText;
jsonObj["nodeType"] = 1;
jsonObj["displayTitle"] = nodeText;
for (int k = 0;k < g_ChannelBaseInfo.size(); k++) {
if(g_ChannelBaseInfo[k].channelName == nodeText.split("-")[0]){
jsonObj["channelId"] = g_ChannelBaseInfo[k].channelID;
break;
}
}
jsonObj["channelOperate"] = 3;
QJsonDocument doc(jsonObj);
QString strJson(doc.toJson(QJsonDocument::Compact));
QString strSql = QString(" values('%1','%2','%3','%4','%5',3)").arg(SN).arg(ChannelId).arg(BoardNo).arg(ChannelNoInBoard).arg(strJson);
g_SqliteDB->InsertData(strTableName,strSql);
}
}
2023-04-14 19:30:30 +08:00
model_Relay->removeRow(curIndex.row(),curIndex.parent());
}
}
void CConfiguration::slotModifyItem()
{
QModelIndex curIndex = ui->treeView_Relay->currentIndex();
if(curIndex.isValid())
{
QStandardItem* item = model_Relay->itemFromIndex(curIndex);
if(item->rowCount() < 1){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("选择错误!"));
return;
}
bool ok;
// 获取整数
QString strTips =QString("请输入0到%1之间的数值").arg(item->rowCount());
int value1 = QInputDialog::getInt(this, tr("输入整数对话框"), strTips, item->rowCount(), 1, 10, 1, &ok);
if(!ok) return;
if(value1 > item->rowCount() || value1 < 1){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请输入正确的数字!"));
return ;
}
QString text = item->text().left(item->text().length()-3);
item->setData(value1,Qt::UserRole+1);
QString str = QString("(%1)").arg(value1);
item->setText(text + str);
}
}
void CConfiguration::on_treeView_Relay_customContextMenuRequested(const QPoint &pos)
{
qDebug() << "on_treeView_Relay_customContextMenuRequested" <<endl;
QModelIndex curIndex = ui->treeView_Relay->indexAt(pos); //当前点击的元素的index
QModelIndex index = curIndex.sibling(curIndex.row(),0); //该行的第1列元素的index
QMenu menu(this);
if (index.isValid())
{
//添加一行菜单,进行展开
menu.addAction(QStringLiteral("删除"), this, SLOT(slotDeleteItem()));
menu.addAction(QStringLiteral("选择满足要求的任意条件数量"), this, SLOT(slotModifyItem()));
menu.addSeparator(); //添加一个分隔线
//menu.addAction(QStringLiteral("增加"), this, SLOT(slotTreeMenuCollapse(bool)));
}
menu.exec(QCursor::pos()); //显示菜单
}
QJsonArray CConfiguration::GetItem(QStandardItem *item,int MinimumNumber)
{
QJsonArray arrayAll,arrayAll2;
QJsonObject jsonObj,inputObj,inputObj2,MinimumNumberObj;
2023-04-14 19:30:30 +08:00
QString strLogic;
if(item->hasChildren())
{
for(int i = 0;i < item->rowCount() ;i++)
{
QJsonArray array;
QStandardItem * childitem = item->child(i);
strLogic = childitem->text();
if(childitem->text().contains("logicOR") || childitem->text().contains("logicAND")){
QJsonArray inputArray,inputArray2;
2023-04-14 19:30:30 +08:00
if(childitem->hasChildren()){
for(int i = 0;i < childitem->rowCount() ;i++){
QStandardItem * childitem2 = childitem->child(i);
if(childitem2->text().contains("警报")){
jsonObj["alarm"] = 1;
jsonObj["danger"] = 0;
}else if (childitem2->text().contains("危险")) {
jsonObj["danger"] = 1;
jsonObj["alarm"] = 0;
}
jsonObj["triggerFeatureName"] = childitem2->text();
jsonObj["nodeType"] = 1;
jsonObj["displayTitle"] = childitem2->text();
for (int k = 0;k < g_ChannelBaseInfo.size(); k++) {
if(g_ChannelBaseInfo[k].channelName == childitem2->text().split("-")[0]){
jsonObj["channelId"] = g_ChannelBaseInfo[k].channelID;
break;
}
}
2023-04-14 19:30:30 +08:00
inputArray.append(jsonObj);
inputArray2.append(jsonObj);
2023-04-14 19:30:30 +08:00
}
2023-10-19 14:15:31 +08:00
}else{
QMessageBox::question(this, QStringLiteral("提示"), QStringLiteral("请选择正确的逻辑!"));
return arrayAll;
2023-04-14 19:30:30 +08:00
}
QString strTableName = " t_UnitConfiguration ";
QVector<UnitConfiguration_t> vecUnitConfiguration = g_SqliteDB->GetUnitConfigurationInfo(strTableName);
for (int i = 0; i < vecUnitConfiguration.size(); i++) {
if(vecUnitConfiguration[i].Operate == 3){
QJsonDocument document = QJsonDocument::fromJson(vecUnitConfiguration[i].Input.toUtf8());
QJsonObject jsonObj = document.object();
inputArray2.append(jsonObj);
}
}
inputObj2["Inputs"] = inputArray2;
2023-04-14 19:30:30 +08:00
inputObj["Inputs"] = inputArray;
MinimumNumber = childitem->data(Qt::UserRole + 1).toInt();
qDebug()<< "MinimumNumber" <<MinimumNumber<< endl;
MinimumNumberObj["MinimumNumber"] = MinimumNumber;
inputObj["Combination"] = MinimumNumberObj;
inputObj2["Combination"] = MinimumNumberObj;
2023-04-14 19:30:30 +08:00
arrayAll.append(inputObj);
arrayAll2.append(inputObj2);
2023-04-14 19:30:30 +08:00
}
}
}
QJsonObject jsonObjLogic,jsonObjLogic2;
2023-04-14 19:30:30 +08:00
qDebug() << "strLogic" << strLogic.left(strLogic.length()-3) << endl;
jsonObjLogic[strLogic.left(strLogic.length()-3)] = arrayAll;
jsonObjLogic2[strLogic.left(strLogic.length()-3)] = arrayAll2;
2023-04-14 19:30:30 +08:00
QJsonArray ret;
ret.append(jsonObjLogic);
m_deleteInputArray.append(jsonObjLogic2);
2024-11-15 11:44:54 +08:00
qDebug() << "m_array" << ret << endl;
2023-04-14 19:30:30 +08:00
return ret;
// QJsonArray arrayAll,inputArray;
// QJsonObject jsonObj,inputObj,MinimumNumberObj;
// if(item->hasChildren())
// {
// for(int i = 0;i < item->rowCount() ;i++)
// {
// QJsonArray array;
// QStandardItem * childitem = item->child(i);
// if(childitem->text().contains("logicOR") || childitem->text().contains("logicAND")){
// QJsonObject jsonObjLogic;
// MinimumNumber = childitem->data(Qt::UserRole + 1).toInt();
// jsonObjLogic[childitem->text().left(7)] = GetItem(childitem, MinimumNumber);
// m_array.append(jsonObjLogic);
// //qDebug() << "m_array"<<m_array << childitem->data(1) << endl;
// }else{
// if(childitem->text().contains("警报")){
// jsonObj["status"] = "alarm";
// }else if (childitem->text().contains("危险")) {
// jsonObj["status"] = "danger";
// }
// jsonObj["triggerFeatureName"] = childitem->text();
// jsonObj["nodeType"] = 1;
// jsonObj["displayTitle"] = childitem->text();
// jsonObj["channelId"] = childitem->text().split("-")[3];
// }
// if(!childitem->text().contains("logicOR") && !childitem->text().contains("logicAND")){
// inputArray.append(jsonObj);
// }
// if(!item->parent() && i + 1 == item->rowCount())
// {
// qDebug() << "No parent" << item->text()<< endl;
// return m_array;
// }else if(item->parent() && i + 1 == item->rowCount()){
// MinimumNumberObj["MinimumNumber"] = MinimumNumber;
// inputObj["Combination"] = MinimumNumberObj;
// inputObj["Inputs"] = inputArray;
// arrayAll.append(inputObj);
// return arrayAll;
// }
// }
// }
}
QJsonObject CConfiguration::SelectChannel(int channelNo)
{
QJsonObject ConfiguraitonsObj;
for (int i = 0; i < g_ChannelBaseInfo.size(); i++) {
if(g_ChannelBaseInfo[i].bordNo == 10 && g_ChannelBaseInfo[i].channelNoInBoard == channelNo){
ConfiguraitonsObj["BoardNo"] = g_ChannelBaseInfo[i].bordNo;
ConfiguraitonsObj["ChannelId"] = g_ChannelBaseInfo[i].channelID;
ConfiguraitonsObj["ChannelName"] = g_ChannelBaseInfo[i].channelName;
ConfiguraitonsObj["ChannelNoInBoard"] = g_ChannelBaseInfo[i].channelNoInBoard;
2024-07-04 15:23:26 +08:00
ConfiguraitonsObj["DelaySeconds"] = ui->lineEdit_delay->text();
ConfiguraitonsObj["ChannelOperate"] = -1;
2023-04-14 19:30:30 +08:00
}
}
return ConfiguraitonsObj;
}
2023-10-19 14:15:31 +08:00
void CConfiguration::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();
2024-04-24 14:41:13 +08:00
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
2023-10-19 14:15:31 +08:00
}
}
}
}
void CConfiguration::on_pushButton_save_clicked()
{
2024-11-15 11:44:54 +08:00
#ifdef QT_DEBUG
PushData();
#endif
2024-04-24 14:41:13 +08:00
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
2023-10-19 14:15:31 +08:00
g_NetMgr->DetectNet();
}
2023-04-27 19:48:15 +08:00
2023-04-14 19:30:30 +08:00
void CConfiguration::on_pushButton_confirm_clicked()
{
QJsonObject logicObj,logicObj2,ConfiguraitonsObj,ConfiguraitonsObj2,ConfiguraitonsWCObj,ConfiguraitonsWCObj2;
QJsonArray logicExpressArray,logicExpressArray2,ConfiguraitonsArray,ConfiguraitonsArray2;
2023-04-14 19:30:30 +08:00
int flag = -1;
if(ui->radioButton_1->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(3);
2023-04-14 19:30:30 +08:00
}else if(ui->radioButton_2->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(4);
}else if(ui->radioButton_3->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(5);
}else if(ui->radioButton_4->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(6);
}else if(ui->radioButton_5->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(7);
}else if(ui->radioButton_6->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(8);
}else if(ui->radioButton_7->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(9);
}else if(ui->radioButton_8->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(10);
}else if(ui->radioButton_9->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(11);
}else if(ui->radioButton_10->isChecked()){
flag = 1;
ConfiguraitonsObj = SelectChannel(12);
}
if(flag == -1){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请先选择继电器!"));
return;
}
m_isConfirm = 1;
2023-10-19 14:15:31 +08:00
if(model_Relay->rowCount() > 1){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请选择正确的组态逻辑"));
return;
}
2023-04-14 19:30:30 +08:00
for(int i = 0;i < model_Relay->rowCount() ;i++)
{
QStandardItem *item = model_Relay->item(i);
qDebug() <<"item = " << item->text();
2023-10-19 14:15:31 +08:00
QJsonArray arrayAll = GetItem(model_Relay->item(i));
if(arrayAll.size() < 1)
return;
logicObj[item->text().left(7)] = arrayAll;
logicObj2[item->text().left(7)] = m_deleteInputArray;
2023-04-14 19:30:30 +08:00
logicExpressArray.append(logicObj);
logicExpressArray2.append(logicObj2);
2023-04-14 19:30:30 +08:00
}
ConfiguraitonsObj2 = ConfiguraitonsObj;
2023-04-14 19:30:30 +08:00
ConfiguraitonsObj["logicExpress"] = logicExpressArray;
ConfiguraitonsObj2["logicExpress"] = logicExpressArray2;
QString strTableName = " t_UnitConfiguration ";
QVector<UnitConfiguration_t> vecUnitConfiguration = g_SqliteDB->GetUnitConfigurationInfo(strTableName);
for (int i = 0; i < vecUnitConfiguration.size(); i++) {
if(vecUnitConfiguration[i].Operate == 3){
ConfiguraitonsObj2["ChannelOperate"] = 3;
}else if(vecUnitConfiguration[i].Operate == 4){
ConfiguraitonsObj2["ChannelOperate"] = 4;
}
}
qDebug() << "m_deleteInputObj" << ConfiguraitonsArray2 << endl;
2023-04-14 19:30:30 +08:00
ConfiguraitonsArray.append(ConfiguraitonsObj);
ConfiguraitonsArray2.append(ConfiguraitonsObj2);
2023-04-14 19:30:30 +08:00
QJsonArray().swap(m_array);
QJsonArray().swap(m_arrayAll);
if(ui->lineEdit_2->text() == ""){
2023-04-14 19:30:30 +08:00
ConfiguraitonsWCObj["SecondDelaySeconds"] = "0";
ConfiguraitonsWCObj2["SecondDelaySeconds"] = "0";
}
else{
2023-04-14 19:30:30 +08:00
ConfiguraitonsWCObj["SecondDelaySeconds"] = ui->lineEdit_2->text();
ConfiguraitonsWCObj2["SecondDelaySeconds"] = ui->lineEdit_2->text();
}
2023-04-14 19:30:30 +08:00
QString strCurrentSN = "";
for (int i = 0; i < m_WorkCondition.size(); i++) {
if(m_WorkCondition[i].WorkConditionName == ui->comboBox_WC->currentText()){
ConfiguraitonsWCObj["SN"] = m_WorkCondition[i].SN;
strCurrentSN = m_WorkCondition[i].SN;
ConfiguraitonsWCObj["WorkConditionName"] = m_WorkCondition[i].WorkConditionName;
ConfiguraitonsWCObj2["SN"] = m_WorkCondition[i].SN;
ConfiguraitonsWCObj2["WorkConditionName"] = m_WorkCondition[i].WorkConditionName;
2023-04-14 19:30:30 +08:00
}
}
ConfiguraitonsWCObj["Configuraitons"] = ConfiguraitonsArray;
ConfiguraitonsWCObj2["Configuraitons"] = ConfiguraitonsArray2;
//防止点击重复应用
2023-04-14 19:30:30 +08:00
if(m_vecWorkConditionObj.size() > 0){
QVector<QJsonObject> vecWorkConditionObj = m_vecWorkConditionObj;
int flag = -1,flag2 = -1;
for (int i = 0; i < vecWorkConditionObj.size(); i++){
if(vecWorkConditionObj.at(i)["SN"].toString() == strCurrentSN){
flag = 1;
QJsonArray configuraitonsArray = vecWorkConditionObj.at(i)["Configuraitons"].toArray();
QJsonArray tempArray = configuraitonsArray;
for (int j = 0; j < configuraitonsArray.size(); j++) {
if(ConfiguraitonsObj["ChannelId"].toString() == configuraitonsArray.at(j)["ChannelId"].toString()){
flag2 = 1;
for (int ii = 0; ii < tempArray.size(); ii++) {
if(tempArray.at(ii)["ChannelId"].toString() == ConfiguraitonsObj["ChannelId"].toString()){
tempArray.removeAt(ii);
}
}
tempArray.append(ConfiguraitonsObj);
}
if(j + 1 == configuraitonsArray.size() && flag2 == -1){
tempArray.append(ConfiguraitonsObj);
}
}
ConfiguraitonsWCObj["Configuraitons"] = tempArray;
m_vecWorkConditionObj.removeAt(i);
m_vecWorkConditionObj.append(ConfiguraitonsWCObj);
}
if( i + 1 == vecWorkConditionObj.size() && flag == -1){
m_vecWorkConditionObj.append(ConfiguraitonsWCObj);
}
}
}else{
m_vecWorkConditionObj.append(ConfiguraitonsWCObj);
}
if(m_vecWorkConditionObj2.size() > 0){
QVector<QJsonObject> vecWorkConditionObj = m_vecWorkConditionObj2;
int flag = -1,flag2 = -1;
for (int i = 0; i < vecWorkConditionObj.size(); i++){
if(vecWorkConditionObj.at(i)["SN"].toString() == strCurrentSN){
flag = 1;
QJsonArray configuraitonsArray = vecWorkConditionObj.at(i)["Configuraitons"].toArray();
QJsonArray tempArray = configuraitonsArray;
for (int j = 0; j < configuraitonsArray.size(); j++) {
if(ConfiguraitonsObj2["ChannelId"].toString() == configuraitonsArray.at(j)["ChannelId"].toString()){
flag2 = 1;
for (int ii = 0; ii < tempArray.size(); ii++) {
if(tempArray.at(ii)["ChannelId"].toString() == ConfiguraitonsObj2["ChannelId"].toString()){
tempArray.removeAt(ii);
}
}
tempArray.append(ConfiguraitonsObj2);
}
if(j + 1 == configuraitonsArray.size() && flag2 == -1){
tempArray.append(ConfiguraitonsObj2);
}
}
ConfiguraitonsWCObj2["Configuraitons"] = tempArray;
m_vecWorkConditionObj2.removeAt(i);
m_vecWorkConditionObj2.append(ConfiguraitonsWCObj2);
}
if( i + 1 == vecWorkConditionObj.size() && flag == -1){
m_vecWorkConditionObj2.append(ConfiguraitonsWCObj2);
}
}
}else{
m_vecWorkConditionObj2.append(ConfiguraitonsWCObj2);
}
QJsonArray().swap(m_deleteInputArray);
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("应用成功!"));
2023-04-14 19:30:30 +08:00
}
2023-04-27 19:48:15 +08:00
void CConfiguration::on_comboBox_WC_currentTextChanged2(const QString &arg1)
2023-04-14 19:30:30 +08:00
{
2023-04-27 19:48:15 +08:00
qDebug() << "on_comboBox_WC_currentTextChanged" << endl;
2023-04-14 19:30:30 +08:00
for(int i = 0;i < model_Available->rowCount() ;i++){
QStandardItem *item = model_Available->item(i);
if(item->text() == "Operand"){
if(item->hasChildren()){
for(int ii = 0;ii < item->rowCount() ;ii++){
item->removeRow(ii);
}
}
model_Available->removeRow(i);
}
}
for(int i = 0;i < model_Available->rowCount() ;i++){
model_Relay->removeRow(i);
}
QStandardItem* item2 = new QStandardItem("Operand");
model_Available->appendRow(item2);
for (int i = 0; i < arrayTriggerConfig.size(); i++) {
if(arg1 == arrayTriggerConfig.at(i)["workConditionName"].toString()){
QJsonArray TriggerSettings = arrayTriggerConfig.at(i)["triggerSettings"].toArray();
for (int j = 0; j < TriggerSettings.size(); j++){
QString channelName = TriggerSettings.at(j)["channelName"].toString();
QStandardItem *itemChannel = new QStandardItem(QString(channelName));
itemChannel->setDragEnabled(false);
itemChannel->setDropEnabled(false);
2023-04-14 19:30:30 +08:00
QJsonArray arrayConfig = TriggerSettings.at(j)["triggerConfig"].toArray();
if(arrayConfig.size() > 0){
item2->appendRow(itemChannel);
for (int k = 0; k < arrayConfig.size(); k++){
2024-04-24 14:41:13 +08:00
QStringList strList = arrayConfig.at(k)["triggerEventName"].toString().split('-');
QString strStaticData;
2023-04-14 19:30:30 +08:00
QStandardItem *item = NULL;
int xAlertOverEnabled = arrayConfig.at(k)["xAlertOverEnabled"].toInt();
int xAlertUnderEnabled = arrayConfig.at(k)["xAlertUnderEnabled"].toInt();
int xDangerOverEnabled = arrayConfig.at(k)["xDangerOverEnabled"].toInt();
int xDangerUnderEnabled = arrayConfig.at(k)["xDangerUnderEnabled"].toInt();
2024-04-24 14:41:13 +08:00
if(strList[0] == "MinValues")
strStaticData = "最小值";
else if(strList[0] == "MaxValues")
strStaticData = "最大值";
else if( strList[0] == "DCValues")
strStaticData = "平均值";
else if(strList[0] == "RMSValues")
strStaticData = "有效值";
else if(strList[0] == "DiagnosisPk2Pk")
strStaticData = "诊断峰峰值";
else if(strList[0] == "IntegratRMS")//积分
strStaticData = "积分有效值";
else if(strList[0] == "IntegratPk2Pk")
strStaticData = "积分峰峰值";
else if(strList[0] == "SpeedProfileSpeed")
strStaticData = "转速";
else if(strList[0] == "IntegratPk2Pk/2")//积分
strStaticData = "积分峰值";
else if(strList[0] == "DiagnosisPeak")
strStaticData = "峰值";
else if(strList[0] == "MonitorPk2Pk")
strStaticData = "监测保护峰峰值";
2024-09-11 16:37:00 +08:00
else if(strList[0] == "InvertDanger")
strStaticData = "反时限危险值";
else if(strList[0] == "InvertAlarm")
strStaticData = "反时限警报值";
2023-04-14 19:30:30 +08:00
if(xAlertOverEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"警报"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xAlertUnderEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-"+ "低于警报值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"警报"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xDangerOverEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于危险值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"危险"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
if(xDangerUnderEnabled == 1){
2024-04-24 14:41:13 +08:00
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "低于危险值"));
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"危险"));
2023-04-14 19:30:30 +08:00
itemChannel->appendRow(item);
}
2024-04-24 14:41:13 +08:00
itemChannel->setData(strStaticData);
2023-04-14 19:30:30 +08:00
}
}
}
break;
}
}
}
2023-10-19 14:15:31 +08:00
void CConfiguration::PushData()
2023-04-14 19:30:30 +08:00
{
if(m_isConfirm == -1){
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请先点击\"应用\""));
return ;
}
m_isConfirm = -1;
QJsonArray WorkConditionConfiguraitonsArray2;
2023-04-14 19:30:30 +08:00
if(m_vecWorkConditionObj.size() > 0){
for (int i = 0; i < m_vecWorkConditionObj.size(); i++) {
m_WorkConditionConfiguraitonsArray.append(m_vecWorkConditionObj[i]);
}
for (int i = 0; i < m_vecWorkConditionObj2.size(); i++) {
WorkConditionConfiguraitonsArray2.append(m_vecWorkConditionObj2[i]);
}
2023-04-14 19:30:30 +08:00
}else{
m_WorkConditionConfiguraitonsArray.append(m_ConfiguraitonsWCObj);
}
QJsonObject WorkConditionConfiguraitonsObj,WorkConditionConfiguraitonsObj2;
2023-04-14 19:30:30 +08:00
WorkConditionConfiguraitonsObj["WorkConditionConfiguraitons"] = m_WorkConditionConfiguraitonsArray;
WorkConditionConfiguraitonsObj2["WorkConditionConfiguraitons"] = WorkConditionConfiguraitonsArray2;
2023-04-14 19:30:30 +08:00
QJsonDocument jsonDoc;
jsonDoc.setObject(WorkConditionConfiguraitonsObj);
2024-09-11 16:37:00 +08:00
#ifdef Q_OS_WIN32
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
#endif
#ifdef Q_OS_LINUX
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
#endif
2023-04-14 19:30:30 +08:00
QJsonDocument jsonDoc2;
jsonDoc2.setObject(WorkConditionConfiguraitonsObj2);
2024-09-11 16:37:00 +08:00
#ifdef Q_OS_WIN32
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
#endif
#ifdef Q_OS_LINUX
QString fileName2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
#endif
2023-04-14 19:30:30 +08:00
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(jsonDoc.toJson());
file.close();
QFile file2(fileName2);
file2.open(QIODevice::WriteOnly);
file2.write(jsonDoc2.toJson());
file2.close();
// QString strTableName = " t_UnitConfiguration ";
// QVector<UnitConfiguration_t> vecUnitConfiguration = g_SqliteDB->GetUnitConfigurationInfo(strTableName);
// for (int i = 0; i < m_WorkConditionConfiguraitonsArray.size(); i++) {
// for (int j = 0; j < vecUnitConfiguration.size(); j++) {
// QJsonObject WorkConditionConfiguraitonsObj = m_WorkConditionConfiguraitonsArray.at(i).toObject();
// if(WorkConditionConfiguraitonsObj["SN"].toString() == vecUnitConfiguration[j].WorkConditionID){
// QJsonArray ConfiguraitonsArray = WorkConditionConfiguraitonsObj["Configuraitons"].toArray();
// for (int k = 0; k < ConfiguraitonsArray.size(); k++) {
// QJsonObject ConfiguraitonsObj = ConfiguraitonsArray[k].toObject();
// if(ConfiguraitonsObj["ChannelId"].toString() == vecUnitConfiguration[j].ChannelID){
// if(vecUnitConfiguration[j].Operate == 3){
// QJsonArray UnitConfigurationArray = m_WorkConditionConfiguraitonsArray.at(i).toArray();
// ConfiguraitonsObj["ChannelOperate"] = 3;
// ConfiguraitonsArray[k] = ConfiguraitonsObj;
// WorkConditionConfiguraitonsObj["Configuraitons"] = ConfiguraitonsArray;
// m_WorkConditionConfiguraitonsArray.removeAt(i);
// m_WorkConditionConfiguraitonsArray.insert(i, WorkConditionConfiguraitonsObj);
// }else if(vecUnitConfiguration[j].Operate == 4){
// QJsonArray UnitConfigurationArray = m_WorkConditionConfiguraitonsArray.at(i).toArray();
// ConfiguraitonsObj["ChannelOperate"] = 4;
// ConfiguraitonsArray[k] = ConfiguraitonsObj;
// WorkConditionConfiguraitonsObj["Configuraitons"] = ConfiguraitonsArray;
// m_WorkConditionConfiguraitonsArray.removeAt(i);
// m_WorkConditionConfiguraitonsArray.insert(i, WorkConditionConfiguraitonsObj);
// }
// }
// }
// }
// }
// }
qDebug() << WorkConditionConfiguraitonsArray2 << endl;
qDebug() << m_WorkConditionConfiguraitonsArray << endl;
2023-04-14 19:30:30 +08:00
QJsonArray().swap(m_WorkConditionConfiguraitonsArray);
QJsonArray().swap(m_array);
QJsonArray().swap(m_ConfiguraitonsArray);
QJsonArray().swap(m_deleteInputArray);
QVector<QJsonObject>().swap(m_vecWorkConditionObj2);
QString tableName = " t_UnitConfiguration ";
g_SqliteDB->DeleteDataW(tableName,"");
2023-04-14 19:30:30 +08:00
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations.json");
g_FtpClient->SetServerInfo(str);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"UnitConfigurations.json");
QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("UnitConfigurations2.json");
g_FtpClient->SetServerInfo(str2);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName2,"UnitConfigurations2.json");
2023-04-14 19:30:30 +08:00
}
void CConfiguration::on_comboBox_WC_currentIndexChanged(const QString &arg1)
{
for (int i = 0; i < m_vecWorkConditionObj.size(); i++) {
QJsonObject tempObj = m_vecWorkConditionObj[i];
if(ui->comboBox_WC->currentText() == tempObj["WorkConditionName"].toString()){
QJsonArray tempArray = tempObj["Configuraitons"].toArray();
for (int j = 0;j < tempArray.size() ;j++ ) {
}
}
}
}
void CConfiguration::ViewRelay(int ChannelNoInBoard)
{
model_Relay->clear();
ui->lineEdit_2->setText("");
QString strWorkConditonName = ui->comboBox_WC->currentText();
for (int i = 0; i < m_vecWorkConditionObj.size(); i++) {
QJsonObject tempObj = m_vecWorkConditionObj[i];
if(strWorkConditonName == tempObj["WorkConditionName"].toString()){
QJsonArray tempArray = tempObj["Configuraitons"].toArray();
QString strSecondDelaySeconds = tempObj["SecondDelaySeconds"].toString();
ui->lineEdit_2->setText(strSecondDelaySeconds);
for (int j = 0;j < tempArray.size() ;j++ ) {
if(tempArray.at(j)["ChannelNoInBoard"] == ChannelNoInBoard){
2024-07-04 15:23:26 +08:00
ui->lineEdit_delay->setText(tempArray.at(j)["DelaySeconds"].toString());
2023-04-14 19:30:30 +08:00
QJsonArray tempArray2 = tempArray.at(j)["logicExpress"].toArray();
for (int k = 0; k < tempArray2.size(); k++) {
QJsonObject tempObj2 = tempArray2[k].toObject();
if (tempObj2.contains(QStringLiteral("logicAND"))){
QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicAND"));
QStandardItem *itemAnd = new QStandardItem(QString("logicAND"));
model_Relay->appendRow(itemAnd);
QJsonArray array = arrayValue.toArray();
for (int kk = 0; kk < array.size(); kk++) {
QJsonObject tempObj3 = array[kk].toObject();
if (tempObj3.contains(QStringLiteral("logicAND"))){
QJsonValue objValue = tempObj3.value(QStringLiteral("logicAND"));
QJsonObject Combination = objValue["Combination"].toObject();
int MinimumNumber = Combination["MinimumNumber"].toInt();
QStandardItem *itemAnd2 = new QStandardItem(QString("logicAND(%1)").arg(MinimumNumber));
itemAnd2->setData(MinimumNumber,Qt::UserRole+1);
itemAnd->appendRow(itemAnd2);
QJsonArray inputsArray = objValue["Inputs"].toArray();
for (int ii = 0; ii < inputsArray.size(); ii++) {
QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
itemAnd2->appendRow(item);
}
}
if (tempObj3.contains(QStringLiteral("logicOR"))){
QJsonValue objValue = tempObj3.value(QStringLiteral("logicOR"));
QJsonObject Combination = objValue["Combination"].toObject();
int MinimumNumber = Combination["MinimumNumber"].toInt();
QStandardItem *itemOr2 = new QStandardItem(QString("logicOR(%1)").arg(MinimumNumber));
itemOr2->setData(MinimumNumber,Qt::UserRole+1);
itemAnd->appendRow(itemOr2);
QJsonArray arrValue2 = objValue.toArray();
for(int jj = 0; jj < arrValue2.size();jj++){
QJsonArray inputsArray = arrValue2.at(jj)["Inputs"].toArray();
for (int ii = 0; ii < inputsArray.size(); ii++) {
QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
itemOr2->appendRow(item);
}
}
}
}
}
if (tempObj2.contains(QStringLiteral("logicOR"))){
QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicOR"));
QStandardItem *itemOr = new QStandardItem(QString("logicOR"));
model_Relay->appendRow(itemOr);
QJsonArray array = arrayValue.toArray();
for (int kk = 0; kk < array.size(); kk++) {
QJsonObject tempObj3 = array[k].toObject();
if (tempObj3.contains(QStringLiteral("logicAND"))){
QJsonValue objValue = tempObj3.value(QStringLiteral("logicAND"));
QJsonArray array2 = objValue.toArray();
for (int jj = 0; jj < array2.size(); jj++) {
QJsonObject tempObj4 = array2[jj].toObject();
QJsonObject Combination = tempObj4["Combination"].toObject();
int MinimumNumber = Combination["MinimumNumber"].toInt();
QStandardItem *itemAnd2 = new QStandardItem(QString("logicAND(%1)").arg(MinimumNumber));
QJsonArray inputsArray = tempObj4["Inputs"].toArray();
for (int ii = 0; ii < inputsArray.size(); ii++) {
QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
itemAnd2->appendRow(item);
}
itemAnd2->setData(MinimumNumber,Qt::UserRole+1);
itemOr->appendRow(itemAnd2);
}
}
if (tempObj3.contains(QStringLiteral("logicOR"))){
QJsonValue objValue = tempObj3.value(QStringLiteral("logicOR"));
QJsonObject Combination = objValue["Combination"].toObject();
int MinimumNumber = Combination["MinimumNumber"].toInt();
QStandardItem *itemOr2 = new QStandardItem(QString("logicOR(%1)").arg(MinimumNumber));
itemOr2->setData(MinimumNumber,Qt::UserRole+1);
itemOr->appendRow(itemOr2);
QJsonArray arrValue2 = objValue.toArray();
for(int jj = 0; jj < arrValue2.size();jj++){
QJsonArray inputsArray = arrValue2.at(jj)["Inputs"].toArray();
for (int ii = 0; ii < inputsArray.size(); ii++) {
QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
itemOr2->appendRow(item);
}
}
}
}
}
}
}
}
}
}
// for(int i = 0;i < model_Available->rowCount() ;i++){
// model_Relay->removeRow(i);
// }
// QString strWorkConditonName = ui->comboBox_WC->currentText();
// for (int i = 0; i < m_vecWorkConditionObj.size(); i++) {
// QJsonObject tempObj = m_vecWorkConditionObj[i];
// if(strWorkConditonName == tempObj["WorkConditionName"].toString()){
// QJsonArray tempArray = tempObj["Configuraitons"].toArray();
// for (int j = 0;j < tempArray.size() ;j++ ) {
// if(tempArray.at(j)["ChannelNoInBoard"] == ChannelNoInBoard){
// QJsonArray tempArray2 = tempArray.at(j)["logicExpress"].toArray();
// for (int k = 0; k < tempArray2.size(); k++) {
// QJsonObject tempObj2 = tempArray2[k].toObject();
// if (tempObj2.contains(QStringLiteral("logicAND"))){
// QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicAND"));
// QStandardItem *itemAnd = new QStandardItem(QString("logicAND"));
// model_Relay->appendRow(itemAnd);
// QJsonArray array = arrayValue.toArray();
// for (int kk = 0; kk < array.size(); kk++) {
// QJsonObject tempObj3 = array[kk].toObject();
// if (tempObj3.contains(QStringLiteral("logicAND"))){
// QJsonValue objValue = tempObj3.value(QStringLiteral("logicAND"));
// QJsonObject Combination = objValue["Combination"].toObject();
// int MinimumNumber = Combination["MinimumNumber"].toInt();
// QStandardItem *itemAnd2 = new QStandardItem(QString("logicAND(%1)").arg(MinimumNumber));
// itemAnd2->setData(MinimumNumber,Qt::UserRole+1);
// itemAnd->appendRow(itemAnd2);
// QJsonArray inputsArray = objValue["Inputs"].toArray();
// for (int ii = 0; ii < inputsArray.size(); ii++) {
// QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
// itemAnd2->appendRow(item);
// }
// }
// if (tempObj3.contains(QStringLiteral("logicOR"))){
// QJsonValue objValue = tempObj3.value(QStringLiteral("logicOR"));
// QJsonObject Combination = objValue["Combination"].toObject();
// int MinimumNumber = Combination["MinimumNumber"].toInt();
// QStandardItem *itemOr2 = new QStandardItem(QString("logicOR(%1)").arg(MinimumNumber));
// itemOr2->setData(MinimumNumber,Qt::UserRole+1);
// itemAnd->appendRow(itemOr2);
// QJsonArray arrValue2 = objValue.toArray();
// for(int jj = 0; jj < arrValue2.size();jj++){
// QJsonArray inputsArray = arrValue2.at(jj)["Inputs"].toArray();
// for (int ii = 0; ii < inputsArray.size(); ii++) {
// QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
// itemOr2->appendRow(item);
// }
// }
// }
// }
// }
// if (tempObj2.contains(QStringLiteral("logicOR"))){
// QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicOR"));
// QStandardItem *itemOr = new QStandardItem(QString("logicOR"));
// model_Relay->appendRow(itemOr);
// QJsonArray array = arrayValue.toArray();
// for (int kk = 0; kk < array.size(); kk++) {
// QJsonObject tempObj3 = array[k].toObject();
// if (tempObj3.contains(QStringLiteral("logicAND"))){
// QJsonValue objValue = tempObj3.value(QStringLiteral("logicAND"));
// QJsonObject Combination = objValue["Combination"].toObject();
// int MinimumNumber = Combination["MinimumNumber"].toInt();
// QStandardItem *itemAnd2 = new QStandardItem(QString("logicAND(%1)").arg(MinimumNumber));
// itemAnd2->setData(MinimumNumber,Qt::UserRole+1);
// itemOr->appendRow(itemAnd2);
// QJsonArray inputsArray = objValue["Inputs"].toArray();
// for (int ii = 0; ii < inputsArray.size(); ii++) {
// QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
// itemAnd2->appendRow(item);
// }
// }
// if (tempObj3.contains(QStringLiteral("logicOR"))){
// QJsonValue objValue = tempObj3.value(QStringLiteral("logicOR"));
// QJsonObject Combination = objValue["Combination"].toObject();
// int MinimumNumber = Combination["MinimumNumber"].toInt();
// QStandardItem *itemOr2 = new QStandardItem(QString("logicOR(%1)").arg(MinimumNumber));
// itemOr2->setData(MinimumNumber,Qt::UserRole+1);
// itemOr->appendRow(itemOr2);
// QJsonArray arrValue2 = objValue.toArray();
// for(int jj = 0; jj < arrValue2.size();jj++){
// QJsonArray inputsArray = arrValue2.at(jj)["Inputs"].toArray();
// for (int ii = 0; ii < inputsArray.size(); ii++) {
// QStandardItem *item = new QStandardItem(QString(inputsArray.at(ii)["displayTitle"].toString()));
// itemOr2->appendRow(item);
// }
// }
// }
// }
// }
// }
// }
// }
// }
// }
}
void CConfiguration::on_radioButton_1_clicked()
{
m_curentRLY = 3;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_1->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(3);
}
void CConfiguration::on_radioButton_2_clicked()
{
m_curentRLY = 4;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_2->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(4);
}
void CConfiguration::on_radioButton_3_clicked()
{
m_curentRLY = 5;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_3->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(5);
}
void CConfiguration::on_radioButton_4_clicked()
{
m_curentRLY = 6;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_4->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(6);
}
void CConfiguration::on_radioButton_5_clicked()
{
m_curentRLY = 7;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_5->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(7);
}
void CConfiguration::on_radioButton_6_clicked()
{
m_curentRLY = 8;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_6->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(8);
}
void CConfiguration::on_radioButton_8_clicked()
{
m_curentRLY = 10;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_8->text()+"");
2023-04-27 19:48:15 +08:00
ViewRelay(10);
2023-04-14 19:30:30 +08:00
}
void CConfiguration::on_radioButton_7_clicked()
{
m_curentRLY = 9;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_7->text()+"");
2023-04-27 19:48:15 +08:00
ViewRelay(9);
2023-04-14 19:30:30 +08:00
}
void CConfiguration::on_radioButton_9_clicked()
{
m_curentRLY = 11;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_9->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(11);
}
void CConfiguration::on_radioButton_10_clicked()
{
m_curentRLY = 12;
2024-07-04 15:23:26 +08:00
ui->label_3->setText(ui->radioButton_10->text()+"");
2023-04-14 19:30:30 +08:00
ViewRelay(12);
}
void CConfiguration::on_treeView_Available_pressed(const QModelIndex &index)
{
}