修改回放
This commit is contained in:
+50
-10
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user