实例化地址列

This commit is contained in:
jxder 2025-10-14 23:03:20 +08:00
parent 46831412fd
commit 19465c4f8d
2 changed files with 33 additions and 18 deletions

View File

@ -635,4 +635,6 @@
#define CN_IS_SAMPLE "IS_SAMPLE"
#define CN_DEV_PORT "DEV_PORT"
#define CN_NET_DESC1 "NET_DESC1"
#define CN_RTU_ADDR "RTU_ADDR"
#endif // COMMON_GLOBAL_H

View File

@ -108,7 +108,7 @@ void kbdCustomInstPluginDlg::initData()
ds.getSqlInfoToCombobox(sql,CN_DESC,CN_LOCATION_ID,m_cbLocation);
m_listColName << tr("套件") << tr("设备组标签") << tr("设备组描述") << tr("前置设备名称") << tr("前置设备描述")
<< tr("通道名称") << tr("通道描述") << tr("RTU名称") << tr("RTU描述");
<< tr("通道名称") << tr("通道描述")<< tr("通道地址") << tr("RTU名称") << tr("RTU描述")<< tr("RTU地址");
m_table->setColumnCount(m_listColName.size());
m_table->setHorizontalHeaderLabels(m_listColName);
m_table->horizontalHeader()->setStretchLastSection(true);
@ -160,23 +160,28 @@ void kbdCustomInstPluginDlg::onAdd()
item = new QTableWidgetItem(m_listChanDesInfo.first().first());
item->setData(Qt::UserRole,m_listChanDesInfo.first().last());
m_table->setItem(nCount,6,item);
}
item = new QTableWidgetItem("127.0.0.1");
m_table->setItem(nCount,7,item);
if(m_listRTUTagInfo.isEmpty())
{
m_table->setItem(nCount,7,new QTableWidgetItem);
m_table->setItem(nCount,8,new QTableWidgetItem);
m_table->setItem(nCount,9,new QTableWidgetItem);
}
else
{
item = new QTableWidgetItem(m_listRTUTagInfo.first().first());
item->setData(Qt::UserRole,m_listRTUTagInfo.first().last());
m_table->setItem(nCount,7,item);
m_table->setItem(nCount,8,item);
item = new QTableWidgetItem(m_listRTUDesInfo.first().first());
item->setData(Qt::UserRole,m_listRTUDesInfo.first().last());
m_table->setItem(nCount,8,item);
m_table->setItem(nCount,9,item);
}
item = new QTableWidgetItem("1");
m_table->setItem(nCount,10,item);
connect(m_table,&QTableWidget::itemChanged,this,&kbdCustomInstPluginDlg::onTableItemChange);
}
@ -726,13 +731,13 @@ void kbdCustomInstPluginDlg::onLoactionAndSubsystemChange()
if(m_listRTUTagInfo.isEmpty())
{
m_table->setItemDelegateForColumn(7,nullptr);
m_table->setItemDelegateForColumn(8,nullptr);
m_table->setItemDelegateForColumn(9,nullptr);
}
else
{
m_table->setItemDelegateForColumn(7,new CboxDelegate(m_listRTUTagInfo,this));
m_table->setItemDelegateForColumn(8,new CboxDelegate(m_listRTUDesInfo,this));
m_table->setItemDelegateForColumn(8,new CboxDelegate(m_listRTUTagInfo,this));
m_table->setItemDelegateForColumn(9,new CboxDelegate(m_listRTUDesInfo,this));
}
}
@ -760,23 +765,23 @@ void kbdCustomInstPluginDlg::onTableItemChange(QTableWidgetItem *item)
if(listDes.contains(item->text()))
m_table->item(nRow,5)->setText(item->data(Qt::UserRole).toString());
}
else if(bCol == 7)
else if(bCol ==8)
{
QStringList tags;
for(int i = 0;i < m_listRTUTagInfo.size();i++)
tags << m_listRTUTagInfo.at(i).first();
if(tags.contains(item->text()))
m_table->item(nRow,8)->setText(item->data(Qt::UserRole).toString());
m_table->item(nRow,9)->setText(item->data(Qt::UserRole).toString());
}
else if(bCol == 8)
else if(bCol == 9)
{
QStringList listDes;
for(int i = 0;i < m_listRTUDesInfo.size();i++)
listDes << m_listRTUDesInfo.at(i).first();
if(listDes.contains(item->text()))
m_table->item(nRow,7)->setText(item->data(Qt::UserRole).toString());
m_table->item(nRow,8)->setText(item->data(Qt::UserRole).toString());
}
connect(m_table,&QTableWidget::itemChanged,this,&kbdCustomInstPluginDlg::onTableItemChange);
}
@ -797,7 +802,7 @@ void kbdCustomInstPluginDlg::getInstDevCfg()
m_listGrpInfo.clear();
for(int i = 0;i < m_table->rowCount();i++)
{
QString pluginName, devGrpTag, devGrpName,fesGrpTag, fesGrpName, chanTag, chanName, RTUTag, RTUName;
QString pluginName, devGrpTag, devGrpName,fesGrpTag, fesGrpName, chanTag, chanName,chanAddr, RTUTag, RTUName,RTUAddr;
//套件标签
QTableWidgetItem* item = m_table->item(i,0);
@ -826,23 +831,29 @@ void kbdCustomInstPluginDlg::getInstDevCfg()
chanName = item->text();
item = m_table->item(i,7);
RTUTag = item->text();
chanAddr = item->text();
item = m_table->item(i,8);
RTUTag = item->text();
item = m_table->item(i,9);
RTUName = item->text();
item = m_table->item(i,10);
RTUAddr = item->text();
devGrpTag = locationTagName + "." + devGrpTag;
chanTag = locationTagName + "." + subSystemTag + "." + chanTag;
RTUTag = chanTag + "." + RTUTag;
m_listChan << (QStringList() << chanTag << chanName);
m_listChan << (QStringList() << chanTag<<chanAddr << chanName);
m_listGrpInfo <<(QStringList() << devGrpTag << devGrpName << RTUTag);
auto iterRtu = m_mapRTU.find(chanTag);
if(iterRtu != m_mapRTU.end())
iterRtu.value() << (QStringList() << RTUTag << RTUName);
iterRtu.value() << (QStringList() << RTUTag<<RTUAddr << RTUName);
else
m_mapRTU.insert(chanTag,QList<QStringList>() << (QStringList() << RTUTag << RTUName));
m_mapRTU.insert(chanTag,QList<QStringList>() << (QStringList() << RTUTag<<RTUAddr << RTUName));
auto iter = m_mapInstDev.find(pluginName);
if(iter != m_mapInstDev.end())
@ -931,6 +942,7 @@ bool kbdCustomInstPluginDlg::creatChannel()
rowData.replace(chanModelCols.findCol(CN_CHAN_NAME),strChanTag.split(".").last());
rowData.replace(chanModelCols.findCol(CN_DESC),strChanName);
rowData.replace(chanModelCols.findCol(CN_TAG_NAME),strChanTag);
rowData.replace(chanModelCols.findCol(CN_NET_DESC1),iter->at(1));
chanRowDatas << rowData;
}
@ -1029,6 +1041,7 @@ bool kbdCustomInstPluginDlg::creatRTU()
rowData.replace(rtuModelCols.findCol(CN_RTU_NAME),strRTUTag.split(".").last());
rowData.replace(rtuModelCols.findCol(CN_DESC),iterRtu->last());
rowData.replace(rtuModelCols.findCol(CN_TAG_NAME),strRTUTag);
rowData.replace(rtuModelCols.findCol(CN_RTU_ADDR),iterRtu->at(1));
rtuRowDatas << rowData;
}
m_mapRTU.erase(iter);
@ -1257,7 +1270,7 @@ bool kbdCustomInstPluginDlg::checkDevGrp(QStringList &listExistDevGrpTag)
item = m_table->item(i,5);
chanTag = item->text();
item = m_table->item(i,7);
item = m_table->item(i,8);
RTUTag = item->text();
if(plugin.isEmpty() || devGrpTag.isEmpty() || fesGrpTag.isEmpty() || chanTag.isEmpty() || RTUTag.isEmpty())
@ -1358,7 +1371,7 @@ bool kbdCustomInstPluginDlg::checkUpdateDevInfo()
item = m_table->item(i,5);
chanTag = locationTagName+ "." +subSystemTag+ "." + item->text();
item = m_table->item(i,7);
item = m_table->item(i,8);
RTUTag = chanTag + "." + item->text();
devGrpTag = locationTagName + "." +devGrpTag;