|
@@ -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);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|