#include "util.h" Util::Util(QObject *parent) : QObject(parent) { isRequiringOutput=false; requiredOutput=new QString(); timeStamp=QTime::currentTime(); } void Util::processOutput(QString output) { qDebug()<<"Util::processOutput:" << output; if(isRequiringOutput) { requiredOutput->append(output); timeStamp=QTime::currentTime(); } emit refreshOutput(output); } void Util::execCMD(QString cmd) { qDebug() << cmd; emit write(cmd + "\r\n"); } QString Util::execCMDWithOutput(QString cmd, unsigned long timeout) { QTime currTime=QTime::currentTime(); QTime targetTime = QTime::currentTime().addMSecs(timeout); isRequiringOutput=true; requiredOutput->clear(); execCMD(cmd); while( QTime::currentTime() < targetTime) { QApplication::processEvents(); if(timeStamp>currTime) { currTime=timeStamp; targetTime=timeStamp.addMSecs(timeout); } } isRequiringOutput=false; return *requiredOutput; } void Util::delay(unsigned int msec) { QTime timer = QTime::currentTime().addMSecs(msec); while( QTime::currentTime() < timer ) QApplication::processEvents(QEventLoop::AllEvents, 100); }