使用定时器的方式做超时,,但是失效,不起作用
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
void SendMessageTo(uint8_t ch, uint8_t *data,uint16_t len)
|
||||
{
|
||||
|
||||
qDebug() << data;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,11 +16,7 @@ void SendMessageTo(uint8_t ch, uint8_t *data,uint16_t len)
|
||||
|
||||
MissionProcess::MissionProcess(QObject *parent) : QObject(parent)
|
||||
{
|
||||
if(!mTimer)
|
||||
{
|
||||
mTimer = new QTimer;
|
||||
connect(mTimer,&QTimer::timeout,this,&MissionProcess::mTimerOut);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void MissionProcess::mTimerOut()
|
||||
@@ -31,15 +27,26 @@ void MissionProcess::mTimerOut()
|
||||
|
||||
void MissionProcess::mTimerReset(int time)
|
||||
{
|
||||
if(mTimer)
|
||||
mTimer->start(time);
|
||||
if(MissionProcess::mTimer != nullptr)
|
||||
{
|
||||
//mTimer->start(time);
|
||||
|
||||
MissionProcess::mTimer->start(time);
|
||||
|
||||
if(MissionProcess::mTimer->isActive())
|
||||
{
|
||||
qDebug() << "start timer";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
ismTimerTimeOut = false;
|
||||
}
|
||||
|
||||
void MissionProcess::mTimerStop()
|
||||
{
|
||||
if(mTimer)
|
||||
mTimer->stop();
|
||||
if(MissionProcess::mTimer != nullptr)
|
||||
MissionProcess::mTimer->stop();
|
||||
}
|
||||
|
||||
void MissionProcess::setRunFrq(uint32_t frq)
|
||||
@@ -53,6 +60,9 @@ void MissionProcess::setRunFrq(uint32_t frq)
|
||||
|
||||
void MissionProcess::start()
|
||||
{
|
||||
|
||||
qDebug() << QThread::currentThreadId();
|
||||
|
||||
if(Missionthread == nullptr)
|
||||
{
|
||||
Missionthread = new QThread();
|
||||
@@ -65,6 +75,9 @@ void MissionProcess::start()
|
||||
running_flag = true;
|
||||
Missionthread->start();
|
||||
qDebug() << "thread start" << running_flag;
|
||||
|
||||
|
||||
qDebug() << QThread::currentThreadId();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -89,7 +102,11 @@ void MissionProcess::process()//线程函数
|
||||
{
|
||||
uint8_t count = 0;
|
||||
|
||||
|
||||
if(!MissionProcess::mTimer)
|
||||
{
|
||||
MissionProcess::mTimer = new QTimer;
|
||||
connect(MissionProcess::mTimer,&QTimer::timeout,this,&MissionProcess::mTimerOut);
|
||||
}
|
||||
|
||||
while (running_flag)
|
||||
{
|
||||
@@ -105,7 +122,6 @@ void MissionProcess::process()//线程函数
|
||||
{
|
||||
WriteStateMachine();
|
||||
}
|
||||
|
||||
}
|
||||
//退出线程
|
||||
Missionthread->quit();
|
||||
@@ -170,13 +186,15 @@ void MissionProcess::ReadStateMachine(void)
|
||||
if(step == 0)
|
||||
{
|
||||
request_list();//请求读取某一个设备的航线
|
||||
mTimerReset(1000);//1秒,如果超时,那么重新发送一次指令
|
||||
//mTimerReset(1000);//1秒,如果超时,那么重新发送一次指令
|
||||
|
||||
QTimer::singleShot(1000,this, &MissionProcess::mTimerOut);
|
||||
|
||||
step++;//下一个阶段
|
||||
}
|
||||
else if(step == 1)//等待收到Count
|
||||
{
|
||||
//如果超时,那么重新发一次指令
|
||||
|
||||
if(ismTimerTimeOut)
|
||||
{
|
||||
step = 1;
|
||||
|
||||
Reference in New Issue
Block a user