diff --git a/AddChannel.cpp b/AddChannel.cpp
index 92d7cfa..48d7b27 100644
--- a/AddChannel.cpp
+++ b/AddChannel.cpp
@@ -101,6 +101,7 @@ void CAddChannel::on_comboBox_channel_currentTextChanged(const QString &arg1)
ui->comboBox_charac->addItem("平均值");
}else if(g_ChannelBaseInfo[i].channelType == "THRUST"){
ui->comboBox_charac->addItem("平均值");
+ ui->comboBox_charac->addItem("有效值");
}else if(g_ChannelBaseInfo[i].channelType == "FAST_VOLTAGE"){
ui->comboBox_charac->addItem("平均值");
ui->comboBox_charac->addItem("有效值");
diff --git a/HistoryAlarm.cpp b/HistoryAlarm.cpp
index eab3b9d..b7302a8 100644
--- a/HistoryAlarm.cpp
+++ b/HistoryAlarm.cpp
@@ -35,7 +35,7 @@ CHistoryAlarm::CHistoryAlarm(QWidget *parent) :
QDateTime curDateTime=QDateTime::currentDateTime();//通过QDateTime的currentDateTime获得当前的日期时间,并赋值给curDateTime
ui->dateTimeEdit_start->setDateTime(curDateTime.addDays(-7));
- ui->dateTimeEdit_end->setDateTime(curDateTime);
+ ui->dateTimeEdit_end->setDateTime(curDateTime.addSecs(300));
ui->comboBox_channel->setView(new QListView());
diff --git a/NTPServerConfig.cpp b/NTPServerConfig.cpp
index 1886fa1..928a80d 100644
--- a/NTPServerConfig.cpp
+++ b/NTPServerConfig.cpp
@@ -39,12 +39,24 @@ void CNTPServerConfig::slotNetMgr(QString sAddr, const QVariant &msg)
QJsonValue arrays_value = objec.take("cmd");
if(arrays_value.toString() == "02")
{
- bool Status = objec.take("success").toBool();
- QString strMessage = objec.take("message").toString();
- if(Status){
- QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("保存成功!"));
- }else{
- QMessageBox::information(this, QStringLiteral("提示"), strMessage);
+ QJsonObject cmdBodyObj = objec["cmdBody"].toObject();
+ QJsonValue arrays_value = cmdBodyObj.take("type");
+ if(arrays_value == "SET"){
+ bool Status = objec.take("success").toBool();
+ QString strMessage = objec.take("message").toString();
+ if(Status){
+ QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("保存成功!"));
+ }else{
+ QMessageBox::information(this, QStringLiteral("提示"), strMessage);
+ }
+ }else if(arrays_value == "GET"){
+ int timestamp_value = cmdBodyObj.take("timeStamp").toInt();
+ QDateTime dateTime;
+
+ dateTime.setSecsSinceEpoch(timestamp_value);
+
+ QString strTime = dateTime.toString("yyyy-MM-dd hh:mm:ss");
+ ui->label_time->setText(strTime);
}
}
}
@@ -164,3 +176,20 @@ void CNTPServerConfig::on_radioButton_switch_clicked()
g_FtpClient->UpLoadFile(fileName,"ServerConfig.json",4);
}
+
+void CNTPServerConfig::on_pushButton_get_clicked()
+{
+ QJsonObject allObj,cmdBody;
+ allObj.insert("cmd", "02");
+ cmdBody.insert("type","GET");
+ long timeStamp = QDateTime::currentDateTime().toTime_t();
+ QString str = QString("%1").arg(timeStamp);
+ cmdBody["timeStamp"] = str.toInt();
+ allObj["cmdBody"] = cmdBody;
+ QNetworkRequest req;
+ QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
+ req.setUrl(sUrl);
+ g_NetMgr->PostJson(req,allObj);
+ connect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
+}
+
diff --git a/NTPServerConfig.h b/NTPServerConfig.h
index 1e8033d..e36d443 100644
--- a/NTPServerConfig.h
+++ b/NTPServerConfig.h
@@ -30,6 +30,8 @@ private slots:
void slotReplyStatus(int );
+ void on_pushButton_get_clicked();
+
private:
Ui::CNTPServerConfig *ui;
diff --git a/NTPServerConfig.ui b/NTPServerConfig.ui
index 375b7a2..0a1fc64 100644
--- a/NTPServerConfig.ui
+++ b/NTPServerConfig.ui
@@ -200,8 +200,8 @@
- 60
- 60
+ 160
+ 140
96
28
@@ -232,6 +232,54 @@
手动对时
+
+
+
+ 40
+ 140
+ 96
+ 28
+
+
+
+
+ 96
+ 28
+
+
+
+
+ 96
+ 28
+
+
+
+ #pushButton_get { border-image: url(:/image/Btn/normal_Btn.png);
+ color:#1f5188 }
+#pushButton_get:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+#pushButton_get:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+#pushButton_get:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+
+
+ 获取设备时间
+
+
+
+
+
+ 50
+ 50
+ 54
+ 12
+
+
+
+ TextLabel
+
+
diff --git a/RealTimeAlarm.cpp b/RealTimeAlarm.cpp
index 873b5fa..37cfb58 100644
--- a/RealTimeAlarm.cpp
+++ b/RealTimeAlarm.cpp
@@ -434,6 +434,11 @@ void CRealTimeAlarm::OpenDatFile(QString& strFileName)
QTime stopTime = QTime::currentTime();
qDebug() << "Time: " << startTime.msecsTo(stopTime) << "ms" <comboBox_channelConfig->currentText();
- QString strWhere = QString(" WorkConditionID = %1 and ChannelID = '%2' ").arg(m_WorkCondition[ii].SN).arg(strChannelID);
+ QString strWhere = QString(" WorkConditionID = %1 and ChannelID = '%2' and operate <> 3 ").arg(m_WorkCondition[ii].SN).arg(strChannelID);
m_vecTriggerConfig.clear();
QVector().swap(m_vecTriggerConfig);
m_vecTriggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere);
@@ -383,9 +383,12 @@ void CTriggerConfig::on_pushButton_submit_clicked()
qDebug() << "rowCount" << model->rowCount() <comboBox_workCondition->currentText() == m_WorkCondition[i].WorkConditionName)
+ int i = 0;
+ for (i = 0; i < m_WorkCondition.size() ; i++) {
+ if(ui->comboBox_workCondition->currentText() == m_WorkCondition[i].WorkConditionName){
WorkConditonSN = m_WorkCondition[i].SN;
+ break;
+ }
}
for (int i = 0; i < g_ChannelBaseInfo.size() ; i++) {
if(ui->comboBox_channelConfig->currentText() == g_ChannelBaseInfo[i].channelName){
@@ -408,7 +411,7 @@ void CTriggerConfig::on_pushButton_submit_clicked()
rowList << strData;
}
- if(j == 2){
+ if(j == 2){
QStandardItem *item = model->itemFromIndex(index);
if(item->checkState() == Qt::Unchecked)
rowList << "0";
@@ -478,18 +481,37 @@ void CTriggerConfig::on_pushButton_submit_clicked()
int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere);
if(count < 1){
if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1"){
- QString strSql = QString(" values('%1','%2',%3,'%4','%5',%6,'%7',%8,'%9',%10,'%11',%12,'%13','%14','%15','%16','%17','%18') ;").\
+ QString strSql = QString(" values('%1','%2',%3,'%4','%5',%6,'%7',%8,'%9',%10,'%11',%12,'%13','%14','%15','%16','%17','%18',0) ;").\
arg(ChannelID).arg(ChannelName).arg(WorkConditonSN).arg("").arg(rowList[1]).arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]);
g_SqliteDB->InsertData(strTableName,strSql);
+
}
}else{
- if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1"){
+
+ QString strWhere = QString(" AlertOver = %1 and AlertOverSetpoint = '%2' and DangerOver = %3 and DangerOverSetpoint = '%4' and AlertUnder = %5 and AlertUnderSetpoint = '%6' and DangerUnder = %7 and \
+ DangerUnderSetpoint = '%8' and AlertTriggerStatus = '%9' and DangerTriggerStatus = '%10' and AlertTriggerDelay = '%11' and DangerTriggerDelay = '%12' and TriggerType = '%13' and operate <> 3 ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
+ arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]);
+ QString strCol = "count(*)";
+ int count = g_SqliteDB->QueryData(strTableName,strCol,strWhere);
+ qDebug() << "count " << count << endl;
+ if(count == 0){
+ if(rowList[2] == "1" || rowList[4] == "1" || rowList[6] == "1"||rowList[8] == "1"){
+ QString strSql = QString(" set AlertOver = %1,AlertOverSetpoint = '%2',DangerOver = %3,DangerOverSetpoint = '%4',AlertUnder = %5,AlertUnderSetpoint = '%6',DangerUnder = %7,\
+ DangerUnderSetpoint = '%8',AlertTriggerStatus = '%9',DangerTriggerStatus = '%10',AlertTriggerDelay = '%11',DangerTriggerDelay = '%12',TriggerType = '%13', operate = 2 where ChannelID = '%14' and WorkConditionID = %15 and Characteristic = '%16' and operate <> 3; ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
+ arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]).arg(ChannelID).arg(WorkConditonSN.toInt()).arg(rowList[1]);
+ g_SqliteDB->UpdateDataSql(strTableName,strSql);
+
+ }
+ }else{
QString strSql = QString(" set AlertOver = %1,AlertOverSetpoint = '%2',DangerOver = %3,DangerOverSetpoint = '%4',AlertUnder = %5,AlertUnderSetpoint = '%6',DangerUnder = %7,\
- DangerUnderSetpoint = '%8',AlertTriggerStatus = '%9',DangerTriggerStatus = '%10',AlertTriggerDelay = '%11',DangerTriggerDelay = '%12',TriggerType = '%13' where ChannelID = '%14' and WorkConditionID = %15 and Characteristic = '%16' ; ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
+ DangerUnderSetpoint = '%8',AlertTriggerStatus = '%9',DangerTriggerStatus = '%10',AlertTriggerDelay = '%11',DangerTriggerDelay = '%12',TriggerType = '%13', operate = 1 where ChannelID = '%14' and WorkConditionID = %15 and Characteristic = '%16' and operate <> 3; ").arg(rowList[2]).arg(rowList[3]).arg(rowList[4]).arg(rowList[5]).arg(rowList[6]).\
arg(rowList[7]).arg(rowList[8]).arg(rowList[9]).arg(rowList[10]).arg(rowList[11]).arg(rowList[12]).arg(rowList[13]).arg(rowList[14]).arg(ChannelID).arg(WorkConditonSN.toInt()).arg(rowList[1]);
g_SqliteDB->UpdateDataSql(strTableName,strSql);
+
}
+
+
}
m_isConfirm = 1;
@@ -556,13 +578,20 @@ void CTriggerConfig::dialogReleased()
on_comboBox_WorkCondition_currentTextChanged(ui->comboBox_workCondition->currentText());
}
+
+void CTriggerConfig::on_deleteTriggerEvent()
+{
+ QString str = ui->comboBox_channelConfig->currentText();
+ on_comboBox_channelConfig_currentTextChanged(str);
+}
+
void CTriggerConfig::on_pushButton_view_clicked()
{
ViewTriggerConfig *dialog = new ViewTriggerConfig();
//connect(dialog,SIGNAL(reject()),this,SLOT(dialogReleased()));
dialog->setWindowModality(Qt::ApplicationModal);
dialog->show();
-
+ connect(dialog,SIGNAL(deleteTriggerEvent_sg()),this,SLOT(on_deleteTriggerEvent()));
}
void CTriggerConfig::slotNetMgr(QString sAddr, const QVariant &msg)
@@ -602,7 +631,7 @@ void CTriggerConfig::PushData()
}
for (int i = 0; i< m_WorkCondition.size(); i++) {
QJsonArray arraytriggerSettings;
- QString strWhere = QString(" WorkConditionID = %1").arg(m_WorkCondition[i].SN);
+ QString strWhere = QString(" WorkConditionID = %1 and operate <> 3 ").arg(m_WorkCondition[i].SN);
QVector triggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere);
for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) {
@@ -678,16 +707,119 @@ void CTriggerConfig::PushData()
file.write(jsonDoc.toJson());
file.close();
+ QJsonArray m_channeltriggerArray2;
+ QJsonObject triggerConfigObj2;
+ for (int i = 0; i< m_WorkCondition.size(); i++) {
+ QJsonArray arraytriggerSettings;
+ QString strWhere = QString(" WorkConditionID = %1 ").arg(m_WorkCondition[i].SN);
+ QVector triggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere);
+
+ for (int ii = 0; ii < g_ChannelBaseInfo.size(); ii++) {
+ int operate = -1;
+ QJsonArray triggerArray;
+ if(triggerConfig.size() > 0){
+ for (int j = 0; j < triggerConfig.size(); j++) {
+ if(g_ChannelBaseInfo[ii].channelID == triggerConfig[j].ChannelID){
+ QJsonObject rowObj;
+ if(triggerConfig[j].Characteristic == "最小值")
+ rowObj["triggerFeatureName"] = "MinValues";
+ else if(triggerConfig[j].Characteristic == "最大值")
+ rowObj["triggerFeatureName"] = "MaxValues";
+ else if( triggerConfig[j].Characteristic == "偏置电压/Gap")
+ rowObj["triggerFeatureName"] = "DCValues";
+ else if(triggerConfig[j].Characteristic == "平均值" || triggerConfig[j].Characteristic == "有效值")
+ rowObj["triggerFeatureName"] = "RMSValues";
+ else if(triggerConfig[j].Characteristic == "诊断峰峰值")
+ rowObj["triggerFeatureName"] = "DiagnosisPk2Pk";
+ else if(triggerConfig[j].Characteristic == "速度有效值" || triggerConfig[j].Characteristic == "位移有效值")//积分
+ rowObj["triggerFeatureName"] = "IntegratRMS";
+ else if(triggerConfig[j].Characteristic == "积分峰峰值")
+ rowObj["triggerFeatureName"] = "IntegratPk2Pk";
+ else if(triggerConfig[j].Characteristic == "转速")
+ rowObj["triggerFeatureName"] = "SpeedProfileSpeed";
+ else if(triggerConfig[j].Characteristic == "速度峰值" || triggerConfig[j].Characteristic == "位移峰值")//积分
+ rowObj["triggerFeatureName"] = "IntegratPk2Pk/2";
+ else if(triggerConfig[j].Characteristic == "峰值")
+ rowObj["triggerFeatureName"] = "DiagnosisPeak";
+ else if(triggerConfig[j].Characteristic == "监测保护峰峰值")
+ rowObj["triggerFeatureName"] = "MonitorPk2Pk";
+
+
+ QString triggerEventName = QString("%1-%2-%3").arg(rowObj["triggerFeatureName"].toString()).arg(triggerConfig[j].TriggerType).arg(triggerConfig[j].ChannelID);
+ rowObj["triggerEventName"] = triggerEventName;
+ rowObj["xAlertOverEnabled"] = triggerConfig[j].AlertOver;
+ rowObj["xAlertOverSetpoint"] = triggerConfig[j].AlertOverSetpoint.toDouble();
+ rowObj["xAlertTriggerDelay"] = triggerConfig[j].AlertTriggerDelay.toInt();
+ rowObj["xAlertTriggerStatus"] = triggerConfig[j].AlertTriggerStatus;
+ rowObj["xAlertUnderEnabled"] = triggerConfig[j].AlertUnder;
+ rowObj["xAlertUnderSetpoint"] = triggerConfig[j].AlertUnderSetpoint.toDouble();
+ rowObj["xDangerOverEnabled"] = triggerConfig[j].DangerOver;
+ rowObj["xDangerOverSetpoint"] = triggerConfig[j].DangerOverSetpoint.toDouble();
+ rowObj["xDangerTriggerDelay"] = triggerConfig[j].DangerTriggerDelay.toInt();
+ rowObj["xDangerTriggerStatus"] = triggerConfig[j].DangerTriggerStatus;
+ rowObj["xDangerUnderEnabled"] = triggerConfig[j].DangerUnder;
+ rowObj["xDangerUnderSetpoint"] = triggerConfig[j].DangerUnderSetpoint.toDouble();
+ operate = triggerConfig[j].operate;
+ triggerArray.append(rowObj);
+
+ }
+ }
+ }
+ QJsonObject tempObj;
+ tempObj["triggerConfig"] = triggerArray;
+ tempObj["channelId"] = g_ChannelBaseInfo[ii].channelID;
+ tempObj["channelName"] = g_ChannelBaseInfo[ii].channelName;
+ tempObj["channelOperate"] = operate;
+ arraytriggerSettings.append(tempObj);
+
+ }
+
+ triggerConfigObj2["triggerSettings"] = arraytriggerSettings;
+ triggerConfigObj2["workConditionSN"] = m_WorkCondition[i].SN.toInt();
+ triggerConfigObj2["workConditionName"] = m_WorkCondition[i].WorkConditionName;
+ m_channeltriggerArray2.append(triggerConfigObj2);
+ }
+
+ QJsonDocument jsonDoc2;
+ jsonDoc2.setArray(m_channeltriggerArray2);
+ QString fileName2 = QCoreApplication::applicationDirPath() + "\\config\\TriggerSettings2.json";
+
+ QFile file2(fileName2);
+ file2.open(QIODevice::WriteOnly);
+ file2.write(jsonDoc2.toJson());
+ file2.close();
+
QVector().swap(m_WorkCondition);
QString wherecon = "";
wherecon = QString("Enable = \"1\" ");
m_WorkCondition = g_SqliteDB->GetWorkCondition("t_WorkCondition",wherecon);
+
+ QString tableName = " t_TriggerConfig ";
+ QString strWhere = QString(" operate = 3 ");
+ g_SqliteDB->DeleteDataW(tableName,strWhere);
+
+ QString strSql = QString(" set operate = 1 where operate = 0 ");
+ g_SqliteDB->UpdateDataSql(tableName,strSql);
+
+ strSql = QString(" set operate = 1 where operate = 2 ");
+ g_SqliteDB->UpdateDataSql(tableName,strSql);
+
+ g_SqliteDB->GetTriggerConfig("t_TriggerConfig","");
+
QString str = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings.json");
g_FtpClient->SetServerInfo(str);
g_FtpClient->SetUserInfo("root","@#cidw!@123456");
g_FtpClient->UpLoadFile(fileName,"TriggerSettings.json");
+
+ QString str2 = QString("ftp://%1/CIDW/qtconfig/%2").arg(IP).arg("TriggerSettings2.json");
+ g_FtpClient->SetServerInfo(str2);
+ g_FtpClient->SetUserInfo("root","@#cidw!@123456");
+ g_FtpClient->UpLoadFile(fileName2,"TriggerSettings2.json");
+
disconnect(g_NetMgr,SIGNAL(sigNetMgr(QString, const QVariant&)), this, SLOT(slotNetMgr(QString,const QVariant&)));
+
+
}
diff --git a/TriggerConfig.h b/TriggerConfig.h
index 292565d..3a09ece 100644
--- a/TriggerConfig.h
+++ b/TriggerConfig.h
@@ -9,6 +9,7 @@
#include
#include
#include
+#include
#include "sqlitedb.h"
#include "NetMgr.h"
@@ -35,7 +36,7 @@ private slots:
void on_pushButton_view_clicked();
void dialogReleased();
void slotNetMgr(QString sAddr,const QVariant& msg);
-
+ void on_deleteTriggerEvent();
private:
Ui::CTriggerConfig *ui;
QString headerStr ;
diff --git a/ViewTriggerConfig.cpp b/ViewTriggerConfig.cpp
index 0cb95bb..42c1512 100644
--- a/ViewTriggerConfig.cpp
+++ b/ViewTriggerConfig.cpp
@@ -78,7 +78,7 @@ void ViewTriggerConfig::LoadTriggerConfig(const QString& strWorkCondition)
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("工况信息加载失败!"));
return;
}
- QString strWhere = QString(" WorkConditionID = %1 ").arg(m_WorkCondition[ii].SN);
+ QString strWhere = QString(" WorkConditionID = %1 and operate <> 3 ").arg(m_WorkCondition[ii].SN);
m_vecTriggerConfig.clear();
QVector().swap(m_vecTriggerConfig);
m_vecTriggerConfig = g_SqliteDB->GetTriggerConfig("t_TriggerConfig",strWhere);
@@ -155,21 +155,26 @@ void ViewTriggerConfig::on_pushButton_del_clicked()
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(" ChannelName = '%1' and WorkConditionID = %2 and Characteristic = '%3' ").arg(strChannelName).arg(m_WorkCondition[ii].SN).arg(strCharacteristic);
+ 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 ";
- iRet = g_SqliteDB->DeleteDataW(tableName,strWhere);
+ 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)
+ if(iRet == 0){
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除成功!"));
- else
+ emit deleteTriggerEvent_sg();
+ }
+ else{
QMessageBox::warning(this, QStringLiteral("警告"), QStringLiteral("删除失败!"));
+ }
LoadTriggerConfig(m_strWorkCondition);
}
diff --git a/ViewTriggerConfig.h b/ViewTriggerConfig.h
index 91ade27..6188371 100644
--- a/ViewTriggerConfig.h
+++ b/ViewTriggerConfig.h
@@ -18,7 +18,8 @@ private slots:
void on_pushButton_del_clicked();
void on_comboBox_workCondition_currentTextChanged(const QString &arg1);
-
+signals:
+ void deleteTriggerEvent_sg();
public:
explicit ViewTriggerConfig(QWidget *parent = nullptr);
~ViewTriggerConfig();
diff --git a/WaveDisplay.cpp b/WaveDisplay.cpp
index e373eb5..c610b5b 100644
--- a/WaveDisplay.cpp
+++ b/WaveDisplay.cpp
@@ -534,11 +534,7 @@ void CWaveDisPlay::on_comboBox_channel_2_currentTextChanged(const QString &arg1)
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl);
m_pNetMgr->PostJson(req,allObj);
-// id1 = startTimer(1000); //参数1 间隔 单位 毫秒
-// //定时器第二种方式
-// QTimer * timer = new QTimer(this);
-// //启动定时器
-// timer->start(500);
+
}else if(ui->pushButton_1S->isChecked()){
OneSecond = true;
QJsonObject allObj,cmdBody;
@@ -590,6 +586,39 @@ void CWaveDisPlay::timerEvent(QTimerEvent *ev)
m_Times = 0;
}
}
+ if(ev->timerId() == id2){
+ m_PackgNum = 1;
+ bFlag = false;
+ ui->widget_wave->clearGraphs();
+ ui->widget_wave->clearPlottables();
+ ui->widget_wave->replot();
+ m_WaveData = "";
+ m_ListWaveData.clear();
+ if(ui->Btn_Timewave->isChecked()){
+ OneSecond = true;
+ QJsonObject allObj,cmdBody;
+ allObj.insert("cmd", "30");
+ cmdBody.insert("package",0);
+ cmdBody.insert("channelId",m_ChannelID);
+ allObj["cmdBody"] = cmdBody;
+ QNetworkRequest req;
+ QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
+ req.setUrl(sUrl);
+ m_pNetMgr->PostJson(req,allObj);
+
+ }else if(ui->Btn_Fswave->isChecked())
+ {
+ QJsonObject allObj,cmdBody;
+ allObj.insert("cmd", "32");
+ cmdBody.insert("package",0);
+ cmdBody.insert("channelId",m_ChannelID);
+ allObj["cmdBody"] = cmdBody;
+ QNetworkRequest req;
+ QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
+ req.setUrl(sUrl);
+ m_pNetMgr->PostJson(req,allObj);
+ }
+ }
}
@@ -623,3 +652,41 @@ void CWaveDisPlay::on_pushButton_4S_clicked()
}
}
+
+void CWaveDisPlay::on_pushButton_refreshauto_clicked()
+{
+ if(ui->comboBox_channel_2->count() < 1)
+ return;
+ m_PackgNum = 1;
+ bFlag = false;
+ ui->widget_wave->clearGraphs();
+ ui->widget_wave->clearPlottables();
+ ui->widget_wave->replot();
+ m_WaveData = "";
+ m_ListWaveData.clear();
+
+ QString strChannelName = ui->comboBox_channel_2->currentText();
+ if(strChannelName == "请选择通道..."){
+ return;
+ }
+ if(ui->pushButton_4S->isChecked()){
+ QMessageBox::information(this, QStringLiteral("提示"), "请切换到1秒时域图!");
+ ui->pushButton_refreshauto->setChecked(false);
+ return;
+ }
+ if(ui->pushButton_refreshauto->isChecked()){
+ ui->pushButton_refreshauto->setText("关闭");
+ id2 = startTimer(2000); //参数1 间隔 单位 毫秒
+ //定时器第二种方式
+ QTimer * timer = new QTimer(this);
+ //启动定时器
+ timer->start(500);
+ }
+ if(!ui->pushButton_refreshauto->isChecked() && ui->pushButton_1S->isChecked()){
+ ui->pushButton_refreshauto->setText("自动刷新");
+ killTimer(id2);
+ return;
+ }
+
+}
+
diff --git a/WaveDisplay.h b/WaveDisplay.h
index fae1332..b85998e 100644
--- a/WaveDisplay.h
+++ b/WaveDisplay.h
@@ -40,6 +40,8 @@ private slots:
void on_pushButton_4S_clicked();
+ void on_pushButton_refreshauto_clicked();
+
public slots:
void mouseMoveEvent(QMouseEvent *event);
@@ -59,6 +61,7 @@ private:
QCPItemText *tracerLabel; //游标标签
int id1; //定时器1的唯一标示
+ int id2;
int m_Times;
int m_Count;
bool OneSecond;
diff --git a/WaveDisplay.ui b/WaveDisplay.ui
index 6b95980..0521444 100644
--- a/WaveDisplay.ui
+++ b/WaveDisplay.ui
@@ -6,7 +6,7 @@
0
0
- 914
+ 1170
525
@@ -426,6 +426,38 @@
+ -
+
+
+
+ 96
+ 28
+
+
+
+
+ 96
+ 28
+
+
+
+ #pushButton_refreshauto { border-image: url(:/image/Btn/normal_Btn.png);
+ color:#1f5188 }
+#pushButton_refreshauto:hover { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+#pushButton_refreshauto:pressed { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+#pushButton_refreshauto:checked { border-image: url(:/image/Btn/normal_Btn_p.png);
+ color:#ffffff}
+
+
+ 自动刷新
+
+
+ true
+
+
+
-
diff --git a/global.cpp b/global.cpp
index d2f9b47..75a853e 100644
--- a/global.cpp
+++ b/global.cpp
@@ -7,6 +7,7 @@ channelCount_t g_channelCount;
QVector<_Charateristic> g_Charateristic;
QMap g_MapChannelType;
QMap g_MapTableList;
+QMap g_mapTriggerEvent;
QString IP ;
QString MAC ;
QString g_LocalFile ;
diff --git a/global.h b/global.h
index 3fd1145..0b05818 100644
--- a/global.h
+++ b/global.h
@@ -228,6 +228,7 @@ typedef struct _TriggerConfig{
QString AlertTriggerDelay;
QString DangerTriggerDelay;
QString TriggerType;
+ int operate;
} TriggerConfig_t;
typedef struct _TriggerEvent{
@@ -412,4 +413,5 @@ extern channelCount_t g_channelCount;
extern QVector<_Charateristic> g_Charateristic;
extern QMap g_MapChannelType;
extern QMap g_MapTableList;
+extern QMap g_mapTriggerEvent;
#endif // GLOBAL_H
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 0242ca6..93c3669 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -83,8 +83,13 @@ MainWindow::MainWindow(QWidget *parent) :
//启动定时器
timer->start(500);
+ LoadTrigerConfig();
+}
+void MainWindow::LoadTrigerConfig()
+{
+ g_SqliteDB->GetTriggerConfig("t_TriggerConfig","");
}
diff --git a/mainwindow.h b/mainwindow.h
index 01a3557..757c952 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -95,6 +95,7 @@ private:
virtual void timerEvent(QTimerEvent *);
int id1; //定时器1的唯一标示
+ void LoadTrigerConfig();
};
#endif // MAINWINDOW_H
diff --git a/mainwindow.ui b/mainwindow.ui
index 064a174..c6425e6 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -7,7 +7,7 @@
0
0
678
- 732
+ 737
@@ -1549,132 +1549,126 @@ background-image: url(:/image/bj.jpg);
16777215
-
-
-
- 10
- 40
- 82
- 571
-
-
-
-
-
-
-
-
- 80
- 80
-
-
-
-
- 80
- 80
-
-
-
- 网络配置
-
-
-
- -
-
-
-
- 80
- 80
-
-
-
-
- 80
- 80
-
-
-
- 时间配置
-
-
-
- -
-
-
-
- 80
- 80
-
-
-
-
- 80
- 80
-
-
-
- 系统自检
-
-
-
- -
-
-
-
- 80
- 80
-
-
-
-
- 80
- 80
-
-
-
- 终端详情
-
-
-
- -
-
-
-
- 80
- 80
-
-
-
-
- 80
- 80
-
-
-
- 通道标定
-
-
-
- -
-
-
-
- 80
- 85
-
-
-
-
- 80
- 85
-
-
-
- 其他配置
-
-
-
-
-
+
+ -
+
+
-
+
+
+
+ 80
+ 80
+
+
+
+
+ 80
+ 80
+
+
+
+ 网络配置
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+
+ 80
+ 80
+
+
+
+ 时间配置
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+
+ 80
+ 80
+
+
+
+ 系统自检
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+
+ 80
+ 80
+
+
+
+ 终端详情
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+
+ 80
+ 80
+
+
+
+ 通道标定
+
+
+
+ -
+
+
+
+ 80
+ 85
+
+
+
+
+ 80
+ 85
+
+
+
+ 其他配置
+
+
+
+
+
+
-
diff --git a/realtimeform.cpp b/realtimeform.cpp
index ce1f3a4..ae31ab1 100644
--- a/realtimeform.cpp
+++ b/realtimeform.cpp
@@ -253,7 +253,7 @@ void CRealTimeForm::on_addchannel(channelBaseInfo channelbaseInfo,QString str)
pen.setWidth(1);
CMyCustomGraphicsItem* pItemGroup = new CMyCustomGraphicsItem();
- QGraphicsRectItem* pRect = new QGraphicsRectItem(0, 0, 280, 30);
+ QGraphicsRectItem* pRect = new QGraphicsRectItem(0, 0, 290, 30);
pRect->setBrush(QBrush(QColor(255, 255, 255)));
pRect->setPen(pen);
pRect->setPos(0, 0);
@@ -334,18 +334,18 @@ void CRealTimeForm::on_addchannel(channelBaseInfo channelbaseInfo,QString str)
pTextValue->setData(4,str);
QFont font;
- font.setPixelSize(12);
- QFont font2 ( "黑体", 14, 50);
+ font.setPixelSize(16);
+ QFont font2 ( "黑体", 18, 50);
font.setFamily(QStringLiteral("黑体"));
pTextUnits->setFont(font);
pTextUnits->setDefaultTextColor(QColor(27, 30, 35));
pTextChannel->setFont(font);
pTextValue->setFont(font2);
- pTextValue->setPos(150,3);
+ pTextValue->setPos(150,0);
pTextValue->setDefaultTextColor(QColor(31, 81, 136));
- pTextChannel->setPos(0,5);
+ pTextChannel->setPos(0,2);
pTextChannel->setDefaultTextColor(QColor(27, 30, 35));
- pTextUnits->setPos(240,6);
+ pTextUnits->setPos(240,5);
// 设置可移动、可选择
@@ -929,7 +929,7 @@ void CRealTimeForm::LoadGraphicsConfig(int type)
QGraphicsRectItem *pRect = new QGraphicsRectItem(
0,
0,
- 280, 30);
+ 290, 30);
pRect->setPos(key["x"].toDouble(), key["y"].toDouble());
if(type == 1)
pRect->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
@@ -954,8 +954,8 @@ void CRealTimeForm::LoadGraphicsConfig(int type)
pText->setTextInteractionFlags(Qt::TextEditorInteraction);
}
QFont font;
- QFont font2 ( "黑体", 14, 50);
- font.setPixelSize(12);
+ QFont font2 ( "黑体", 18, 50);
+ font.setPixelSize(16);
font.setFamily(QStringLiteral("黑体"));
pText->setFont(font);
if(key["data"].toString() == "units"){
@@ -1105,8 +1105,33 @@ void CRealTimeForm::UpdateCharacteristic(QVector<_Charateristic>& m_vecCharateri
}else{
str = QString("%1").arg(QString::number(m_vecCharateristic[i].DCValues, 'f', m_vecCharateristic[i].ChUnitDot));
}
- if(itemData2 == "平均值" && "THRUST" == m_vecCharateristic[i].channelType){
- str = QString("%1").arg(QString::number(m_vecCharateristic[i].RMSValues, 'f', m_vecCharateristic[i].ChUnitDot));
+ int flag = -1;
+ if((g_mapTriggerEvent[strChannelID].DangerOver == 1 || g_mapTriggerEvent[strChannelID].DangerUnder == 1) \
+ && itemData2 == g_mapTriggerEvent[strChannelID].Characteristic){
+ if((str.toFloat() < g_mapTriggerEvent[strChannelID].DangerUnderSetpoint.toFloat() && g_mapTriggerEvent[strChannelID].DangerUnder == 1) ||
+ (str.toFloat() > g_mapTriggerEvent[strChannelID].DangerOverSetpoint.toFloat() && g_mapTriggerEvent[strChannelID].DangerOver == 1)){
+ pGraphicTextItem->setDefaultTextColor(QColor(255, 0, 0));
+ flag = 1;
+ }
+ else{
+ pGraphicTextItem->setDefaultTextColor(QColor(31, 81, 136));
+ }
+ }
+ if((g_mapTriggerEvent[strChannelID].AlertOver == 1 || g_mapTriggerEvent[strChannelID].AlertUnder == 1) \
+ && itemData2 == g_mapTriggerEvent[strChannelID].Characteristic && flag == -1){
+ QString strLog = "警报" + str + "," + g_mapTriggerEvent[strChannelID].AlertUnderSetpoint + "," + g_mapTriggerEvent[strChannelID].AlertOverSetpoint;
+ if((str.toFloat() < g_mapTriggerEvent[strChannelID].AlertUnderSetpoint.toFloat() && g_mapTriggerEvent[strChannelID].AlertUnder == 1 \
+ && g_mapTriggerEvent[strChannelID].DangerUnder == 1 && str.toFloat() > g_mapTriggerEvent[strChannelID].DangerUnderSetpoint.toFloat()) ||\
+ (str.toFloat() > g_mapTriggerEvent[strChannelID].AlertOverSetpoint.toFloat() && g_mapTriggerEvent[strChannelID].AlertOver == 1 \
+ && g_mapTriggerEvent[strChannelID].DangerOver == 0 ) ||\
+ (str.toFloat() > g_mapTriggerEvent[strChannelID].AlertOverSetpoint.toFloat() && g_mapTriggerEvent[strChannelID].AlertOver == 1 \
+ && g_mapTriggerEvent[strChannelID].DangerOver == 1 && str.toFloat() < g_mapTriggerEvent[strChannelID].DangerOverSetpoint.toFloat())){
+ pGraphicTextItem->setDefaultTextColor(QColor(255, 165, 0));
+ }
+ else{
+ pGraphicTextItem->setDefaultTextColor(QColor(31, 81, 136));
+
+ }
}
sigRPM(RPM);
pGraphicTextItem->setPlainText(str);
@@ -1138,41 +1163,44 @@ void CRealTimeForm::ParseCharacteristic(QJsonArray& arrayValue)
QVector().swap(g_Charateristic);
_Charateristic tempCharateristic;
for (int i = 0; i < arrayValue.size(); i++) {
- tempCharateristic.Amp1x = arrayValue.at(i)["1xAmp"].toDouble();
- tempCharateristic.Phase1x = arrayValue.at(i)["1xPhase"].toDouble();
- tempCharateristic.ChannelID = arrayValue.at(i)["ChannelId"].toString();
- tempCharateristic.ChannelName = arrayValue.at(i)["ChannelName"].toString();
- tempCharateristic.CrestFactor = arrayValue.at(i)["CrestFactor"].toDouble();
- tempCharateristic.DCValues = arrayValue.at(i)["DCValues"].toDouble();
- tempCharateristic.DerivedPeak = arrayValue.at(i)["DerivedPeak"].toDouble();
- tempCharateristic.DiagnosisPeak = arrayValue.at(i)["DiagnosisPeak"].toDouble();
- tempCharateristic.DiagnosisPk2Pk = arrayValue.at(i)["DiagnosisPk2Pk"].toDouble();
+ int enable = arrayValue.at(i)["isEnable"].toDouble();
+ if(enable == 1){
+ tempCharateristic.Amp1x = arrayValue.at(i)["1xAmp"].toDouble();
+ tempCharateristic.Phase1x = arrayValue.at(i)["1xPhase"].toDouble();
+ tempCharateristic.ChannelID = arrayValue.at(i)["ChannelId"].toString();
+ tempCharateristic.ChannelName = arrayValue.at(i)["ChannelName"].toString();
+ tempCharateristic.CrestFactor = arrayValue.at(i)["CrestFactor"].toDouble();
+ tempCharateristic.DCValues = arrayValue.at(i)["DCValues"].toDouble();
+ tempCharateristic.DerivedPeak = arrayValue.at(i)["DerivedPeak"].toDouble();
+ tempCharateristic.DiagnosisPeak = arrayValue.at(i)["DiagnosisPeak"].toDouble();
+ tempCharateristic.DiagnosisPk2Pk = arrayValue.at(i)["DiagnosisPk2Pk"].toDouble();
- tempCharateristic.DirectPK = arrayValue.at(i)["DirectPK"].toDouble();
- tempCharateristic.FullScalePosition = arrayValue.at(i)["FullScalePosition"].toDouble();
- tempCharateristic.Gap = arrayValue.at(i)["Gap"].toDouble();
- tempCharateristic.IntegratPk2Pk2 = arrayValue.at(i)["IntegratPk2Pk/2"].toDouble();
- tempCharateristic.IntegratRMS = arrayValue.at(i)["IntegratRMS"].toDouble();
- tempCharateristic.MaxValues = arrayValue.at(i)["MaxValues"].toDouble();
- tempCharateristic.MinValues = arrayValue.at(i)["MinValues"].toDouble();
+ tempCharateristic.DirectPK = arrayValue.at(i)["DirectPK"].toDouble();
+ tempCharateristic.FullScalePosition = arrayValue.at(i)["FullScalePosition"].toDouble();
+ tempCharateristic.Gap = arrayValue.at(i)["Gap"].toDouble();
+ tempCharateristic.IntegratPk2Pk2 = arrayValue.at(i)["IntegratPk2Pk/2"].toDouble();
+ tempCharateristic.IntegratRMS = arrayValue.at(i)["IntegratRMS"].toDouble();
+ tempCharateristic.MaxValues = arrayValue.at(i)["MaxValues"].toDouble();
+ tempCharateristic.MinValues = arrayValue.at(i)["MinValues"].toDouble();
- tempCharateristic.MonitorPk2Pk = arrayValue.at(i)["MonitorPk2Pk"].toDouble();
- tempCharateristic.Position = arrayValue.at(i)["Position"].toDouble();
- tempCharateristic.RmsPkPk2Pk = arrayValue.at(i)["RmsPkPk2Pk"].toDouble();
- tempCharateristic.SensorEngineeringUnit = arrayValue.at(i)["SensorEngineeringUnit"].toString();
- tempCharateristic.SensorStatus = arrayValue.at(i)["SensorStatus"].toDouble();
+ tempCharateristic.MonitorPk2Pk = arrayValue.at(i)["MonitorPk2Pk"].toDouble();
+ tempCharateristic.Position = arrayValue.at(i)["Position"].toDouble();
+ tempCharateristic.RmsPkPk2Pk = arrayValue.at(i)["RmsPkPk2Pk"].toDouble();
+ tempCharateristic.SensorEngineeringUnit = arrayValue.at(i)["SensorEngineeringUnit"].toString();
+ tempCharateristic.SensorStatus = arrayValue.at(i)["SensorStatus"].toDouble();
- tempCharateristic.ZeroScalePosition = arrayValue.at(i)["ZeroScalePosition"].toDouble();
- tempCharateristic.xFullScalePosition = arrayValue.at(i)["xFullScalePosition"].toDouble();
- tempCharateristic.xProcessVariableName = arrayValue.at(i)["xProcessVariableName"].toString();
- tempCharateristic.xZeroScalePosition = arrayValue.at(i)["xZeroScalePosition"].toDouble();
- tempCharateristic.RMSValues = arrayValue.at(i)["RMSValues"].toDouble();
- tempCharateristic.speedRPM = arrayValue.at(i)["SpeedProfileSpeed"].toDouble();
- tempCharateristic.ChUnitDot = arrayValue.at(i)["ChUnitDot"].toInt();
- tempCharateristic.channelType = arrayValue.at(i)["ChannelType"].toString();
+ tempCharateristic.ZeroScalePosition = arrayValue.at(i)["ZeroScalePosition"].toDouble();
+ tempCharateristic.xFullScalePosition = arrayValue.at(i)["xFullScalePosition"].toDouble();
+ tempCharateristic.xProcessVariableName = arrayValue.at(i)["xProcessVariableName"].toString();
+ tempCharateristic.xZeroScalePosition = arrayValue.at(i)["xZeroScalePosition"].toDouble();
+ tempCharateristic.RMSValues = arrayValue.at(i)["RMSValues"].toDouble();
+ tempCharateristic.speedRPM = arrayValue.at(i)["SpeedProfileSpeed"].toDouble();
+ tempCharateristic.ChUnitDot = arrayValue.at(i)["ChUnitDot"].toInt();
+ tempCharateristic.channelType = arrayValue.at(i)["ChannelType"].toString();
- m_vecCharateristic.push_back(tempCharateristic);
- g_Charateristic.push_back(tempCharateristic);
+ m_vecCharateristic.push_back(tempCharateristic);
+ g_Charateristic.push_back(tempCharateristic);
+ }
}
UpdateCharacteristic(m_vecCharateristic);
}
diff --git a/sqlitedb.cpp b/sqlitedb.cpp
index b9c1bbc..0203be1 100644
--- a/sqlitedb.cpp
+++ b/sqlitedb.cpp
@@ -58,6 +58,21 @@ int SqliteDB::OpenDataBase()
strSql = "ALTER TABLE t_ChannelSetting ADD COLUMN 'firstPoleNum' text";
ExeSqlData(strSql);
}
+ strSql = QString("select count(*) from %1 where name = '%2' and sql LIKE '%%3%' ")\
+ .arg("sqlite_master").arg("t_TriggerConfig").arg("operate");
+ iRet = ExeSqlData(strSql);
+ if(iRet == 0){
+ strSql = "ALTER TABLE t_TriggerConfig ADD COLUMN 'operate' integer";
+ ExeSqlData(strSql);
+ }
+// strSql = QString("select count(*) from %1 where name = '%2' and sql LIKE '%%3%' ")\
+// .arg("sqlite_master").arg("t_WorkCondition").arg("operate");
+// iRet = ExeSqlData(strSql);
+// if(iRet == 0){
+// strSql = "ALTER TABLE t_WorkCondition ADD COLUMN 'operate' integer";
+// ExeSqlData(strSql);
+// }
+
return 0;
}
}
@@ -408,7 +423,9 @@ SqliteDB::GetTriggerConfig(QString tablename,QString whereCon)
tempTriggerConfig.AlertTriggerDelay = sql_query.value(15).toString();
tempTriggerConfig.DangerTriggerDelay = sql_query.value(16).toString();
tempTriggerConfig.TriggerType = sql_query.value(17).toString();
+ tempTriggerConfig.operate = sql_query.value(18).toInt();
vecResult.append(tempTriggerConfig);
+ g_mapTriggerEvent[tempTriggerConfig.ChannelID] = tempTriggerConfig;
}
}
return vecResult;