diff --git a/CharacteristicList.cpp b/CharacteristicList.cpp index b0496fc..fa247eb 100644 --- a/CharacteristicList.cpp +++ b/CharacteristicList.cpp @@ -72,7 +72,11 @@ void CCharacteristicList::DisPlayCharacteristic() model->setData(model->index(j,0,QModelIndex()),g_Charateristic[j].ChannelName); model->setData(model->index(j,1,QModelIndex()),g_Charateristic[j].SensorEngineeringUnit); if(g_ChannelBaseInfo[i].defaultDisplay == "峰峰值"){ - model->setData(model->index(j,2,QModelIndex()),QString::number(g_Charateristic[j].DiagnosisPk2Pk,'f',g_Charateristic[j].ChUnitDot)); + if(g_ChannelBaseInfo[i].channelType == "PULSE_CURRENT" && g_Charateristic[j].DiagnosisPk2Pk < 0.9 && g_Charateristic[j].DiagnosisPk2Pk > 0.4){ + model->setData(model->index(j,2,QModelIndex()),"0.0"); + }else{ + model->setData(model->index(j,2,QModelIndex()),QString::number(g_Charateristic[j].DiagnosisPk2Pk,'f',g_Charateristic[j].ChUnitDot)); + } }else if(g_ChannelBaseInfo[i].defaultDisplay == "有效值"){ model->setData(model->index(j,2,QModelIndex()),QString::number(g_Charateristic[j].RMSValues,'f',g_Charateristic[j].ChUnitDot)); }else if(g_ChannelBaseInfo[i].defaultDisplay == "峰值"){ diff --git a/RealTimeAlarm.cpp b/RealTimeAlarm.cpp index 09192a7..806ef50 100644 --- a/RealTimeAlarm.cpp +++ b/RealTimeAlarm.cpp @@ -562,3 +562,70 @@ void CRealTimeAlarm::ItemCheckStateSlot(QString strID, bool bChecked) { DateViewdialog->ViewData(strID,mapWaveData[strID]); } + +void CRealTimeAlarm::on_pushButton_refresh_clicked() +{ + model->setRowCount(0); + qDebug() << "initTable2" << endl; + QString strTableName = "t_AlarmStatusInfo",strSql; + strSql = QString(" timestamp <> '' order by timestamp DESC limit 0,100"); + m_vecTriggerAlarmStatusInfo = g_SqliteDB->GetTriggerAlarmStatusInfo(strTableName,strSql); + + if(m_vecTriggerAlarmStatusInfo.size() > 0){ + for (int i = 0; i < m_vecTriggerAlarmStatusInfo.size(); i++) { + QVariantList strRowItem ; + QDateTime dateTime = QDateTime::fromSecsSinceEpoch(m_vecTriggerAlarmStatusInfo[i].timestamp); + QTimeZone timeZone("Asia/Shanghai"); + dateTime = dateTime.toTimeZone(timeZone); + QString TStr = dateTime.toString("yyyy-MM-dd hh:mm:ss"); + QString triggerLevel = "",triggerEventName = ""; + if(m_vecTriggerAlarmStatusInfo[i].triggerLevel == "1"){ + triggerLevel = "警报"; + }else if(m_vecTriggerAlarmStatusInfo[i].triggerLevel == "2"){ + triggerLevel = "危险"; + } + QString strFeatureName = ""; + if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MinValues")) + strFeatureName = "最小值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MaxValues")) + strFeatureName = "最大值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DCValues")) + strFeatureName = "偏置电压/Gap"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("RMSValues")) + strFeatureName = "有效值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPk2Pk")) + strFeatureName = "诊断峰峰值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratRMS")) + strFeatureName = "有效值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk")) + strFeatureName = "积分峰峰值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("SpeedProfileSpeed")) + strFeatureName = "转速"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("IntegratPk2Pk/2")) + strFeatureName = "峰值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("DiagnosisPeak")) + strFeatureName = "峰值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("MonitorPk2Pk")) + strFeatureName = "监测保护峰峰值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertDanger") ) + strFeatureName = "反时限危险值"; + else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("InvertAlarm")) + strFeatureName = "反时限警报值"; + if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Over")){ + triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "高于" + triggerLevel + "值"; + }else if(m_vecTriggerAlarmStatusInfo[i].triggerEventName.contains("Under")){ + triggerEventName = m_vecTriggerAlarmStatusInfo[i].channelName + "-" + strFeatureName+ "-" + "低于" + triggerLevel + "值"; + } + strRowItem << i + 1 << triggerLevel << triggerEventName << TStr; + + createRowItem(i,strRowItem); + } + QMyTableViewBtnDelegate *m_btnDelegate = new QMyTableViewBtnDelegate(QStringList()<<"详情", this); + ui->tableView->setItemDelegateForColumn(4, m_btnDelegate); + connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &))); + + }else{ + QMessageBox::information(this, "提示", QString("未查询到数据!")); + } +} + diff --git a/RealTimeAlarm.h b/RealTimeAlarm.h index 780a7f2..981c6db 100644 --- a/RealTimeAlarm.h +++ b/RealTimeAlarm.h @@ -25,6 +25,8 @@ public: private slots: void Details(const QModelIndex &index); void ItemCheckStateSlot(QString strID, bool bChecked); + void on_pushButton_refresh_clicked(); + public slots: void downloadProcess_Slot(qint64 byteSend, qint64 byteTotal); void DownloadStatus_Slot(); diff --git a/RealTimeAlarm.ui b/RealTimeAlarm.ui index 12d51c3..79de2df 100644 --- a/RealTimeAlarm.ui +++ b/RealTimeAlarm.ui @@ -18,7 +18,55 @@ color: rgb(27, 30, 35); - + + + + + + + + Qt::Horizontal + + + + 488 + 20 + + + + + + + + + 96 + 28 + + + + + 96 + 28 + + + + #pushButton_refresh { border-image: url(:/image/Btn/normal_Btn.png); + color:#1f5188 } +#pushButton_refresh:hover { border-image: url(:/image/Btn/normal_Btn_p.png); + color:#ffffff} +#pushButton_refresh:pressed { border-image: url(:/image/Btn/normal_Btn_p.png); + color:#ffffff} +#pushButton_refresh:checked { border-image: url(:/image/Btn/normal_Btn_p.png); + color:#ffffff} + + + 刷新 + + + + + + diff --git a/WaveDisplay.cpp b/WaveDisplay.cpp index 2b7c016..41db3df 100644 --- a/WaveDisplay.cpp +++ b/WaveDisplay.cpp @@ -24,44 +24,8 @@ CWaveDisPlay::CWaveDisPlay(QWidget *parent) : m_title = new QCPTextElement(ui->widget_wave, strTitle); ui->widget_wave->plotLayout()->addElement(0, 0, m_title); -// QAbstractItemView* view = ui->comboBox_channel_2->view(); -// QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect; -// effect->setBlurRadius(6); -// effect->setColor(Qt::black); -// effect->setOffset(0, 0); -// view->setGraphicsEffect(effect); -// view->update(); - -// static_cast(view->parent()) -// ->setStyleSheet( -// "QWidget{border:none;background-color: rgb(255, 255, 255);}"); - -// QWidget* container = static_cast(view->parent()); -// container->setAttribute(Qt::WA_TranslucentBackground); -// container->setWindowFlag(Qt::FramelessWindowHint); -// container->setWindowFlag(Qt::NoDropShadowWindowHint); - InitWindows(); -// ui->widget_wave->xAxis->setRange(0, 1); -// ui->widget_wave->xAxis->setLabel("Fs(Hz)"); -// ui->widget_wave->yAxis->setLabel(m_ChannelUnit); -// QVector ticks; -// QVector labels; -// ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7; -// labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada"; -// QVector fossilData; -// fossilData << 0.86*10.5 << 0.83*5.5 << 0.84*5.5 << 0.52*5.8 << 0.89*5.2 << 0.90*4.2 << 0.67*11.2; -// QCPBars *bars = new QCPBars(ui->widget_wave->xAxis, ui->widget_wave->yAxis); -// bars->setPen(QPen(QColor(31, 81, 136).lighter(130))); // 设置柱状图的边框颜色 -// bars->setBrush(QColor(31, 81, 136)); // 设置柱状图的画刷颜色 -// bars->setAntialiased(false); -// bars->setWidth(0.02); -// bars->setData(ticks, fossilData); -// ui->widget_wave->xAxis->setRange(0, fossilData.size()); -// on_Btn_Scales_clicked(); -// ui->widget_wave->replot(); - } CWaveDisPlay::~CWaveDisPlay() @@ -189,77 +153,55 @@ void CWaveDisPlay::ParseDataTimeWave(QJsonObject & objContent) if(package + 1 == packageMax){ - // if(!OneSecond){ -// m_Count ++; -// m_WaveData = m_WaveData + data ; -// qDebug() << "4S" <<"package" <widget_wave->xAxis->setRange(0, 4); -// ui->widget_wave->xAxis->setLabel("Time(s)"); -// double gap = (double)4/(double)m_ListWaveData.size(); -// QVector x,y; -// double f = 0.0; -// QCPGraph* graph = ui->widget_wave->addGraph(ui->widget_wave->xAxis, ui->widget_wave->yAxis); -// for(int i = 0; i < m_ListWaveData.size();i++){ - -// x.push_back(f); -// y.push_back(m_ListWaveData[i].toDouble()); -// f += gap; -// } -// qDebug() << "x" <setData(x,y); -// ui->widget_wave->xAxis->setRange(0, 1); -// on_Btn_Scales_clicked(); -// ui->widget_wave->replot(); -// m_ListWaveData.clear(); -// m_Count = 0; -// } -// m_WaveData = ""; -// }else - { - m_WaveData = m_WaveData + data; - qDebug() << "package" <widget_wave->xAxis->setLabel("Time(s)"); - ui->widget_wave->yAxis->setLabel(m_ChannelUnit); - QString str = QString("wave size = %1").arg(m_ListWaveData.size()); - customLogMessageHandler(QtDebugMsg,str); - double gap = 0.0; - if(OneSecond){ - ui->widget_wave->xAxis->setRange(0, 1); - gap = (double)1/(double)m_ListWaveData.size(); - }else{ - ui->widget_wave->xAxis->setRange(0, 4); - gap = (double)4/(double)m_ListWaveData.size(); - } - - double f = 0.0; - QVector x,y,x2,y2; - QCPGraph* graph = ui->widget_wave->addGraph(ui->widget_wave->xAxis, ui->widget_wave->yAxis); - for(int i = 0; i < m_ListWaveData.size();i++){ - x.push_back(f); - y.push_back(m_ListWaveData[i].toDouble()); - f += gap; - } - - QVector::iterator max = std::max_element(std::begin(y), std::end(y)); - double biggest = *max; - - qDebug() << "x" << x.size() << "y" << y.size() << endl; - graph->setData(x,y); - - - ui->widget_wave->yAxis->setRange(-1,biggest+2); - on_Btn_Scales_clicked(); - ui->widget_wave->replot(); + m_WaveData = m_WaveData + data; + qDebug() << "package" <widget_wave->xAxis->setLabel("Time(s)"); + ui->widget_wave->yAxis->setLabel(m_ChannelUnit); + QString str = QString("wave size = %1").arg(m_ListWaveData.size()); + customLogMessageHandler(QtDebugMsg,str); + double gap = 0.0; + if(OneSecond){ + ui->widget_wave->xAxis->setRange(0, 1); + gap = (double)1/(double)m_ListWaveData.size(); + }else{ + ui->widget_wave->xAxis->setRange(0, 4); + gap = (double)4/(double)m_ListWaveData.size(); } + double f = 0.0; + QVector x,y; + QCPGraph* graph = ui->widget_wave->addGraph(ui->widget_wave->xAxis, ui->widget_wave->yAxis); + for(int i = 0; i < m_ListWaveData.size();i++){ + x.push_back(f); + y.push_back(m_ListWaveData[i].toDouble()); + f += gap; + } + + QVector::iterator max = std::max_element(std::begin(y), std::end(y)); + if(m_ChannelType == "PULSE_CURRENT"){ + QVector::iterator min = std::min_element(std::begin(y), std::end(y)); + double min_y = *min; + if(min_y < 1){ + double sum = std::accumulate(std::begin(y), std::end(y), 0.0); + double size = y.size(); + double mean = sum/size; + for(int i = 0; i < size;i++){ + y[i] = y[i] - mean; + } + } + max = std::max_element(std::begin(y), std::end(y)); + } + double biggest = *max; + + qDebug() << "x" << x.size() << "y" << y.size() << endl; + graph->setData(x,y); + ui->widget_wave->yAxis->setRange(-1,biggest+2); + on_Btn_Scales_clicked(); + ui->widget_wave->replot(); + if(ui->pushButton_1S->isChecked() && (m_ChannelType == "TACHOMETER" || (m_speedRefChannelId != "" && m_speedRefChannelId != "- -"))){ QJsonObject allObj,cmdBody; allObj.insert("cmd", "92");//获取键相 @@ -270,8 +212,6 @@ void CWaveDisPlay::ParseDataTimeWave(QJsonObject & objContent) QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP); req.setUrl(sUrl); m_pNetMgr->PostJson(req,allObj); - //ui->widget_wave->plotLayout()->clear(); - // } }else{ @@ -536,16 +476,6 @@ void CWaveDisPlay::Cursor() void CWaveDisPlay::on_pushButton_refresh_clicked() { -// ui->comboBox_channel_2->clear(); -// ui->comboBox_channel_2->addItem("请选择通道..."); -// for (int i = 0; i < g_ChannelBaseInfo.size(); i++) { -// ui->comboBox_channel_2->addItem(g_ChannelBaseInfo[i].channelName); -// } - -// ui->comboBox_channel_2->setView(new QListView()); - - -// //ui->comboBox_channel_2->setCurrentText("请选择通道..."); on_comboBox_channel_2_currentTextChanged(""); } @@ -578,7 +508,6 @@ void CWaveDisPlay::on_comboBox_channel_2_currentTextChanged(const QString &arg1) m_ChannelUnit = g_ChannelBaseInfo[i].sensorEngineeringUnit; if(ui->Btn_Timewave->isChecked()) { - m_Times = 0; if(ui->pushButton_4S->isChecked()){ OneSecond = false;