嗨,我有一个格式如下的文件,我试图每 10 毫秒从雷达(接近机场)计算飞机的位置。
位置_X
位置_Y
标题
速度
t1
t2 w1
t3 w2
t4
其中 w1, w2 = 转弯率
在这种情况下 {t1, t2, t3, t4} = 200secs ~ 200000 ms
每 10 毫秒评估一次位置
这就是我的处理方式:
// defined in Plane.h
QElapsedTimer t;
QTimer timer;
// Plane.cpp
Plane::Plane : timer() {
QObject::connect(&timer, SIGNAL(timeout()), this, SLOT(computePosition()));
timer.start(10);
t.start();
}
void Plane::computePosition()
{
if (!t.hasExpired(t1)
{
//do
}
if (t.hasExpired(t2) || t.hasExpired(t3))
{
//do
}
if (t.hasExpired(t3) || t.hasExpired(t4))
{
// do
}
if (t.hasExpired(t5))
{
// do
}
if(t.hasExpired(t5 + 100))
timer.stop();
qDebug() << QDateTime::currentMSecsSinceEpoch()<< t.elapsed()
<< Position_X << Position_Y;
}
我无法将系统时间与经过时间或条件时间相匹配。计时器间隔率为 10 毫秒,但在调试中我看到它在 15-40 秒之间变化。而且进场时间是 200 毫秒,但是使用经过的计时器来评估位置会将平面矩阵推出机场。
如何确保我的程序以时间间隔 t1、t2、t3、t4 和 t5 运行,并且正确评估位置。
感谢任何想法或帮助。谢谢!
位置计算不是问题。我想在时间 t1..t5 与 QTimer 结合进行计算(间隔为 10 毫秒)。