Преглед изворни кода

change ivdiagnosis for show. and add ivlog.ini for set log level.

yuchuli пре 3 година
родитељ
комит
fb33e86278

+ 2 - 0
src/common/ivlog/ivlog.ini

@@ -0,0 +1,2 @@
+[setting]
+level=3

+ 41 - 3
src/common/ivlog/ivlog_impl.cpp

@@ -2,6 +2,26 @@
 
 ivlog_impl::ivlog_impl(const char * strmodulename)
 {
+
+    QSettings * configini = new QSettings("ivlog.ini",QSettings::IniFormat);
+
+    QString strlevel = configini->value("setting/level").toString();
+
+    if(strlevel == "")
+    {
+        mnMinLevel = 0;
+    }
+    else
+    {
+        mnMinLevel = strlevel.toInt();
+        if(mnMinLevel<0)mnMinLevel = 0;
+    }
+
+    qDebug("log level is %d",mnMinLevel);
+
+    delete configini;
+
+
     strncpy(mstrmodulename,strmodulename,255);
     mpid = getpid();
     mmsg = QDBusMessage::createSignal("/catarc/adc",  "adciv.interface", "ivlog");
@@ -24,26 +44,31 @@ ivlog_impl::~ivlog_impl()
 
 void ivlog_impl::verbose(const char *str,const char * strtag)
 {
+    if(mnMinLevel>0)return;
     setlog(iv::log::logdata_LOGCLASS_VERBOSE,str,strtag);
 }
 
 void ivlog_impl::debug(const char *str,const char * strtag)
 {
+    if(mnMinLevel>1)return;
     setlog(iv::log::logdata_LOGCLASS_DEBUG,str,strtag);
 }
 
 void ivlog_impl::info(const char *str,const char * strtag)
 {
+    if(mnMinLevel>2)return;
     setlog(iv::log::logdata_LOGCLASS_INFO,str,strtag);
 }
 
 void ivlog_impl::warn(const char *str,const char * strtag)
 {
+    if(mnMinLevel>3)return;
     setlog(iv::log::logdata_LOGCLASS_WARN,str,strtag);
 }
 
 void ivlog_impl::error(const char *str,const char * strtag)
 {
+    if(mnMinLevel>4)return;
     setlog(iv::log::logdata_LOGCLASS_ERROR,str,strtag);
 }
 
@@ -56,11 +81,23 @@ inline void ivlog_impl::setlog(iv::log::logdata_LOGCLASS logclass, const char *l
     log.set_modulename(mstrmodulename,strnlen(mstrmodulename,255));
     log.set_pid(mpid);
     if(strtag != 0)log.set_logtag(strtag,strnlen(strtag,256));
-    mMutexVector.lock();
-    mvectorlog.push_back(log);
-    mMutexVector.unlock();
     int logxc = (int)logclass;
     int logrealmin = (int)iv::log::logdata_LOGCLASS_WARN;
+    mMutexVector.lock();
+    if(mvectorlog.size()<1000)
+    {
+        mvectorlog.push_back(log);
+    }
+    else
+    {
+        if(mvectorlog.size()<2000)
+        {
+            if(logxc >= logrealmin) mvectorlog.push_back(log);
+        }
+    }
+    mMutexVector.unlock();
+
+
     if(logxc >= logrealmin)
     {
         mwc.wakeAll();
@@ -133,6 +170,7 @@ void ivlog_impl::run()
         mMutexVector.unlock();
         if(xvectorlog.size() > 0)
         {
+//            qDebug("write log");
             writelog(xvectorlog);
         }
     }

+ 3 - 0
src/common/ivlog/ivlog_impl.h

@@ -11,6 +11,7 @@
 #include <vector>
 #include <memory>
 #include <iostream>
+#include <QSettings>
 
 #include <unistd.h>
 
@@ -43,6 +44,8 @@ private:
     std::vector<iv::log::logdata> mvectorlog;
     QMutex mMutexVector;
     int writelog(std::vector<iv::log::logdata>xvectorlog);
+
+    int mnMinLevel = 0;
 };
 
 #endif // IVLOG_IMPL_H

+ 4 - 0
src/tool/IVSysMan/mainwindow.cpp

@@ -221,6 +221,10 @@ void MainWindow::onProcessEnd(ProgUnit *pu)
 
 void MainWindow::onTimerState()
 {
+//    qDebug("log");
+//    int i;
+//    for(i=0;i<10000;i++)
+//        ivlog->warn("test","adfassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssadfsadgfgsdfagafdaf");
     mpCV->UpdateState();
 }
 

+ 1 - 0
src/tool/IVSysMan/progmon.cpp

@@ -207,6 +207,7 @@ void ProgMon::onProcessStarted()
 
 //add tjc
 void ProgMon::onProcessErrorStarted(QProcess::ProcessError error){
+    qDebug("Process Error Started.");
     std::string desc;
     int code;
     QProcess * proc = (QProcess*)sender();

+ 48 - 33
src/tool/ivdiagnosis/mainwindow.cpp

@@ -27,25 +27,27 @@ MainWindow::MainWindow(QWidget *parent) :
 
     qDebug("connect is %d",bconnect);
 
-    QWidget * px = new QWidget();
+//    QWidget * px = new QWidget();
 
-    mnFontHeight = px->fontMetrics().height();
+//    mnFontHeight = px->fontMetrics().height();
 
-    if(gvecmodule.size()<= 20)
-        px->setGeometry(0,0,80*mnFontHeight,45*mnFontHeight);
-    else
-        px->setGeometry(0,0,(1+gvecmodule.size()/4) * 8 *mnFontHeight,45*mnFontHeight);
+//    if(gvecmodule.size()<= 20)
+//        px->setGeometry(0,0,80*mnFontHeight,45*mnFontHeight);
+//    else
+//        px->setGeometry(0,0,(1+gvecmodule.size()/4) * 8 *mnFontHeight,45*mnFontHeight);
 
-    mpScroll = new QScrollArea(ui->centralWidget);
-    mpScroll->setWidget(px);
+//    mpScroll = new QScrollArea(ui->centralWidget);
+//    mpScroll->setWidget(px);
 
-    mpMainWidget = px;
+//    mpMainWidget = px;
 
-    CreateView();
+//    CreateView();
 
     QTimer * timer = new QTimer();
     connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
-    timer->start(100);
+    mpTimer = timer;
+
+//    timer->start(100);
 
 
 
@@ -58,9 +60,11 @@ MainWindow::~MainWindow()
 
 void MainWindow::resizeEvent(QResizeEvent *event)
 {
-//    qDebug("resize");
+    qDebug("resize");
     QSize sizemain = ui->centralWidget->size();
-    mpScroll->setGeometry(0,0,sizemain.width(),sizemain.height());
+    qDebug("size x = %d y=%d",sizemain.width(),sizemain.height());
+
+    ui->plainTextEdit_DiagnosisRes->setGeometry(50,90,sizemain.width()-100,sizemain.height()-150);
 
 }
 
@@ -117,6 +121,9 @@ void MainWindow::onFaultDiagnosis(QByteArray ba)
 {
 //    qDebug("len is %d ",ba.length());
 
+
+
+
     iv::fault::faultstate xfault;
     if(!xfault.ParseFromArray(ba.data(),ba.length()))
     {
@@ -124,6 +131,10 @@ void MainWindow::onFaultDiagnosis(QByteArray ba)
         return;
     }
 
+    mvectorfault.push_back(xfault);
+
+    return;
+
     int i;
     char strout[256];
     for(i=0;i<gvecmodule.size();i++)
@@ -165,27 +176,31 @@ void MainWindow::onFaultDiagnosis(QByteArray ba)
 
 void MainWindow::onTimer()
 {
-    QDBusConnection::sessionBus().send(mmsg);
 
-    int i;
-    char strout[256];
-    for(i=0;i<gvecmodule.size();i++)
+    char strline[1000];
+    unsigned int i;
+    ui->plainTextEdit_DiagnosisRes->clear();
+    for(i=0;i<mvectorfault.size();i++)
     {
-        qint64 nTime = QDateTime::currentMSecsSinceEpoch();
-        if((nTime - gvecmodule[i].mnLastUpdateTime)>1000)
-        {
-            if((gvecmodule[i].mnOldFaultClass == -1)&&(gvecmodule[i].mnOldFaultNum == -1))
-            {
-
-            }
-            else
-            {
-                snprintf(strout,255,"%d\n%s",-1,"无反馈");
-                gvecmodule[i].mTE->setText(strout);
-                gvecmodule[i].mTE->setStyleSheet(sheet_nores);
-                gvecmodule[i].mnOldFaultClass = -1;
-                gvecmodule[i].mnOldFaultNum = -1;
-            }
-        }
+        snprintf(strline,1000,"%s Fault State: %d  Fault Num:%d Fault Info:%s",
+                 mvectorfault[i].modulename().data(),mvectorfault[i].faultclass(), mvectorfault[i].faultnum(),
+                 mvectorfault[i].faultdesc().data());
+        ui->plainTextEdit_DiagnosisRes->appendPlainText(strline);
     }
+
+    mpTimer->stop();
+    ui->pushButton_Diagnosis->setEnabled(true);
+    return;
+
+
+}
+
+
+
+void MainWindow::on_pushButton_Diagnosis_clicked()
+{
+    mvectorfault.clear();
+    QDBusConnection::sessionBus().send(mmsg);
+    ui->pushButton_Diagnosis->setEnabled(false);
+    mpTimer->start(3000);
 }

+ 9 - 0
src/tool/ivdiagnosis/mainwindow.h

@@ -51,12 +51,21 @@ private:
     iv::fault::faultstate mFaultState;
     QMutex mMutex;
 
+
+
 private slots:
     void onFaultDiagnosis(QByteArray ba);
     void onTimer();
 
+    void on_pushButton_Diagnosis_clicked();
+
 private:
     void CreateView();
+
+private:
+    std::vector<iv::fault::faultstate> mvectorfault;
+
+    QTimer * mpTimer;
 };
 
 #endif // MAINWINDOW_H

+ 25 - 1
src/tool/ivdiagnosis/mainwindow.ui

@@ -13,7 +13,31 @@
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
-  <widget class="QWidget" name="centralWidget"/>
+  <widget class="QWidget" name="centralWidget">
+   <widget class="QPushButton" name="pushButton_Diagnosis">
+    <property name="geometry">
+     <rect>
+      <x>50</x>
+      <y>20</y>
+      <width>201</width>
+      <height>51</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Diagnosis</string>
+    </property>
+   </widget>
+   <widget class="QPlainTextEdit" name="plainTextEdit_DiagnosisRes">
+    <property name="geometry">
+     <rect>
+      <x>50</x>
+      <y>90</y>
+      <width>691</width>
+      <height>421</height>
+     </rect>
+    </property>
+   </widget>
+  </widget>
   <widget class="QMenuBar" name="menuBar">
    <property name="geometry">
     <rect>