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