缓存bug修复,状态机完成

This commit is contained in:
hm
2020-03-18 18:49:18 +08:00
parent f5b3fa5a09
commit 082ed2d316
13 changed files with 1232 additions and 190 deletions
+8 -3
View File
@@ -7,12 +7,12 @@ MavLinkNode::MavLinkNode(QObject *parent) : QObject(parent)
Nodethread = new QThread();
this->moveToThread(Nodethread);
connect(Nodethread, &QThread::started, this, &MavLinkNode::process);
setRunFrq(50);//50
setRunFrq(10);//50
//初始化buff
initbuff();
Mission = new MissionProcess(this);
Mission->setRunFrq(200);
@@ -130,15 +130,17 @@ void MavLinkNode::setbuff(quint32 src,QByteArray data)
if(client_buff.buff[client_buff.select].size() >= client_buff.max_size)
{
client_buff.buff[client_buff.select].clear();
qDebug() << "client_buff.buff" << client_buff.select << "OVERFLOW";
}
client_buff.buff[client_buff.select].append(data);
qDebug() << "buff" << client_buff.select << client_buff.buff[client_buff.select].size() ;
break;
case SourceType::s_port:
//当前的buff超过10M字节之后就清除,防爆机制,不然buff太大后容易卡死
if(serial_buff.buff[serial_buff.select].size() >= serial_buff.max_size)
{
serial_buff.buff[serial_buff.select].clear();
qDebug() << "serial_buff.buff" << client_buff.select << "OVERFLOW";
}
serial_buff.buff[serial_buff.select].append(data);
break;
@@ -165,6 +167,7 @@ QByteArray MavLinkNode::readbuff(quint32 src)
datagram.setRawData(client_buff.buff[0],client_buff.buff[0].size());
//清除这个未选择的buff
client_buff.buff[0].clear();
//读取完成,可以往这个内存里面写数了
client_buff.select = 0;
}
@@ -174,12 +177,14 @@ QByteArray MavLinkNode::readbuff(quint32 src)
{
datagram.setRawData(serial_buff.buff[1],serial_buff.buff[1].size());
//读取完成,可以往这个内存里面写数了
serial_buff.buff[1].clear();
serial_buff.select = 1;
}
else if(serial_buff.select == 1)
{
datagram.setRawData(serial_buff.buff[0],serial_buff.buff[0].size());
//读取完成,可以往这个内存里面写数了
serial_buff.buff[0].clear();
serial_buff.select = 0;
}
break;