|
|
@@ -2,6 +2,7 @@
|
|
|
#include "ui_mainwidget.h"
|
|
|
#include <QDateTime>
|
|
|
#include "global.h"
|
|
|
+#include "pdu_ctrl.h"
|
|
|
#define MaxStack 3
|
|
|
|
|
|
const QString strName[]={
|
|
|
@@ -13,6 +14,7 @@ MainWidget::MainWidget(QWidget *parent) :
|
|
|
{
|
|
|
ui->setupUi(this);
|
|
|
InitWidget();
|
|
|
+ nTimerIndex=4;
|
|
|
}
|
|
|
|
|
|
MainWidget::~MainWidget()
|
|
|
@@ -43,6 +45,9 @@ void MainWidget::InitWidget()
|
|
|
bgrImage = rgbImage.rgbSwapped();
|
|
|
ui->label_14->setPixmap(QPixmap::fromImage(bgrImage));
|
|
|
|
|
|
+ ui->label_12->hide();
|
|
|
+ ui->label_ErrorNum->hide();
|
|
|
+
|
|
|
m_pTimer=new QTimer(this);
|
|
|
connect(m_pTimer,SIGNAL(timeout()),this,SLOT(slot_TimerUpdate()));
|
|
|
m_pTimer->start(1000);
|
|
|
@@ -63,6 +68,31 @@ void MainWidget::InitWidget()
|
|
|
|
|
|
}
|
|
|
|
|
|
+int MainWidget::UpdateLogData(int Status,int Status2,int Status3)
|
|
|
+{
|
|
|
+ QSqlQuery query(pdu_Ctrl::instance()->getDB());
|
|
|
+ QDateTime pdateTime=QDateTime::currentDateTime();
|
|
|
+ QString strBegin = pdateTime.toString("yyyy-MM-dd ")+"00:00:00";
|
|
|
+ QString strEnd=pdateTime.toString("yyyy-MM-dd ")+"23:59:59";
|
|
|
+ QString strExec=QString("SELECT COUNT(*) FROM Table_AlarmManage WHERE (alarmDate BETWEEN '%1' AND '%2') and (alarmType=%3 ").arg(strBegin).arg(strEnd).arg(Status);
|
|
|
+
|
|
|
+ if(Status2>=0)
|
|
|
+ {
|
|
|
+ strExec.append(QString(" or alarmType=%1 ").arg(Status2));
|
|
|
+ }
|
|
|
+ if(Status3)
|
|
|
+ {
|
|
|
+ strExec.append(QString(" or alarmType=%1 ").arg(Status3));
|
|
|
+ }
|
|
|
+ strExec.append(");");
|
|
|
+ //qDebug()<<strExec;
|
|
|
+ if (query.exec(strExec) && query.next()) {
|
|
|
+ int totalRecords = query.value(0).toInt();
|
|
|
+ return totalRecords;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
void MainWidget::UpdateTemp(QString strT, QString strH)
|
|
|
{
|
|
|
ui->label_Temp->setText(strT);
|
|
|
@@ -70,6 +100,58 @@ void MainWidget::UpdateTemp(QString strT, QString strH)
|
|
|
|
|
|
update();
|
|
|
}
|
|
|
+QString formatNumber(int num) {
|
|
|
+ // 边界条件处理
|
|
|
+ int adjustedNum = num;
|
|
|
+ if (num < 0) {
|
|
|
+ adjustedNum = 0; // 负数强制为0 → 后续补零为"000"
|
|
|
+ } else if (num >= 1000) {
|
|
|
+ adjustedNum = 999; // 超过1000强制为999
|
|
|
+ }
|
|
|
+
|
|
|
+ // 补零至3位
|
|
|
+ return QString("%1").arg(adjustedNum, 3, 10, QChar('0'));
|
|
|
+}
|
|
|
+void MainWidget::UpdateLogCount()
|
|
|
+{
|
|
|
+ //Warinning;
|
|
|
+ int nWarinningData=UpdateLogData(ALARM_TYPE_POWER,ALARM_TYPE_SENSOR,ALARM_TYPE_NETWORK);
|
|
|
+
|
|
|
+ //Log;
|
|
|
+ int nLogData=UpdateLogData(ALARM_TYPE_RUNNING,ALARM_TYPE_OPRATION);
|
|
|
+
|
|
|
+ QString strShow="000";
|
|
|
+ ui->label_WarningNum->setText(formatNumber(nWarinningData));
|
|
|
+ ui->label_CtrlNum->setText(formatNumber(nLogData));
|
|
|
+}
|
|
|
+
|
|
|
+void MainWidget::UpdateIP()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+QString MainWidget::getSysIP()
|
|
|
+{
|
|
|
+ QProcess process;
|
|
|
+ QString program = "ip"; // 或者 "ifconfig"
|
|
|
+ QStringList arguments;
|
|
|
+ if (program == "ip") {
|
|
|
+ arguments << "addr" << "show" << "eth0";
|
|
|
+ } else if (program == "ifconfig") {
|
|
|
+ arguments << "eth0";
|
|
|
+ }
|
|
|
+ process.start(program, arguments);
|
|
|
+ process.waitForFinished();
|
|
|
+
|
|
|
+ QString output = process.readAllStandardOutput();
|
|
|
+ QRegExp ipRegex("\\binet (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})/\\d{1,2}\\b");
|
|
|
+
|
|
|
+ int pos = 0;
|
|
|
+ while ((pos = ipRegex.indexIn(output, pos)) != -1) {
|
|
|
+ return ipRegex.cap(1);
|
|
|
+ }
|
|
|
+ return ""; // 没有找到IP地址
|
|
|
+}
|
|
|
|
|
|
void MainWidget::slot_TimerUpdate()
|
|
|
{
|
|
|
@@ -81,6 +163,8 @@ void MainWidget::slot_TimerUpdate()
|
|
|
ui->label_Date->setText(strDate);
|
|
|
ui->label_Time->setText(strTime);
|
|
|
}
|
|
|
+ QString strIP=getSysIP();
|
|
|
+ ui->label_IP->setText(strIP);
|
|
|
slot_UpdateData();
|
|
|
}
|
|
|
|
|
|
@@ -132,6 +216,24 @@ void MainWidget::slot_SwitchWnd(int nIndex)
|
|
|
|
|
|
void MainWidget::slot_UpdateData()
|
|
|
{
|
|
|
+ if(nTimerIndex>4)
|
|
|
+ {
|
|
|
+ nTimerIndex=0;
|
|
|
+ UpdateLogCount();
|
|
|
+
|
|
|
+ if(m_pThreshold&&ui->stackedWidget->currentWidget()==m_pThreshold)
|
|
|
+ {
|
|
|
+ m_pThreshold->ReadSqlData();
|
|
|
+ }else if(m_pLogWidget&&ui->stackedWidget->currentWidget()==m_pLogWidget)
|
|
|
+ {
|
|
|
+ m_pLogWidget->UpdateLog();
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ nTimerIndex++;
|
|
|
+ }
|
|
|
+ //qDebug()<<"m_pHome="<<m_pHome<<"m_pCH="<<m_pCH<<"m_pThreshold="<<m_pThreshold;
|
|
|
+ //qDebug()<<"ui->stackedWidget->currentWidget()="<<ui->stackedWidget->currentWidget();
|
|
|
if(m_pHome&&ui->stackedWidget->currentWidget()==m_pHome)
|
|
|
{
|
|
|
m_pHome->UpdateCHData();
|
|
|
@@ -145,4 +247,5 @@ void MainWidget::slot_UpdateData()
|
|
|
m_pThreshold->UpdateTreshold();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|