如题
buffer = socket->readAll();
anticollision(buffer,carArray);//数据转换
if(learnFlag)
{
ui->textEdit_recv->setText("开始预警");
if(ui->LeftButton->isChecked()==true)
earlyWarningLeft(carArray,border); //判断数据是否不符合规定
else
if(ui->RigthButton->isChecked()==true)
earlyWarningRight(carArray,border);//判断数据是否不符合规定
}
void earlyWarningLeft(carData carArray[64],int border[64])
{
for(int i=0;i<64;i++)
if(border[i]<carArray[i].x)
warming();
}
如上列,想让warming()函数5秒才报一次警,但是上面的接收函数正常运行该这么办?使用sleep()又会导致整个程序阻塞
QTimer *m_timer = new QTimer(this);
connect(m_timer, SIGNAL(timeout()), this, SLOT(warming()));
m_timer->start(1*1000*5); //every 5 seconds ,每5秒调用一次
定时器。可参考:https://blog.csdn.net/qq_28877125/article/details/88389559
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html