缓存bug修复,状态机完成
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user