修改组态logic层级

This commit is contained in:
zhangsheng 2024-11-16 18:06:36 +08:00
parent d32e5bfb55
commit 8085a2875b
2 changed files with 349 additions and 135 deletions

View File

@ -346,48 +346,135 @@ void CConfiguration::on_treeView_Relay_customContextMenuRequested(const QPoint &
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 arrayAll,arrayAll2;
QJsonObject jsonObj,inputObj,inputObj2,MinimumNumberObj;
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++)
{
QJsonArray array;
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 = childitem->text();
strLogic = item->text();
if(childitem->text().contains("logicOR") || childitem->text().contains("logicAND")){
QJsonArray inputArray,inputArray2;
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;
}
}
inputArray.append(jsonObj);
inputArray2.append(jsonObj);
}
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++) {
@ -407,19 +494,43 @@ QJsonArray CConfiguration::GetItem(QStandardItem *item,int MinimumNumber)
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;
}
}
}
QJsonObject jsonObjLogic,jsonObjLogic2;
qDebug() << "strLogic" << strLogic.left(strLogic.length()-3) << endl;
jsonObjLogic[strLogic.left(strLogic.length()-3)] = arrayAll;
jsonObjLogic2[strLogic.left(strLogic.length()-3)] = arrayAll2;
QJsonArray ret;
ret.append(jsonObjLogic);
m_deleteInputArray.append(jsonObjLogic2);
qDebug() << "m_array" << ret << endl;
return ret;
m_deleteInputArray.append(arrjsonObjLogic2);
qDebug() << "m_array2" << arrItem << endl;
return arrItem;
// QJsonArray arrayAll,inputArray;
@ -565,22 +676,36 @@ void CConfiguration::on_pushButton_confirm_clicked()
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));
if(arrayAll.size() < 1)
return;
logicObj[item->text().left(7)] = arrayAll;
logicObj2[item->text().left(7)] = m_deleteInputArray;
logicExpressArray.append(logicObj);
logicExpressArray2.append(logicObj2);
}
ConfiguraitonsObj2 = ConfiguraitonsObj;
ConfiguraitonsObj["logicExpress"] = logicExpressArray;
ConfiguraitonsObj2["logicExpress"] = logicExpressArray2;
// 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++) {
@ -915,10 +1040,62 @@ void CConfiguration::on_comboBox_WC_currentIndexChanged(const QString &arg1)
}
}
}
// 递归解析 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);
void CConfiguration::ViewRelay(int ChannelNoInBoard)
{
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();
@ -932,100 +1109,134 @@ void CConfiguration::ViewRelay(int ChannelNoInBoard)
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("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);
}
}
}
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);
@ -1128,7 +1339,7 @@ void CConfiguration::ViewRelay(int ChannelNoInBoard)
// }
// }
// }
}
//}
void CConfiguration::on_radioButton_1_clicked()
{

View File

@ -65,7 +65,9 @@ private:
QStandardItemModel *model_Relay;
QVector<WorkCondition_t> m_WorkCondition;
QJsonObject createJsonFromTreeNode(QStandardItem *item);
void saveJsonToFile(const QJsonObject &jsonObject, const QString &filePath);
QJsonObject generateJsonFromTreeView(QTreeView *treeView);
QJsonArray GetItem(QStandardItem *item,int MinimumNumber = -1);
QJsonArray m_arrayAll;
QJsonArray m_array;
@ -85,6 +87,7 @@ private:
QJsonObject SelectChannel(int channelNo);
void ViewRelay(int ChannelNoInBoard);
void PushData();
void populateTree(QStandardItem *parentItem, const QJsonObject &jsonObject);
int m_isConfirm;
int m_curentRLY;
};