调整开车时间

This commit is contained in:
hm
2022-08-16 13:11:25 +08:00
parent 0592338ad7
commit 6c66903422
2 changed files with 26 additions and 78 deletions
+24 -73
View File
@@ -143,20 +143,15 @@ PowerSystem::PowerSystem(QWidget *parent) :
ScopeAlt->setGeometry(0,0,ui->frame_Alt->width(),ui->frame_Alt->height());
ScopeMa->setGeometry(0,0,ui->frame_Ma->width(),ui->frame_Ma->height());
//设置开车时间
time2 = QTime(0, 0);
connect(&timer2, &QTimer::timeout,
this, [this]()
{
time2.addSecs(1);
});
time = QTime(0, 0);
connect(&timer, &QTimer::timeout,
this, [this]()
this, [=]()
{
time.addSecs(1);
time = time.addSecs(1);
// qDebug() << time;
ui->label_13->setText(time.toString("hh:mm:ss") );
} );
});
}
PowerSystem::~PowerSystem()
@@ -305,80 +300,36 @@ void PowerSystem::setTurbineState(mavlink_turbinestate_t *t)
setValue(ui->label_P5t,QString::number(t->P5t,'f',1));
setValue(ui->label_RPM_mea,QString::number(t->RPM_mea,'f',0));
TimeRPM timeRPM;
timeRPM.time = QDateTime::currentDateTime();
timeRPM.rpm = t->RPM_mea;
if(!timer2.isActive() )
// static quint64 StartTime = QDateTime::currentMSecsSinceEpoch();;
static quint64 timeRPM = QDateTime::currentMSecsSinceEpoch();;
static bool isStartTime = false;
if(t->RPM_mea >= 10000)
{
timer2.start(1000);
}
if(time2.second() >= 3)
{
if(timer2.isActive() )
if((QDateTime::currentMSecsSinceEpoch() - timeRPM) > 3000)//3s
{
timer2.stop();
}
int lastPreNum;
if(t->RPM_mea < 10000 && isTiming == true) //如果当前转速小于10000,并且当前正在计时
{
for(int i = rpmList.size() - 1; i >= 0; --i)
{
if( (rpmList[i].time.secsTo(timeRPM.time) ) < 3) //对比3秒之内的转速
{
isTiming = false; //如果3秒内的转速都小于10000转,停止计时
if(rpmList[i].rpm >= 10000)
{
isTiming = true;
break;
}
}
else
{
lastPreNum = i;
break;
}
if(!isTiming)
{
timer.stop(); //停止计时
time = QTime(0, 0);
}
}
}
else if(t->RPM_mea >= 10000 && isTiming == false) //如果当前转速大于10000转,并且当前没有计时
{
for(int i = rpmList.size() - 1; i >= 0; --i)
{
if( (rpmList[i].time.secsTo(timeRPM.time) ) < 3) //对比3秒之内的转速
{
isTiming = true; //如果3秒内的转速都大于等于10000,开始计时
if(rpmList[i].rpm < 10000)
{
isTiming = false;
}
}
else
{
lastPreNum = i;
break;
}
}
if(isTiming) //启动计时
if(!isStartTime)
{
isStartTime = true;
timer.start(1000);
// StartTime = QDateTime::currentMSecsSinceEpoch();
}
}
for(int i = 0; i < lastPreNum; ++i) //3秒之外的转速删掉
}
else
{
isStartTime = false;
timeRPM = QDateTime::currentMSecsSinceEpoch();
if(timer.isActive() )
{
rpmList.removeFirst();
timer.stop();
time = QTime(0, 0);
}
}
rpmList.push_back(timeRPM); //把当前的数据添加到列表中
setValue(ui->label_T5,QString::number(t->T5 * 0.1 - 273.15,'f',1));
+2 -5
View File
@@ -81,12 +81,9 @@ public slots:
private:
QTimer timer2;//刚开始接收数据的那3秒
QTime time2;
bool isTiming = false;
QTimer timer2;
QTimer timer;
QTime time;
QList<TimeRPM> rpmList;
QTime time = QTime(0, 0);
QHash<int,QString> cmdList;
QWidget *m_parent;