185 lines
7.8 KiB
C++
185 lines
7.8 KiB
C++
#include "ViewTriggerConfig.h"
|
|
#include "ui_ViewTriggerConfig.h"
|
|
|
|
ViewTriggerConfig::ViewTriggerConfig(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::ViewTriggerConfig)
|
|
{
|
|
ui->setupUi(this);
|
|
m_strWorkCondition = "";
|
|
headerStr = QObject::tr(" ,通道名称,特征值,高于警报值,高于危险值,\
|
|
低于警报值,低于危险值,警报触发状态,危险触发状态,警报延时触发时长,危险延时触发时长,触发类型");
|
|
model = new QStandardItemModel(ui->tableView);
|
|
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
|
|
QStringList headerList = headerStr.split(",");
|
|
model->setHorizontalHeaderLabels(headerList);
|
|
model->setColumnCount(headerList.size());
|
|
CheckBoxDelegate *pCheckDelegate = new CheckBoxDelegate(this);
|
|
ui->tableView->setItemDelegateForColumn(0, pCheckDelegate);
|
|
ui->tableView->setModel(model);
|
|
ui->tableView->setAlternatingRowColors(true);
|
|
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
|
|
for (int i = 0; i < model->columnCount() ; i++) {
|
|
if(i == 0){
|
|
ui->tableView->setColumnWidth(i, 50);
|
|
}
|
|
else if(i == 1){
|
|
ui->tableView->setColumnWidth(i, 200);
|
|
}else if(i == 9 || i == 10){
|
|
ui->tableView->setColumnWidth(i, 200);
|
|
}else{
|
|
ui->tableView->setColumnWidth(i, 150);
|
|
}
|
|
|
|
}
|
|
|
|
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->comboBox_workCondition->addItems(strWorkConditionList);
|
|
|
|
//connect(ui->comboBox_workCondition,SIGNAL(currentTextChanged(const QString &)),this,SLOT(on_comboBox_WorkCondition_currentTextChanged(const QString&)));
|
|
|
|
m_strWorkCondition = ui->comboBox_workCondition->currentText();
|
|
//LoadTriggerConfig(m_strWorkCondition);
|
|
}
|
|
|
|
ViewTriggerConfig::~ViewTriggerConfig()
|
|
{
|
|
delete ui;
|
|
}
|
|
//void ViewTriggerConfig::on_comboBox_WorkCondition_currentTextChanged(const QString &arg1)
|
|
//{
|
|
|
|
//}
|
|
void ViewTriggerConfig::on_comboBox_workCondition_currentTextChanged(const QString &arg1)
|
|
{
|
|
m_strWorkCondition = arg1;
|
|
LoadTriggerConfig(m_strWorkCondition);
|
|
}
|
|
void ViewTriggerConfig::LoadTriggerConfig(const QString& strWorkCondition)
|
|
{
|
|
|
|
model->removeRows(0, model->rowCount());
|
|
int ii = 0,flag = -1;
|
|
for (ii = 0; ii < m_WorkCondition.size(); ii++) {
|
|
if(m_WorkCondition[ii].WorkConditionName == strWorkCondition){
|
|
flag = 1;
|
|
break;
|
|
}
|
|
}
|
|
if(flag == -1){
|
|
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("工况信息加载失败!"));
|
|
return;
|
|
}
|
|
QString strWhere = QString(" WorkConditionID = %1 and operate <> 3 ").arg(m_WorkCondition[ii].SN);
|
|
m_vecTriggerConfig.clear();
|
|
QVector<TriggerConfig_t>().swap(m_vecTriggerConfig);
|
|
m_vecTriggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere);
|
|
|
|
if(m_vecTriggerConfig.size() > 0){
|
|
model->setRowCount(m_vecTriggerConfig.size());
|
|
for (int i = 0; i < m_vecTriggerConfig.size(); i++) {
|
|
model->setData(model->index(i,1,QModelIndex()),m_vecTriggerConfig[i].ChannelName);
|
|
model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].Characteristic);
|
|
if(m_vecTriggerConfig[i].AlertOver == 1)
|
|
model->setData(model->index(i,3,QModelIndex()),m_vecTriggerConfig[i].AlertOverSetpoint);
|
|
else
|
|
model->setData(model->index(i,3,QModelIndex()),"");
|
|
|
|
if(m_vecTriggerConfig[i].DangerOver)
|
|
model->setData(model->index(i,4,QModelIndex()),m_vecTriggerConfig[i].DangerOverSetpoint);
|
|
else
|
|
model->setData(model->index(i,4,QModelIndex()),"");
|
|
|
|
if(m_vecTriggerConfig[i].AlertUnder)
|
|
model->setData(model->index(i,5,QModelIndex()),m_vecTriggerConfig[i].AlertUnderSetpoint);
|
|
else
|
|
model->setData(model->index(i,5,QModelIndex()),"");
|
|
|
|
if(m_vecTriggerConfig[i].DangerUnder)
|
|
model->setData(model->index(i,6,QModelIndex()),m_vecTriggerConfig[i].DangerUnderSetpoint);
|
|
else
|
|
model->setData(model->index(i,6,QModelIndex()),"");
|
|
|
|
// model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].AlertOverSetpoint);
|
|
// model->setData(model->index(i,2,QModelIndex()),m_vecTriggerConfig[i].DangerOverSetpoint);
|
|
// model->setData(model->index(i,4,QModelIndex()),m_vecTriggerConfig[i].AlertUnderSetpoint);
|
|
// model->setData(model->index(i,5,QModelIndex()),m_vecTriggerConfig[i].DangerUnderSetpoint);
|
|
if(m_vecTriggerConfig[i].AlertTriggerStatus == "Latching")
|
|
model->setData(model->index(i,7,QModelIndex()),"单次触发");
|
|
else if(m_vecTriggerConfig[i].AlertTriggerStatus == "Nonlatching")
|
|
model->setData(model->index(i,7,QModelIndex()),"连续触发");
|
|
|
|
|
|
if(m_vecTriggerConfig[i].DangerTriggerStatus == "Latching")
|
|
model->setData(model->index(i,8,QModelIndex()),"单次触发");
|
|
else if(m_vecTriggerConfig[i].DangerTriggerStatus == "Nonlatching")
|
|
model->setData(model->index(i,8,QModelIndex()),"连续触发");
|
|
|
|
model->setData(model->index(i,9,QModelIndex()),m_vecTriggerConfig[i].AlertTriggerDelay);
|
|
model->setData(model->index(i,10,QModelIndex()),m_vecTriggerConfig[i].DangerTriggerDelay);
|
|
|
|
if(m_vecTriggerConfig[i].TriggerType == "LEVEL")
|
|
model->setData(model->index(i,11,QModelIndex()),"阈值");
|
|
else if(m_vecTriggerConfig[i].TriggerType == "DELTA")
|
|
model->setData(model->index(i,12,QModelIndex()),"偏差");
|
|
model->setData(model->index(i,13,QModelIndex()),m_vecTriggerConfig[i].ChannelID);
|
|
model->setData(model->index(i,14,QModelIndex()),m_vecTriggerConfig[i].WorkConditionID);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
void ViewTriggerConfig::on_pushButton_del_clicked()
|
|
{
|
|
int iRet = -1;
|
|
int ii = 0,flag = -1;
|
|
for (ii = 0; ii < m_WorkCondition.size(); ii++) {
|
|
if(m_WorkCondition[ii].WorkConditionName == ui->comboBox_workCondition->currentText()){
|
|
flag = 1;
|
|
break;
|
|
}
|
|
}
|
|
if(flag == -1){
|
|
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("工况信息加载失败!"));
|
|
return;
|
|
}
|
|
for (int i = 0; i < model->rowCount(); i++) {
|
|
QModelIndex indexCheck = model->index(i,0);
|
|
bool check = model->data(indexCheck, Qt::UserRole).toBool();
|
|
if(check){
|
|
QString strChannelName = model->data(model->index(i,1)).toString();
|
|
QString strWorkConditionID = model->data(model->index(i,14)).toString();
|
|
QString strCharacteristic = model->data(model->index(i,2)).toString();
|
|
QString strWhere = QString("where ChannelName = '%1' and WorkConditionID = %2 and Characteristic = '%3' ").arg(strChannelName).arg(m_WorkCondition[ii].SN).arg(strCharacteristic);
|
|
QString tableName = "t_TriggerConfig ";
|
|
QString strSql = QString(" set operate = 3 ");
|
|
strSql = strSql + strWhere;
|
|
iRet = g_SqliteDB->UpdateDataSql(tableName,strSql);
|
|
//iRet = g_SqliteDB->DeleteDataW(tableName,strWhere);
|
|
if(iRet != 0)
|
|
break;
|
|
}
|
|
}
|
|
if(iRet == 0){
|
|
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除成功!"));
|
|
emit deleteTriggerEvent_sg();
|
|
}
|
|
else{
|
|
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除失败!"));
|
|
}
|
|
|
|
LoadTriggerConfig(m_strWorkCondition);
|
|
}
|
|
|
|
|
|
|
|
|