Sfoglia il codice sorgente

change common.pri add QT_NO_DEBUG_OUTPUT. and change IVSysMan.

yuchuli 3 anni fa
parent
commit
4751349e07

+ 5 - 0
include/common.pri

@@ -44,4 +44,9 @@ if(contains(DEFINES,USE_FASTRTPS)){
 LIBS +=  -lfastcdr -lfastrtps -ltinyxml2
 }
 
+CONFIG(release,debug|release){
+    DEFINES += QT_NO_WARNING_OUTPUT
+    DEFINES += QT_NO_DEBUG_OUTPUT
+}
+
 

+ 3 - 3
src/tool/IVSysMan/mainwindow.cpp

@@ -148,13 +148,13 @@ MainWindow::~MainWindow()
 #ifdef QT_DEBUG
     iv::ivexit::ExecIVExitCmd(mpivexit,"adcivexit-test");   // test iv exit code. can comment this line.
 #endif
-
-    QThread::msleep(1000);
     
     mPM->requestInterruption();
+
+    QThread::msleep(1000);
+
     qint64 time;
     time = QDateTime::currentMSecsSinceEpoch();
-    mPM->requestInterruption();
     gbOneThreadRun = false;
     while((QDateTime::currentMSecsSinceEpoch() - time)<1500)
     {

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

@@ -233,6 +233,20 @@ void ProgMon::onProcessErrorStarted(QProcess::ProcessError error){
 }
 
 
+void ProgMon::onReadStandardOutput()
+{
+    QProcess * proc = (QProcess *)sender();
+    QByteArray ba = proc->readAll();
+    qDebug("process out: %s ",ba.data());
+}
+
+void ProgMon::onReadStandardError()
+{
+    QProcess * proc = (QProcess *)sender();
+    QByteArray ba = proc->readAll();
+    qDebug("process error: %s ",ba.data());
+}
+
 void ProgMon::onProcessEnd()
 {
     qDebug("process end.");
@@ -299,7 +313,11 @@ void ProgMon::onProcessEnd()
 
 void ProgMon::onChRead()
 {
+    QProcess * proc = (QProcess *)sender();
+    QByteArray ba = proc->readAll();
+//    qDebug("process INFO: %s ",ba.data());
 
+//    qDebug("read chanel count is :%d ",proc->readChannelCount());
 }
 
 void ProgMon::restartProc(ProgUnit *pu){
@@ -376,6 +394,8 @@ void ProgMon::StopProc(std::string strappname, std::string strargs)
     StopProc(pu);
 }
 
+
+
 void ProgMon::StartProc(ProgUnit *pu)
 {
     if(pu->mbRun)
@@ -385,12 +405,15 @@ void ProgMon::StartProc(ProgUnit *pu)
     }
     pu->mProcess = new QProcess(this);
 
+
     connect(pu->mProcess,SIGNAL(started()),this,SLOT(onProcessStarted()));
     connect(pu->mProcess,SIGNAL(finished(int)),this,SLOT(onProcessEnd()));
     connect(pu->mProcess,SIGNAL(readyRead()),this,SLOT(onChRead()));
+ //   connect(pu->mProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(onReadStandardOutput()));
 
 
     connect(pu->mProcess,SIGNAL(error(QProcess::ProcessError)),this,SLOT(onProcessErrorStarted(QProcess::ProcessError)));
+//    connect(pu->mProcess,SIGNAL(readyReadStandardError()),this,SLOT(onReadStandardError()));
 
 
     pu->mProcess->start(pu->strcmd.data());
@@ -511,16 +534,29 @@ bool ProgMon::checkStartState(ProgUnit *pu){
 
 void ProgMon::run()
 {
+    qint64 interval = 1000;
+    qint64 nLastUpdate = 0;
     while(!QThread::isInterruptionRequested())
     {
+        qint64 nNow = QDateTime::currentMSecsSinceEpoch();
+        if((nNow - nLastUpdate)< interval)
+        {
+            msleep(100);
+            continue;
+        }
+        nLastUpdate = nNow;
         int i;
         mMutex.lock();
         for(i=0;i<mvectorprog.size();i++)
         {
             mvectorprog[i].UpdateResState();
+            if(QThread::isInterruptionRequested())
+            {
+                break;
+            }
         }
         mMutex.unlock();
-        msleep(1000);
+
     }
 }
 

+ 4 - 0
src/tool/IVSysMan/progmon.h

@@ -34,6 +34,10 @@ private slots:
     void onProcessErrorStarted(QProcess::ProcessError error);
     //test
     void StopProcTest();
+
+    void onReadStandardOutput();
+    void onReadStandardError();
+
 public slots:
     bool onCheckExit(ProgUnit * pu);