生成很多定时器的bug解决

This commit is contained in:
hm
2020-08-12 22:12:44 +08:00
parent 59b9b98e16
commit dfd6a6e08c
15 changed files with 180 additions and 346 deletions
+6
View File
@@ -0,0 +1,6 @@
#include "Chart.h"
Chart::Chart(QObject *parent) : QObject(parent)
{
}
+16
View File
@@ -0,0 +1,16 @@
#ifndef CHART_H
#define CHART_H
#include <QObject>
class Chart : public QObject
{
Q_OBJECT
public:
explicit Chart(QObject *parent = nullptr);
signals:
};
#endif // CHART_H
+2
View File
@@ -10,9 +10,11 @@ FORMS += \
$$PWD/Scope.ui $$PWD/Scope.ui
HEADERS += \ HEADERS += \
$$PWD/Chart.h \
$$PWD/Scope.h $$PWD/Scope.h
SOURCES += \ SOURCES += \
$$PWD/Chart.cpp \
$$PWD/Scope.cpp $$PWD/Scope.cpp
-117
View File
@@ -1,117 +0,0 @@
#include "VirtualScope.h"
VirtualScope::VirtualScope(QWidget *parent) : QWidget(parent)
{
}
VirtualScope::~VirtualScope()
{
}
void VirtualScope::mouseReleaseEvent(QMouseEvent *e)
{
qDebug() << "VirtualScope release" << e;
}
void VirtualScope::mousePressEvent(QMouseEvent *e)
{
qDebug() << "VirtualScope press" << e;
}
void VirtualScope::mouseDoubleClickEvent(QMouseEvent *e)
{
qDebug() << "VirtualScope double clicked" << e;
}
void VirtualScope::wheelEvent(QWheelEvent *e)
{
qDebug() << e;
}
void VirtualScope::paintEvent(QPaintEvent *)
{
//qreal scale = 4000.0;
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); /* 使用反锯齿(如果可用) */
painter.setRenderHint(QPainter::TextAntialiasing);
painter.setRenderHint(QPainter::SmoothPixmapTransform);
painter.translate(width() / 2, height() / 2); /* 坐标变换为窗体中心 */
//int side = qMin(width(), height()); /* 这一句决定了这个模块只能是方形 */
//painter.scale(side / scale, side / scale); /* 比例缩放 */
painter.setPen(Qt::NoPen);
drawBackground(&painter);
}
void VirtualScope::drawBackground(QPainter *painter)
{
QPen pen;
QFont font;
float w = width();
float h = height();
//画大黑背景
painter->save();
painter->setBrush(Qt::black);
painter->drawRect(-w/2,-h/2,w,h);
painter->restore();
//画坐标系
painter->save();
//painter->translate(-200,0);
//水平,垂直虚线
pen.setColor(QColor("#FFFFFF"));
pen.setWidthF(1);
painter->setPen(pen);
font.setPointSize(15);
font.setFamily("Arial");//非衬线
painter->setFont(font);
//水平分成8个格,竖直分成10个格
float g_h = (h - 50)/8;
float g_w = (w - 50)/10;
for(int i = -4;i <= 4;i++)
{
painter->drawLine(-(w - 50)/2,g_h * i,(w - 50)/2,g_h * i);
}
//水平分成10条线
for(int i = -5;i <= 5;i++)
{
painter->drawLine(g_w * i,-(h - 50)/2,g_w * i,(h - 50)/2);
painter->drawText(QRect(g_w * i - 100,(h - 50)/2,200,20), Qt::AlignCenter,QString::number(i));
}
painter->restore();
}
-43
View File
@@ -1,43 +0,0 @@
#ifndef VIRTUALSCOPE_H
#define VIRTUALSCOPE_H
#include <QObject>
#include <QWidget>
#include <QMouseEvent>
#include <QPainter>
#include "QDebug"
#include "QPicture"
#include "QtMath"
class VirtualScope : public QWidget
{
Q_OBJECT
public:
explicit VirtualScope(QWidget *parent = nullptr);
~VirtualScope();
signals:
protected:
void mouseReleaseEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
void wheelEvent(QWheelEvent *e);
void paintEvent(QPaintEvent *);
private slots:
void drawBackground(QPainter *painter);
};
#endif // VIRTUALSCOPE_H
+2
View File
@@ -109,6 +109,7 @@ void MenuBarUI::showMessage(const QString &message, int TimeOut)
{ {
ui->label_Status->setText(message); ui->label_Status->setText(message);
//这句:如果小于0,那么不生成定时器,减少内存开支,因为小于0时,定时器永远不会触发 //这句:如果小于0,那么不生成定时器,减少内存开支,因为小于0时,定时器永远不会触发
if(TimeOut > 0) if(TimeOut > 0)
{ {
if(MessageTimer->isActive()) if(MessageTimer->isActive())
@@ -124,6 +125,7 @@ void MenuBarUI::showMessage(const QString &message, int TimeOut)
MessageTimer->stop(); MessageTimer->stop();
} }
} }
} }
void MenuBarUI::clearMessage() void MenuBarUI::clearMessage()
+43 -29
View File
@@ -19,6 +19,8 @@ MainWindow::MainWindow(QWidget *parent)
setFocusPolicy(Qt::StrongFocus); setFocusPolicy(Qt::StrongFocus);
setAttribute(Qt::WA_AcceptTouchEvents); setAttribute(Qt::WA_AcceptTouchEvents);
tts = new QTextToSpeech(this);
//ui initial //ui initial
//menubar //menubar
@@ -209,44 +211,38 @@ MainWindow::MainWindow(QWidget *parent)
connect(dlink->mavlinknode->Mission,SIGNAL(currentPoint(int)), connect(dlink->mavlinknode->Mission,SIGNAL(currentPoint(int)),
map,SLOT(WPSetCurrent(int)),Qt::DirectConnection); map,SLOT(WPSetCurrent(int)),Qt::DirectConnection);
//menuBarUI->showMessage(tr("存在bug,连接界面udp数字输入的.可以超过3个,不合理"));
//==== showmessage===== //==== showmessage=====
connect(copk,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int))); connect(copk,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int)));
connect(dlink,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int))); connect(dlink,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int)));
connect(map,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int))); connect(map,SIGNAL(showMessage(QString,int)),this,SLOT(showMessage(QString,int)));
qDebug() << "main window start"; qDebug() << "main window start";
//监测ssl,用于网络连接 //监测ssl,用于网络连接
qDebug()<<"QSslSocket="<<QSslSocket::sslLibraryBuildVersionString(); qDebug()<<"QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();
qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl(); qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl();
} }
//对返回的数据进行处理
void MainWindow::getData(QNetworkReply *reply)
{
//获得返回数据存在字节数组中
QByteArray data=reply->readAll();
//将字节数组转为字符串
QString str=QString::fromUtf8(data);
//将数据展示在textEdit中
qDebug() << str;
}
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
map->close(); if(tts)
delete map; {
tts->stop();
delete tts;
tts = nullptr;
}
copk->deleteLater(); if(map)
delete copk; {
map->close();
delete map;
}
if(copk)
{
copk->close();
delete copk;
}
QCoreApplication::quit();//退出所有窗口 QCoreApplication::quit();//退出所有窗口
} }
@@ -300,9 +296,6 @@ void MainWindow::mousePressEvent(QMouseEvent* event)
Q_UNUSED(event) Q_UNUSED(event)
} }
void MainWindow::keyPressEvent(QKeyEvent *event) //键盘按下事件 void MainWindow::keyPressEvent(QKeyEvent *event) //键盘按下事件
{ {
//qDebug() << event; //qDebug() << event;
@@ -522,6 +515,8 @@ void MainWindow::beep(void)
// 16~20Hz左右 运行频率可能太高
void MainWindow::updateUI()//事件驱动式更新数据 void MainWindow::updateUI()//事件驱动式更新数据
{ {
static uint32_t custommode_old = 0; static uint32_t custommode_old = 0;
@@ -530,6 +525,21 @@ void MainWindow::updateUI()//事件驱动式更新数据
bool isStateChanged = false; bool isStateChanged = false;
/*
static int frq_count = 0;
static qint64 frq_time = 0;
frq_count++;
if((QDateTime::currentMSecsSinceEpoch() - frq_time) >= 1000)
{
qDebug() <<frq_time << "running frq is:" << frq_count;
frq_count = 0;
frq_time = QDateTime::currentMSecsSinceEpoch();
}
*/
copk->setAttitude(dlink->mavlinknode->vehicle.attitude.pitch * 57.3, copk->setAttitude(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,
dlink->mavlinknode->vehicle.attitude.roll * 57.3, dlink->mavlinknode->vehicle.attitude.roll * 57.3,
dlink->mavlinknode->vehicle.attitude.yaw * 57.3); dlink->mavlinknode->vehicle.attitude.yaw * 57.3);
@@ -677,8 +687,8 @@ void MainWindow::updateUI()//事件驱动式更新数据
} }
copk->setMode(mode_str); copk->setMode(mode_str);
QTextToSpeech *tts = new QTextToSpeech();
//这里会一直生成一个,导致无法释放
if(isStateChanged == true) if(isStateChanged == true)
{ {
tts->say(arm_str); tts->say(arm_str);
@@ -687,11 +697,12 @@ void MainWindow::updateUI()//事件驱动式更新数据
if(isCustomChanged == true) if(isCustomChanged == true)
{ {
mode_str.append(tr("flight mode")); mode_str.append(tr("flight mode"));
tts->say(mode_str); tts->say(mode_str);
} }
map->setUAVPos(dlink->mavlinknode->vehicle.sysid, map->setUAVPos(dlink->mavlinknode->vehicle.sysid,
dlink->mavlinknode->vehicle.compid, dlink->mavlinknode->vehicle.compid,
(double)(dlink->mavlinknode->vehicle.gps_raw_int.lat * 10e-8), (double)(dlink->mavlinknode->vehicle.gps_raw_int.lat * 10e-8),
@@ -703,6 +714,8 @@ void MainWindow::updateUI()//事件驱动式更新数据
dlink->mavlinknode->vehicle.attitude.yaw * 57.3); dlink->mavlinknode->vehicle.attitude.yaw * 57.3);
if(MainIndex == 3)//飞行界面 if(MainIndex == 3)//飞行界面
{ {
//刷新时间1Hz //刷新时间1Hz
@@ -719,6 +732,7 @@ void MainWindow::updateUI()//事件驱动式更新数据
} }
} }
void MainWindow::TotalDistance(double value) void MainWindow::TotalDistance(double value)
+2 -1
View File
@@ -88,7 +88,7 @@ private slots:
protected slots: protected slots:
void getData(QNetworkReply *reply);
protected: protected:
@@ -114,6 +114,7 @@ protected:
QTimer *updateTimer = nullptr; QTimer *updateTimer = nullptr;
QTextToSpeech *tts = nullptr;
}; };
+12 -97
View File
@@ -99,23 +99,23 @@ typedef struct {
typedef struct{ typedef struct{
qreal pitch; qreal pitch = 0;
qreal roll; qreal roll = 0;
qreal yaw; qreal yaw = 0;
qreal height; qreal height = 0;
qreal airspeed_maximun; qreal airspeed_maximun = 0;
qreal airspeed; qreal airspeed = 0;
qreal airspeed_minimun; qreal airspeed_minimun = 0;
qreal heading;//航线方向 qreal heading = 0;//航线方向
qreal position;//侧偏距 qreal position = 0;//侧偏距
qreal altitude;//海拔 qreal altitude = 0;//海拔
qreal verticalspeed;//纵向速度 qreal verticalspeed = 0;//纵向速度
bool isUpdate; bool isUpdate = false;
}_target; }_target;
@@ -211,93 +211,8 @@ private:
QTimer *UpdateTimer = nullptr; QTimer *UpdateTimer = nullptr;
/*
QString m_mode;//显示模式
QString m_GPS;
QString m_MODE;
QString m_STATE;
double m_PitchValue;
double m_RollValue;
double m_YawValue;
double m_CourseValue;
double m_BatteryValue;
double m_GPSAltitudeValue;
double m_PressureAltitudeValue;
int m_Max_Roll;
int m_Min_Roll;
int m_Max_Altitude;
int m_Min_Altitude;
double m_gps_altitude;
double m_pre_altitude;
double m_gps_speed;
double m_air_speed;
QString m_CtrlModeValue;
QString m_AirplaneModeValue;
QString m_CurrentStatusValue;
QString m_LockStatusValue;
QString m_TurningStatusValue;
int m_GPSStatusValue;
int m_GPSStarValue;
float m_Z_SpeedValue;
float m_Z_HightValue;
//float m_X_SpeedValue;
//保护
QString m_ProtectString;
quint8 m_Protect;
//数值的最大最小值
double m_Pitch_MinValue;
double m_Roll_MinValue;
double m_Yaw_MinValue;
double m_CourseMinValue;
double m_Pitch_MaxValue;
double m_Roll_MaxValue;
double m_Yaw_MaxValue;
double m_CourseMaxValue;
double m_BatteryMinValue;
double m_BatteryMaxValue;
/*
QColor m_CentreLineColor;
QColor m_ForeColor;
QColor m_CornerColor;
QColor m_GroundColor;//大地颜色
QColor m_SkyColor;//天空颜色
QColor m_LedColor;
QColor m_CurrentColor;
QColor m_TargetColor;
QColor m_StatusColor;
QColor m_NormalColor;
QColor m_NoticeColor;
QColor m_WarningColor;
QColor m_WColor;
*/
QPoint m_c; QPoint m_c;
}; };
+4 -1
View File
@@ -84,7 +84,10 @@ public slots:
void setRunFrq(uint32_t frq); void setRunFrq(uint32_t frq);
void start(); void start();
void stop(); void stop();
bool isActive(void)
{
return running_flag;
}
void Parse(mavlink_message_t msg); void Parse(mavlink_message_t msg);
+59 -49
View File
@@ -19,7 +19,7 @@ MavLinkNode::MavLinkNode(QObject *parent) : QObject(parent)
initbuff(); initbuff();
//初始化ID //初始化ID
int Current_sysID = 0xF1; int Current_sysID = 0xFB;
int Current_CompID = MAV_COMP_ID_MISSIONPLANNER; int Current_CompID = MAV_COMP_ID_MISSIONPLANNER;
Mission = new MissionProcess(); Mission = new MissionProcess();
@@ -52,22 +52,44 @@ MavLinkNode::MavLinkNode(QObject *parent) : QObject(parent)
connect(Commander,SIGNAL(showMessage(QString,int)), connect(Commander,SIGNAL(showMessage(QString,int)),
this,SIGNAL(showMessage(QString,int)),Qt::DirectConnection); this,SIGNAL(showMessage(QString,int)),Qt::DirectConnection);
showMessage(tr("解锁才能有航迹,需要修正,示波器显示时间不对"));
} }
MavLinkNode::~MavLinkNode() MavLinkNode::~MavLinkNode()
{ {
//停止任务 //停止任务
Mission->stop(); if(Mission)
delete Mission; {
Mission = nullptr; if(Mission->isActive())
{
Mission->stop();
delete Mission;
Mission = nullptr;
}
}
//停止参数 //停止参数
Parameter->stop(); if(Parameter)
delete Parameter; {
Parameter = nullptr; if(Parameter->isActive())
{
Parameter->stop();
delete Parameter;
Parameter = nullptr;
}
}
Commander->stop(); if(Commander)
delete Commander; {
Commander = nullptr; if(Commander->isActive())
{
Commander->stop();
delete Commander;
Commander = nullptr;
}
}
if(Nodethread->isRunning()) if(Nodethread->isRunning())
{ {
@@ -102,11 +124,20 @@ void MavLinkNode::start()
qDebug() << "MavLinkNode thread start" << running_flag; qDebug() << "MavLinkNode thread start" << running_flag;
//启动子线程 if(Mission)
//Mission->start(); {
//Parameter->start(); Mission->start();
//Commander->start(); }
if(Commander)
{
Commander->start();
}
if(Parameter)
{
Parameter->start();
}
} }
else else
{ {
@@ -206,21 +237,14 @@ QByteArray MavLinkNode::readbuff(quint32 src)
{ {
QByteArray datagram; QByteArray datagram;
//datagram.clear();
switch (src) { switch (src) {
default: default:
case SourceType::c_sock: case SourceType::c_sock:
if(client_buff.select == 0) 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.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 //清除这个未选择的buff
client_buff.buff[1].clear(); client_buff.buff[1].clear();
//读取完成,可以往这个内存里面写数了 //读取完成,可以往这个内存里面写数了
@@ -228,17 +252,11 @@ QByteArray MavLinkNode::readbuff(quint32 src)
} }
else if(client_buff.select == 1) 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.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 //清除这个未选择的buff
client_buff.buff[0].clear(); client_buff.buff[0].clear();
//读取完成,可以往这个内存里面写数了 //读取完成,可以往这个内存里面写数了
client_buff.select = 0; client_buff.select = 0;
} }
@@ -246,24 +264,18 @@ QByteArray MavLinkNode::readbuff(quint32 src)
case SourceType::s_port: case SourceType::s_port:
if(serial_buff.select == 0) if(serial_buff.select == 0)
{ {
//datagram.append(serial_buff.buff[0]); datagram.clear();
for (QByteArray::const_iterator i = serial_buff.buff[1].cbegin(); i != serial_buff.buff[1].cend(); ++i) datagram.append(serial_buff.buff[1]);
{ //datagram.setRawData(serial_buff.buff[1],serial_buff.buff[1].size());
datagram.append(*i);
}
//读取完成,可以往这个内存里面写数了 //读取完成,可以往这个内存里面写数了
serial_buff.buff[1].clear(); serial_buff.buff[1].clear();
serial_buff.select = 1; serial_buff.select = 1;
} }
else if(serial_buff.select == 1) else if(serial_buff.select == 1)
{ {
//datagram.append(serial_buff.buff[0]); datagram.clear();
datagram.append(serial_buff.buff[0]);
for (QByteArray::const_iterator i = serial_buff.buff[0].cbegin(); i != serial_buff.buff[0].cend(); ++i) //datagram.setRawData(serial_buff.buff[0],serial_buff.buff[0].size());
{
datagram.append(*i);
}
//读取完成,可以往这个内存里面写数了 //读取完成,可以往这个内存里面写数了
serial_buff.buff[0].clear(); serial_buff.buff[0].clear();
serial_buff.select = 0; serial_buff.select = 0;
@@ -288,20 +300,18 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
count++; count++;
/*
if(msg.compid == Current_CompID) //过滤地面站发过来的数据 if(msg.compid == Current_CompID) //过滤地面站发过来的数据
{ {
//不能使用这种方法过滤,不正确 //不能使用这种方法过滤,不正确
//qDebug() << msg.msgid << "msg come from groundstation"; qDebug() << msg.msgid << "msg come from groundstation";
} }
*/
//if(msg.compid != Current_CompID) //过滤地面站发过来的数据 if(msg.sysid < 250) //过滤地面站发过来的数据
{ {
MAVLinkRcv_Handler(msg); //接收完一帧数据并处理 MAVLinkRcv_Handler(msg); //接收完一帧数据并处理
//QThread::sleep(5);
//qDebug() << "msg.sysid" <<msg.sysid << "msg.compid" << msg.compid << "fifo parse:" << count << msg.msgid;
emit recievemsg(msg); //将信息广播出去 emit recievemsg(msg); //将信息广播出去
} }
} }
+4 -1
View File
@@ -98,7 +98,10 @@ public slots:
void setRunFrq(uint32_t frq); void setRunFrq(uint32_t frq);
void start(); void start();
void stop(); void stop();
bool isActive(void)
{
return running_flag;
}
//缓存对外接口 //缓存对外接口
void setbuff(quint32 src, QByteArray data); void setbuff(quint32 src, QByteArray data);
+4
View File
@@ -74,6 +74,10 @@ public slots:
void setRunFrq(uint32_t frq); void setRunFrq(uint32_t frq);
void start(); void start();
void stop(); void stop();
bool isActive(void)
{
return running_flag;
}
void Parse(mavlink_message_t msg); void Parse(mavlink_message_t msg);
+4 -1
View File
@@ -87,7 +87,10 @@ public slots:
void setRunFrq(uint32_t frq); void setRunFrq(uint32_t frq);
void start(); void start();
void stop(); void stop();
bool isActive(void)
{
return running_flag;
}
void Parse(mavlink_message_t msg); void Parse(mavlink_message_t msg);
+22 -7
View File
@@ -22,10 +22,10 @@ DLink::DLink(QObject *parent) : QObject(parent)
mavlinknode->start(); mavlinknode->start();
/*
connect(this,&DLink::REVMessageTo1, connect(this,&DLink::REVMessageTo1,
this,&DLink::SendMessageTo1); this,&DLink::SendMessageTo1);
*/
//其他协议节点。。。 //其他协议节点。。。
} }
@@ -55,8 +55,7 @@ int DLink::SendMessageTo(quint8 ch, quint8 *msg, quint16 len)
if (DLink::serialPort) if (DLink::serialPort)
{ {
qint64 flag = DLink::serialPort->write((const char *)msg,len); emit REVMessageTo1(ch,msg,len);
qDebug() << "serialPort Send Msg";
} }
return 0; return 0;
@@ -66,7 +65,14 @@ int DLink::SendMessageTo(quint8 ch, quint8 *msg, quint16 len)
int DLink::SendMessageTo1(quint8 ch, quint8 *msg, quint16 len) int DLink::SendMessageTo1(quint8 ch, quint8 *msg, quint16 len)
{ {
if (DLink::serialPort)
{
qint64 flag = DLink::serialPort->write((const char *)msg,len);
if(flag != -1)
{
qDebug() << "serialPort Send Msg";
}
}
return 0; return 0;
} }
@@ -268,18 +274,24 @@ void DLink::readPendingDatagramsSerialPort(void)
QByteArray datagram = serialPort->readAll(); QByteArray datagram = serialPort->readAll();
mavlinknode->setbuff(SourceType::s_port,datagram); mavlinknode->setbuff(SourceType::s_port,datagram);
/*
mavlink_message_t msg; mavlink_message_t msg;
mavlink_status_t status; mavlink_status_t status;
for (QByteArray::const_iterator i = datagram.cbegin(); i != datagram.cend(); ++i) for (QByteArray::const_iterator i = datagram.cbegin(); i != datagram.cend(); ++i)
{ {
if(MAVLINK_FRAMING_OK == mavlink_parse_char(3,*i,&msg,&status)) if(MAVLINK_FRAMING_OK == mavlink_parse_char(3,*i,&msg,&status))
{ {
//qDebug() << "direct parse:" << count << msg.msgid; qDebug() << "direct parse:" << count << msg.msgid;
count++; count++;
} }
} }
*/
/* /*
QString num; QString num;
for (int i = 0; i < datagram.size(); ++i) { for (int i = 0; i < datagram.size(); ++i) {
@@ -306,17 +318,20 @@ void DLink::readPendingDatagramsClient(void)
mavlinknode->setbuff(SourceType::c_sock,datagram); mavlinknode->setbuff(SourceType::c_sock,datagram);
/*
mavlink_message_t msg; mavlink_message_t msg;
mavlink_status_t status; mavlink_status_t status;
for (QByteArray::const_iterator i = datagram.cbegin(); i != datagram.cend(); ++i) for (QByteArray::const_iterator i = datagram.cbegin(); i != datagram.cend(); ++i)
{ {
if(MAVLINK_FRAMING_OK == mavlink_parse_char(2,*i,&msg,&status)) if(MAVLINK_FRAMING_OK == mavlink_parse_char(2,*i,&msg,&status))
{ {
//qDebug() << "direct parse:" << count << msg.msgid; qDebug() << "direct parse:" << count << msg.msgid;
count++; count++;
} }
} }
*/
} }