调整开车时间
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user