1453 lines
66 KiB
C++
1453 lines
66 KiB
C++
#include "Configuration.h"
|
||
#include "ui_Configuration.h"
|
||
#include <QStyleFactory>
|
||
#include <QMenu>
|
||
#include <QInputDialog>
|
||
#include <QScrollArea>
|
||
|
||
|
||
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();
|
||
|
||
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);
|
||
|
||
|
||
ui->treeView_Available->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||
ui->treeView_Relay->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||
connect(ui->comboBox_WC,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WC_currentTextChanged2(const QString&)));
|
||
|
||
ui->label_4->setVisible(0);
|
||
ui->lineEdit_2->setVisible(0);
|
||
ui->label_10->setVisible(0);
|
||
}
|
||
|
||
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)"));
|
||
itemAnd->setData(1,Qt::UserRole+1);
|
||
QStandardItem *itemOr = new QStandardItem(QString("logicOR"));
|
||
item1->appendRow(itemAnd);
|
||
item1->appendRow(itemOr);
|
||
|
||
#ifdef Q_OS_WIN32
|
||
QString name = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings.json";
|
||
#endif
|
||
#ifdef Q_OS_LINUX
|
||
QString name = QCoreApplication::applicationDirPath() + "/config/TriggerSettings.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;
|
||
}
|
||
ui->comboBox_WC->clear();
|
||
ui->comboBox_WC->addItems(strWorkConditionList);
|
||
QString strWC = ui->comboBox_WC->currentText();
|
||
qDebug() << strWC;
|
||
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++){
|
||
QStringList strList = arrayConfig.at(k)["triggerEventName"].toString().split('-');
|
||
QString strStaticData;
|
||
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();
|
||
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 = "监测保护峰峰值";
|
||
else if(strList[0] == "InvertDanger")
|
||
strStaticData = "反时限危险值";
|
||
else if(strList[0] == "InvertAlarm")
|
||
strStaticData = "反时限警报值";
|
||
if(xAlertOverEnabled == 1){
|
||
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"警报"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xAlertUnderEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-"+ "低于警报值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"警报"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xDangerOverEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于危险值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"危险"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xDangerUnderEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "低于危险值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"危险"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
itemChannel->setData(strStaticData);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
LoadConfiguration();
|
||
|
||
}
|
||
|
||
void CConfiguration::LoadConfiguration()
|
||
{
|
||
#ifdef Q_OS_WIN32
|
||
QString name = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
|
||
#endif
|
||
#ifdef Q_OS_LINUX
|
||
QString name = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.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;
|
||
}
|
||
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());
|
||
}
|
||
|
||
}
|
||
|
||
void CConfiguration::slotDeleteItem()
|
||
{
|
||
int BoardNo,ChannelNoInBoard;
|
||
QString ChannelId,ChannelName,SN;
|
||
QString strTableName = " t_UnitConfiguration ";
|
||
QJsonObject jsonObj;
|
||
QJsonObject logicObj,ConfiguraitonsObj,ConfiguraitonsWCObj;
|
||
QJsonArray logicExpressArray,ConfiguraitonsArray;
|
||
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();
|
||
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);
|
||
}
|
||
}
|
||
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()); //显示菜单
|
||
}
|
||
|
||
// 递归遍历 QTreeView 的节点,构建 JSON 结构
|
||
QJsonObject CConfiguration::createJsonFromTreeNode(QStandardItem *item) {
|
||
QJsonObject nodeObject,inputNodeObj;
|
||
QJsonArray inputNodeArray;
|
||
|
||
// 根据节点的类型判断是 logicOR、logicAND 还是叶子节点
|
||
QString nodeType = item->text();
|
||
if (nodeType.contains("logicOR") || nodeType.contains("logicAND")){
|
||
QJsonArray childrenArray;
|
||
|
||
// 遍历子节点
|
||
for (int i = 0; i < item->rowCount(); ++i) {
|
||
QStandardItem *childItem = item->child(i);
|
||
childrenArray.append(createJsonFromTreeNode(childItem));
|
||
}
|
||
// 添加 Combination 节点
|
||
QJsonObject combination;
|
||
int MinimumNumber = item->data(Qt::UserRole + 1).toInt();
|
||
if(nodeType.contains("logicOR"))
|
||
combination["MinimumNumber"] = 1;
|
||
else if(nodeType.contains("logicAND"))
|
||
combination["MinimumNumber"] = MinimumNumber;
|
||
inputNodeObj["Combination"] = combination;
|
||
// 将子节点数组存储在当前逻辑运算符节点下
|
||
inputNodeObj["Inputs"] = childrenArray;
|
||
inputNodeArray.append(inputNodeObj);
|
||
if(nodeType.contains("logicOR"))
|
||
nodeObject[nodeType] = inputNodeArray;
|
||
else if(nodeType.contains("logicAND"))
|
||
nodeObject[nodeType.left(nodeType.length()-3)] = inputNodeArray;
|
||
|
||
} else {
|
||
if(item->text().contains("警报")){
|
||
nodeObject["alarm"] = 1;
|
||
nodeObject["danger"] = 0;
|
||
}else if (item->text().contains("危险")) {
|
||
nodeObject["danger"] = 1;
|
||
nodeObject["alarm"] = 0;
|
||
}
|
||
nodeObject["triggerFeatureName"] = item->text();
|
||
nodeObject["nodeType"] = 1;
|
||
nodeObject["displayTitle"] = item->text();
|
||
for (int k = 0;k < g_ChannelBaseInfo.size(); k++) {
|
||
if(g_ChannelBaseInfo[k].channelName == item->text().split("-")[0]){
|
||
nodeObject["channelId"] = g_ChannelBaseInfo[k].channelID;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
return nodeObject;
|
||
}
|
||
// 将生成的 JSON 保存到文件
|
||
void CConfiguration::saveJsonToFile(const QJsonObject &jsonObject, const QString &filePath) {
|
||
QJsonDocument jsonDoc(jsonObject);
|
||
QFile file(filePath);
|
||
if (file.open(QIODevice::WriteOnly)) {
|
||
file.write(jsonDoc.toJson(QJsonDocument::Indented));
|
||
file.close();
|
||
qDebug() << "JSON 文件已生成:" << filePath;
|
||
} else {
|
||
qDebug() << "无法打开文件以保存 JSON 数据";
|
||
}
|
||
}
|
||
// 从 QTreeView 中生成 JSON 数据
|
||
QJsonObject CConfiguration::generateJsonFromTreeView(QTreeView *treeView) {
|
||
QStandardItemModel *model = qobject_cast<QStandardItemModel *>(treeView->model());
|
||
if (!model) return QJsonObject();
|
||
|
||
QJsonArray rootArray;
|
||
|
||
// 遍历模型的每个根节点
|
||
for (int i = 0; i < model->rowCount(); ++i) {
|
||
QStandardItem *rootItem = model->item(i);
|
||
rootArray.append(createJsonFromTreeNode(rootItem));
|
||
}
|
||
|
||
QJsonObject root;
|
||
root["logicTree"] = rootArray; // 顶层使用 "logicTree" 作为键
|
||
return root;
|
||
}
|
||
QJsonArray CConfiguration::GetItem(QStandardItem *item,int MinimumNumber)
|
||
{
|
||
QJsonArray arrjsonObjLogic,arrjsonObjLogic2;
|
||
QString strLogic;
|
||
QJsonArray ret;
|
||
QJsonArray arrItem;
|
||
QJsonObject logicObj,logicInputs;
|
||
QJsonArray tmplogic ;
|
||
if(item->hasChildren())
|
||
{
|
||
for(int i = 0;i < item->rowCount() ;i++)
|
||
{
|
||
QJsonObject inputObj,logic_inputObj,inputObj2,jsonObj,MinimumNumberObj;
|
||
QJsonObject jsonObjLogic,jsonObjLogic2;
|
||
QJsonArray array,arrayAll,logic_arrayAll,arrayAll2;
|
||
QJsonArray inputArray,inputArray2;
|
||
QStandardItem * childitem = item->child(i);
|
||
strLogic = item->text();
|
||
if(childitem->text().contains("logicOR") || childitem->text().contains("logicAND")){
|
||
if(childitem->hasChildren()){
|
||
arrItem = GetItem(childitem, MinimumNumber);
|
||
qDebug() << "m_array0" << arrItem << endl;
|
||
}else{
|
||
QMessageBox::question(this, QStringLiteral("提示"), QStringLiteral("请选择正确的逻辑!"));
|
||
return arrayAll;
|
||
}
|
||
}else{
|
||
for(int i = 0;i < item->rowCount() ;i++){
|
||
QStandardItem * childitem2 = item->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;
|
||
}
|
||
}
|
||
inputArray.append(jsonObj);
|
||
inputArray2.append(jsonObj);
|
||
}
|
||
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;
|
||
inputObj["Inputs"] = inputArray;
|
||
|
||
MinimumNumber = childitem->data(Qt::UserRole + 1).toInt();
|
||
qDebug()<< "MinimumNumber" <<MinimumNumber<< endl;
|
||
MinimumNumberObj["MinimumNumber"] = MinimumNumber;
|
||
inputObj["Combination"] = MinimumNumberObj;
|
||
inputObj2["Combination"] = MinimumNumberObj;
|
||
arrayAll.append(inputObj);
|
||
arrayAll2.append(inputObj2);
|
||
qDebug() << "arrayAll==========" << arrayAll << endl;
|
||
qDebug() << "strLogic" << strLogic.left(strLogic.length()-3) << endl;
|
||
jsonObjLogic[strLogic.left(strLogic.length()-3)] = arrayAll;
|
||
jsonObjLogic2[strLogic.left(strLogic.length()-3)] = arrayAll2;
|
||
arrjsonObjLogic.append(jsonObjLogic);
|
||
arrjsonObjLogic2.append(jsonObjLogic2);
|
||
}
|
||
if((childitem->text().contains("logicOR") || childitem->text().contains("logicAND")) && item->parent()){
|
||
logicObj[strLogic] = arrItem;
|
||
qDebug() << "logicObj123" << logicObj << endl;
|
||
tmplogic.append(logicObj);
|
||
qDebug() << "tmplogic123" << tmplogic << endl;
|
||
}
|
||
if(!item->parent() && i + 1 == item->rowCount())
|
||
{
|
||
qDebug() << "No parent" << item->text() << endl;
|
||
qDebug() << "m_array1" << arrItem << endl;
|
||
return arrItem;
|
||
}else if(item->parent() && i + 1 == item->rowCount()){
|
||
qDebug() << "parent" << item->text() << endl;
|
||
MinimumNumberObj["MinimumNumber"] = 1;
|
||
logic_inputObj["Combination"] = MinimumNumberObj;
|
||
if(childitem->text().contains("logicOR") || childitem->text().contains("logicAND")){
|
||
logic_inputObj["Inputs"] = tmplogic;
|
||
}else{
|
||
logic_inputObj["Inputs"] = arrjsonObjLogic;
|
||
}
|
||
logic_arrayAll.append(logic_inputObj);
|
||
qDebug() << "arrayAll111" << logic_arrayAll << endl;
|
||
return logic_arrayAll;
|
||
}
|
||
|
||
}
|
||
}
|
||
m_deleteInputArray.append(arrjsonObjLogic2);
|
||
qDebug() << "m_array2" << arrItem << endl;
|
||
return arrItem;
|
||
|
||
|
||
// 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;
|
||
ConfiguraitonsObj["DelaySeconds"] = ui->lineEdit_delay->text();
|
||
ConfiguraitonsObj["ChannelOperate"] = -1;
|
||
}
|
||
}
|
||
return ConfiguraitonsObj;
|
||
}
|
||
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();
|
||
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
void CConfiguration::on_pushButton_save_clicked()
|
||
{
|
||
#ifdef QT_DEBUG
|
||
PushData();
|
||
#endif
|
||
connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
|
||
g_NetMgr->DetectNet();
|
||
}
|
||
|
||
void CConfiguration::on_pushButton_confirm_clicked()
|
||
{
|
||
|
||
QJsonObject logicObj,logicObj2,ConfiguraitonsObj,ConfiguraitonsObj2,ConfiguraitonsWCObj,ConfiguraitonsWCObj2;
|
||
QJsonArray logicExpressArray,logicExpressArray2,ConfiguraitonsArray,ConfiguraitonsArray2;
|
||
int flag = -1;
|
||
if(ui->radioButton_1->isChecked()){
|
||
flag = 1;
|
||
ConfiguraitonsObj = SelectChannel(3);
|
||
|
||
}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);
|
||
}else if(ui->radioButton_11->isChecked()){
|
||
flag = 1;
|
||
ConfiguraitonsObj = SelectChannel(1);
|
||
}else if(ui->radioButton_12->isChecked()){
|
||
flag = 1;
|
||
ConfiguraitonsObj = SelectChannel(2);
|
||
}
|
||
|
||
if(flag == -1){
|
||
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请先选择继电器!"));
|
||
return;
|
||
}
|
||
m_isConfirm = 1;
|
||
if(model_Relay->rowCount() > 1){
|
||
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请选择正确的组态逻辑"));
|
||
return;
|
||
}
|
||
// for(int i = 0;i < model_Relay->rowCount() ;i++)
|
||
// {
|
||
// QStandardItem *item = model_Relay->item(i);
|
||
// qDebug() <<"item = " << item->text();
|
||
// QJsonArray arrayAll = GetItem(model_Relay->item(i));
|
||
// QJsonObject json = generateJsonFromTreeView(ui->treeView_Relay);
|
||
// saveJsonToFile(json, "TreeViewToJSON.json");
|
||
// if(arrayAll.size() < 1)
|
||
// return;
|
||
// logicObj[item->text().left(7)] = arrayAll;
|
||
// logicObj2[item->text().left(7)] = m_deleteInputArray;
|
||
// logicExpressArray.append(logicObj);
|
||
// logicExpressArray2.append(logicObj2);
|
||
// }
|
||
QJsonArray rootArray;
|
||
|
||
// 遍历模型的每个根节点
|
||
for (int i = 0; i < model_Relay->rowCount(); ++i) {
|
||
QStandardItem *rootItem = model_Relay->item(i);
|
||
rootArray.append(createJsonFromTreeNode(rootItem));
|
||
// logicObj[rootItem->text().left(7)] = rootArray;
|
||
// logicObj2[rootItem->text().left(7)] = m_deleteInputArray;
|
||
// logicExpressArray.append(logicObj);
|
||
// logicExpressArray2.append(logicObj2);
|
||
}
|
||
|
||
ConfiguraitonsObj2 = ConfiguraitonsObj;
|
||
ConfiguraitonsObj["logicExpress"] = rootArray;
|
||
ConfiguraitonsObj2["logicExpress"] = logicExpressArray2;
|
||
//saveJsonToFile(ConfiguraitonsObj, "TreeViewToJSON.json");
|
||
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;
|
||
ConfiguraitonsArray.append(ConfiguraitonsObj);
|
||
ConfiguraitonsArray2.append(ConfiguraitonsObj2);
|
||
QJsonArray().swap(m_array);
|
||
QJsonArray().swap(m_arrayAll);
|
||
|
||
if(ui->lineEdit_2->text() == ""){
|
||
ConfiguraitonsWCObj["SecondDelaySeconds"] = "0";
|
||
ConfiguraitonsWCObj2["SecondDelaySeconds"] = "0";
|
||
}
|
||
else{
|
||
ConfiguraitonsWCObj["SecondDelaySeconds"] = ui->lineEdit_2->text();
|
||
ConfiguraitonsWCObj2["SecondDelaySeconds"] = ui->lineEdit_2->text();
|
||
}
|
||
|
||
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;
|
||
}
|
||
}
|
||
ConfiguraitonsWCObj["Configuraitons"] = ConfiguraitonsArray;
|
||
ConfiguraitonsWCObj2["Configuraitons"] = ConfiguraitonsArray2;
|
||
|
||
//防止点击重复应用
|
||
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("应用成功!"));
|
||
}
|
||
|
||
|
||
void CConfiguration::on_comboBox_WC_currentTextChanged2(const QString &arg1)
|
||
{
|
||
qDebug() << "on_comboBox_WC_currentTextChanged" << endl;
|
||
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);
|
||
QJsonArray arrayConfig = TriggerSettings.at(j)["triggerConfig"].toArray();
|
||
if(arrayConfig.size() > 0){
|
||
item2->appendRow(itemChannel);
|
||
for (int k = 0; k < arrayConfig.size(); k++){
|
||
QStringList strList = arrayConfig.at(k)["triggerEventName"].toString().split('-');
|
||
QString strStaticData;
|
||
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();
|
||
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 = "监测保护峰峰值";
|
||
else if(strList[0] == "InvertDanger")
|
||
strStaticData = "反时限危险值";
|
||
else if(strList[0] == "InvertAlarm")
|
||
strStaticData = "反时限警报值";
|
||
if(xAlertOverEnabled == 1){
|
||
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于警报值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"警报"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xAlertUnderEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-"+ "低于警报值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"警报"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xDangerOverEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "高于危险值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Over-"+"危险"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
if(xDangerUnderEnabled == 1){
|
||
item = new QStandardItem(QString(channelName + "-" + strStaticData + "-" + "低于危险值"));
|
||
//item = new QStandardItem(QString(channelName + "-" + str + "-Under-"+"危险"));
|
||
itemChannel->appendRow(item);
|
||
}
|
||
itemChannel->setData(strStaticData);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
void CConfiguration::PushData()
|
||
{
|
||
if(m_isConfirm == -1){
|
||
QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("请先点击\"应用\"!"));
|
||
return ;
|
||
}
|
||
m_isConfirm = -1;
|
||
|
||
QJsonArray WorkConditionConfiguraitonsArray2;
|
||
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]);
|
||
}
|
||
|
||
}else{
|
||
m_WorkConditionConfiguraitonsArray.append(m_ConfiguraitonsWCObj);
|
||
}
|
||
|
||
QJsonObject WorkConditionConfiguraitonsObj,WorkConditionConfiguraitonsObj2;
|
||
WorkConditionConfiguraitonsObj["WorkConditionConfiguraitons"] = m_WorkConditionConfiguraitonsArray;
|
||
WorkConditionConfiguraitonsObj2["WorkConditionConfiguraitons"] = WorkConditionConfiguraitonsArray2;
|
||
|
||
QJsonDocument jsonDoc;
|
||
jsonDoc.setObject(WorkConditionConfiguraitonsObj);
|
||
#ifdef Q_OS_WIN32
|
||
QString fileName = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations.json";
|
||
#endif
|
||
#ifdef Q_OS_LINUX
|
||
QString fileName = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations.json";
|
||
#endif
|
||
|
||
|
||
QJsonDocument jsonDoc2;
|
||
jsonDoc2.setObject(WorkConditionConfiguraitonsObj2);
|
||
|
||
#ifdef Q_OS_WIN32
|
||
QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\UnitConfigurations2.json";
|
||
#endif
|
||
#ifdef Q_OS_LINUX
|
||
QString fileName2 = QCoreApplication::applicationDirPath() + "/config/UnitConfigurations2.json";
|
||
#endif
|
||
|
||
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;
|
||
|
||
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,"");
|
||
|
||
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");
|
||
|
||
}
|
||
|
||
|
||
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++ ) {
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// 递归解析 JSON 并构建树模型
|
||
void CConfiguration::populateTree(QStandardItem *parentItem, const QJsonObject &jsonObject) {
|
||
for (auto it = jsonObject.begin(); it != jsonObject.end(); ++it) {
|
||
QString key = it.key();
|
||
QJsonValue value = it.value();
|
||
|
||
if (key == "Combination") {
|
||
// // 添加 Combination 节点
|
||
// QJsonObject combination = value.toObject();
|
||
// int minNumber = combination["MinimumNumber"].toInt();
|
||
// QString combinationText = QString("Combination (MinimumNumber: %1)").arg(minNumber);
|
||
// QStandardItem *combinationItem = new QStandardItem(combinationText);
|
||
// parentItem->appendRow(combinationItem);
|
||
} else if (key == "Inputs" && value.isArray()) {
|
||
// 解析 Inputs 数组
|
||
QJsonArray inputsArray = value.toArray();
|
||
// QStandardItem *inputsItem = new QStandardItem("Inputs");
|
||
// parentItem->appendRow(inputsItem);
|
||
|
||
for (const QJsonValue &inputValue : inputsArray) {
|
||
if (inputValue.isObject()) {
|
||
populateTree(parentItem, inputValue.toObject());
|
||
}
|
||
}
|
||
} else if (key.startsWith("logic")) {
|
||
// 处理 logicAND 或 logicOR 节点
|
||
QStandardItem *logicItem = new QStandardItem(key);
|
||
parentItem->appendRow(logicItem);
|
||
|
||
if (value.isArray()) {
|
||
QJsonArray logicArray = value.toArray();
|
||
for (const QJsonValue &logicValue : logicArray) {
|
||
if (logicValue.isObject()) {
|
||
QJsonObject logicCombination = logicValue["Combination"].toObject();
|
||
int MinimumNumber =logicCombination["MinimumNumber"].toInt();
|
||
qDebug() << "MinimumNumber" << MinimumNumber << endl;
|
||
logicItem->setData(MinimumNumber,Qt::UserRole+1);
|
||
if(key.contains("logicAND"))
|
||
logicItem->setText(QString("logicAND(%1)").arg(MinimumNumber));
|
||
populateTree(logicItem, logicValue.toObject());
|
||
}
|
||
}
|
||
}
|
||
} else if (value.isObject()) {
|
||
// 如果是嵌套对象
|
||
QStandardItem *objectItem = new QStandardItem(key);
|
||
parentItem->appendRow(objectItem);
|
||
populateTree(objectItem, value.toObject());
|
||
} else if (key == "displayTitle") {
|
||
// 叶子节点:展示 displayTitle
|
||
QStandardItem *leafItem = new QStandardItem(value.toString());
|
||
parentItem->appendRow(leafItem);
|
||
}
|
||
}
|
||
}
|
||
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){
|
||
ui->lineEdit_delay->setText(tempArray.at(j)["DelaySeconds"].toString());
|
||
QJsonArray tempArray2 = tempArray.at(j)["logicExpress"].toArray();
|
||
// 递归解析 JSON 数据并填充到模型中
|
||
for (int k = 0; k < tempArray2.size(); k++) {
|
||
QJsonObject tempObj2 = tempArray2[k].toObject();
|
||
if (tempObj2.contains(QStringLiteral("logicOR"))){
|
||
QJsonValue arrayValue = tempObj2.value(QStringLiteral("logicOR"));
|
||
QStandardItem *itemOr = new QStandardItem(QString("logicOR"));
|
||
QJsonArray array = arrayValue.toArray();
|
||
for (int kk = 0; kk < array.size(); kk++) {
|
||
QJsonObject tempObj3 = array[k].toObject();
|
||
populateTree(itemOr, tempObj3);
|
||
}
|
||
model_Relay->appendRow(itemOr);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//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){
|
||
// ui->lineEdit_delay->setText(tempArray.at(j)["DelaySeconds"].toString());
|
||
// 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;
|
||
ui->label_3->setText(ui->radioButton_1->text()+":");
|
||
ViewRelay(3);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_2_clicked()
|
||
{
|
||
m_curentRLY = 4;
|
||
ui->label_3->setText(ui->radioButton_2->text()+":");
|
||
ViewRelay(4);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_3_clicked()
|
||
{
|
||
m_curentRLY = 5;
|
||
ui->label_3->setText(ui->radioButton_3->text()+":");
|
||
ViewRelay(5);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_4_clicked()
|
||
{
|
||
m_curentRLY = 6;
|
||
ui->label_3->setText(ui->radioButton_4->text()+":");
|
||
ViewRelay(6);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_5_clicked()
|
||
{
|
||
m_curentRLY = 7;
|
||
ui->label_3->setText(ui->radioButton_5->text()+":");
|
||
ViewRelay(7);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_6_clicked()
|
||
{
|
||
m_curentRLY = 8;
|
||
ui->label_3->setText(ui->radioButton_6->text()+":");
|
||
ViewRelay(8);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_8_clicked()
|
||
{
|
||
m_curentRLY = 10;
|
||
ui->label_3->setText(ui->radioButton_8->text()+":");
|
||
ViewRelay(10);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_7_clicked()
|
||
{
|
||
m_curentRLY = 9;
|
||
ui->label_3->setText(ui->radioButton_7->text()+":");
|
||
ViewRelay(9);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_9_clicked()
|
||
{
|
||
m_curentRLY = 11;
|
||
ui->label_3->setText(ui->radioButton_9->text()+":");
|
||
ViewRelay(11);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_radioButton_10_clicked()
|
||
{
|
||
m_curentRLY = 12;
|
||
ui->label_3->setText(ui->radioButton_10->text()+":");
|
||
ViewRelay(12);
|
||
}
|
||
|
||
|
||
void CConfiguration::on_treeView_Available_pressed(const QModelIndex &index)
|
||
{
|
||
|
||
}
|
||
|
||
void CConfiguration::on_radioButton_11_clicked()
|
||
{
|
||
m_curentRLY = 1;
|
||
ui->label_3->setText(ui->radioButton_11->text()+":");
|
||
ViewRelay(1);
|
||
}
|
||
|
||
void CConfiguration::on_radioButton_12_clicked()
|
||
{
|
||
m_curentRLY = 2;
|
||
ui->label_3->setText(ui->radioButton_12->text()+":");
|
||
ViewRelay(2);
|
||
}
|
||
|