QT时间差计算的两种方法
#include <qdatetime.h>
#include <windows.h>
提供两种方法,直接贴出代码供参考,主要用到函数secsTo,toTIme_t():
QDateTime startTime = QDateTime::currentDateTime();
Sleep(5000);
QDateTime endTime = QDateTime::currentDateTime();
qint64 intervalTime = startTime.secsTo(endTime); //求时间差
qint64 intervalTimeMS = startTime.msecsTo(endTime);
qDebug() << intervalTime; //时间相差秒数
qDebug() << intervalTimeMS; //时间相差毫秒数
//第二种方法
qint64 intervalTime2 = endTime.toTime_t() - startTime.toTime_t();
QString interval2 = tr("%1").arg(intervalTime2);
qDebug() << interval2; //时间相差秒数
可通过时间差,判断通信是否建立
PART1:
connect(serial,&QSerialPort::readyRead,this,&MainWindow::serialRead);
PART2:
void MainWindow::serialRead()
{
wirelessTime = QTime::currentTime;
}
PART3:
if(wirelessTime.msecsTo(currentTime) > 3000)
{
wirelessConnected = false;
//resetAuvSerialControl();
}else{
wirelessConnected = true;
}