缓存可能有点问题

This commit is contained in:
hm
2020-08-06 21:58:42 +08:00
parent 6db2b44969
commit 73b0085517
6 changed files with 60 additions and 45 deletions
+29 -7
View File
@@ -104,6 +104,13 @@ void MavLinkNode::start()
running_flag = true;
Nodethread->start();
qDebug() << "MavLinkNode thread start" << running_flag;
//启动子线程
Mission->start();
Parameter->start();
Commander->start();
}
else
{
@@ -202,14 +209,26 @@ void MavLinkNode::setbuff(quint32 src,QByteArray data)
QByteArray MavLinkNode::readbuff(quint32 src)
{
QByteArray datagram;
//QByteArray datagram1;
//datagram1.clear();
//qDebug() << "datagram1" << datagram1;
//datagram.clear();
switch (src) {
default:
case SourceType::c_sock:
if(client_buff.select == 0)
{
datagram.clear();
datagram.append(client_buff.buff[1]);
//datagram.setRawData(client_buff.buff[1],client_buff.buff[1].size());
//datagram.append(client_buff.buff[1]);
for (QByteArray::const_iterator i = client_buff.buff[1].cbegin(); i != client_buff.buff[1].cend(); ++i)
{
datagram.append(*i);
}
//清除这个未选择的buff
client_buff.buff[1].clear();
@@ -218,8 +237,14 @@ QByteArray MavLinkNode::readbuff(quint32 src)
}
else if(client_buff.select == 1)
{
datagram.clear();
datagram.append(client_buff.buff[0]);
//datagram.setRawData(client_buff.buff[0],client_buff.buff[0].size());
//datagram.append(client_buff.buff[0]);
for (QByteArray::const_iterator i = client_buff.buff[0].cbegin(); i != client_buff.buff[0].cend(); ++i)
{
datagram.append(*i);
}
//清除这个未选择的buff
client_buff.buff[0].clear();
@@ -230,7 +255,6 @@ QByteArray MavLinkNode::readbuff(quint32 src)
case SourceType::s_port:
if(serial_buff.select == 0)
{
datagram.clear();
datagram.append(serial_buff.buff[0]);
//读取完成,可以往这个内存里面写数了
serial_buff.buff[1].clear();
@@ -238,7 +262,6 @@ QByteArray MavLinkNode::readbuff(quint32 src)
}
else if(serial_buff.select == 1)
{
datagram.clear();
datagram.append(serial_buff.buff[0]);
//读取完成,可以往这个内存里面写数了
serial_buff.buff[0].clear();
@@ -261,7 +284,6 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
{
emit recievemsg(msg); //将信息广播出去
MAVLinkRcv_Handler(msg); //接收完一帧数据并处理
}
else
{