修改回放

This commit is contained in:
hm
2020-12-15 13:47:14 +08:00
parent 543dd019f9
commit 5018a2ab56
18 changed files with 1629 additions and 804 deletions
+50 -10
View File
@@ -121,13 +121,26 @@ MavLinkNode::~MavLinkNode()
logTimer = nullptr;
}
if(timer_1s)
{
timer_1s->stop();
delete timer_1s;
timer_1s = nullptr;
}
//停止回放
if(replay)
{
replay->stop();
delete replay;
replay = nullptr;
if(replay->isActive())
{
replay->stop();
QThread::msleep(10);
delete replay;
replay = nullptr;
}
}
//停止任务
@@ -136,6 +149,7 @@ MavLinkNode::~MavLinkNode()
if(Mission->isActive())
{
Mission->stop();
QThread::msleep(10);
delete Mission;
Mission = nullptr;
}
@@ -147,6 +161,7 @@ MavLinkNode::~MavLinkNode()
if(Parameter->isActive())
{
Parameter->stop();
QThread::msleep(10);
delete Parameter;
Parameter = nullptr;
}
@@ -157,6 +172,7 @@ MavLinkNode::~MavLinkNode()
if(Commander->isActive())
{
Commander->stop();//可能还没停止线程,后面不能紧跟着删除
QThread::msleep(10);
delete Commander;
Commander = nullptr;
}
@@ -167,6 +183,7 @@ MavLinkNode::~MavLinkNode()
if(Status->isActive())
{
Status->stop();//可能还没停止线程,后面不能紧跟着删除
QThread::msleep(10);
delete Status;
Status = nullptr;
}
@@ -186,8 +203,8 @@ MavLinkNode::~MavLinkNode()
}
QThread::msleep(200);
QThread::msleep(50);
delete thread;
thread = nullptr;
@@ -258,7 +275,7 @@ void MavLinkNode::start()
logTimer = new QTimer();
logTimer->setInterval(1 * 60 * 1000);//5min
logTimer->setInterval(2 * 10 * 1000);//10s
connect(logTimer,&QTimer::timeout,
this,&MavLinkNode::LogTimerOut,Qt::DirectConnection);
@@ -434,10 +451,11 @@ void MavLinkNode::LogTimerOut(void)
//mavLogFile->bytesToWrite();
//if(!mavLogFile->flush())
{
//{
//qDebug() << "bittotal" << bittotal;
mavLogFile->close();
mavLogFile->open(QIODevice::Append);
}
//}
}
}
@@ -606,12 +624,33 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
uint16_t len = mavlink_msg_to_send_buffer(buff+sizeof(quint64), &msg);
if (mavLogFile)
{
mavLogFile->write((const char *)buff, len+sizeof(quint64));
if(mavLogFile->isOpen())
{
if(databuff.size() > 0)
{
mavLogFile->write(databuff);
mavLogFile->write((const char *)buff, len+sizeof(quint64));
qDebug() << "buff size > 0,write buff to file ;"
<< databuff.size();
databuff.clear();
}
else
{
mavLogFile->write((const char *)buff, len+sizeof(quint64));
}
}
else
{
databuff.append((const char *)buff, len+sizeof(quint64));
qDebug() << "file is open ,data write to buff";
}
}
//mavLogFile->size()
count++;
if(msg.sysid < 250) //过滤地面站发过来的数据
@@ -676,6 +715,7 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
case MAVLINK_PARSE_STATE_GOT_BAD_CRC1:{
parserFailure += 1;
qDebug() << "MAVLINK_PARSE_STATE_GOT_BAD_CRC1";
emit showMessage("mavlink parse CRC error");
}break;
case MAVLINK_PARSE_STATE_SIGNATURE_WAIT:{
qDebug() << "MAVLINK_PARSE_STATE_SIGNATURE_WAIT";