完全移植929 mavlinkNode
This commit is contained in:
+8
-9
@@ -158,8 +158,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
qRegisterMetaType<uint8_t>("uint8_t");
|
||||
qRegisterMetaType<uint16_t>("uint16_t");
|
||||
qRegisterMetaType<uint32_t>("uint32_t");
|
||||
qRegisterMetaType<float>("float");
|
||||
qRegisterMetaType<double>("double");
|
||||
|
||||
//commandbox ----- dlink
|
||||
connect(toolsui->command,SIGNAL(cmd_long(float,float,float,float,float,float,float,uint16_t,uint8_t)),
|
||||
@@ -194,14 +192,14 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
*/
|
||||
|
||||
//this ----- dlink
|
||||
connect(dlink->mavlinknode,SIGNAL(beep()),
|
||||
this,SLOT(beep()));
|
||||
connect(dlink->mavlinknode,SIGNAL(beep(int)),
|
||||
this,SLOT(beep(int)));
|
||||
|
||||
connect(dlink->mavlinknode,SIGNAL(CommuniationLost(bool)),
|
||||
this,SLOT(setCommunicationLostState(bool)));
|
||||
|
||||
connect(dlink->mavlinknode,SIGNAL(updateDlink(float,uint64_t)),
|
||||
this,SLOT(updateDlink(float,uint64_t)));
|
||||
connect(dlink->mavlinknode,SIGNAL(updateDlink(float,uint64_t,uint64_t)),
|
||||
this,SLOT(updateDlink(float,uint64_t,uint64_t)));
|
||||
|
||||
//this ----- map
|
||||
connect(map,SIGNAL(TotalDistanceUpdate(double)),
|
||||
@@ -819,8 +817,9 @@ void MainWindow::showMessage(const QString &message, int TimeOut)
|
||||
toolsui->index1->setLog(message);
|
||||
}
|
||||
|
||||
void MainWindow::beep(void)
|
||||
void MainWindow::beep(int id)
|
||||
{
|
||||
Q_UNUSED(id)
|
||||
QApplication::beep();
|
||||
}
|
||||
|
||||
@@ -901,10 +900,10 @@ void MainWindow::setCommunicationLostState(bool flag)
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::updateDlink(float rssi, uint64_t bitrate)
|
||||
void MainWindow::updateDlink(float rssi,uint64_t in,uint64_t out)
|
||||
{
|
||||
statusui->setDlink(1,QString::number(rssi,'f',0),
|
||||
QString::number(bitrate));
|
||||
QString::number(in));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -74,7 +74,7 @@ public slots:
|
||||
|
||||
void setCommunicationLostState(bool flag);
|
||||
|
||||
void beep(void);
|
||||
void beep(int id);
|
||||
|
||||
|
||||
void setServoOffset(QVariant dirla, QVariant dirra, QVariant dirle, QVariant dirre, QVariant dirru,
|
||||
@@ -104,7 +104,7 @@ private slots:
|
||||
void Timer_1s_out(void);
|
||||
|
||||
|
||||
void updateDlink(float rssi,uint64_t bitrate);
|
||||
void updateDlink(float rssi, uint64_t in, uint64_t out);
|
||||
|
||||
protected slots:
|
||||
|
||||
|
||||
+11
-12
@@ -39,7 +39,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# include sub project
|
||||
|
||||
DESTDIR = $$PWD/../bin
|
||||
DESTDIR = $$PWD/../thirdpart/lib
|
||||
MOC_DIR = $$PWD/../build
|
||||
OBJECTS_DIR = $$PWD/../build
|
||||
|
||||
@@ -73,18 +73,18 @@ SOURCES += \
|
||||
sbusparser.cpp \
|
||||
statusprocess.cpp
|
||||
|
||||
INCLUDEPATH += $$DESTDIR/include
|
||||
INCLUDEPATH += $$PWD/../thirdpart/include
|
||||
|
||||
# Capture whether this is a release/debug build.
|
||||
CONFIG(debug, debug|release) {
|
||||
LIBS += -L$$DESTDIR -lcored
|
||||
LIBS += -L$$DESTDIR -linternalsd
|
||||
LIBS += -L$$DESTDIR -lopmapwidgetd
|
||||
LIBS += -L$$PWD/../thirdpart/lib -lcored
|
||||
LIBS += -L$$PWD/../thirdpart/lib -linternalsd
|
||||
LIBS += -L$$PWD/../thirdpart/lib -lopmapwidgetd
|
||||
}
|
||||
CONFIG(release, debug|release) {
|
||||
LIBS += -L$$DESTDIR -lcore
|
||||
LIBS += -L$$DESTDIR -linternals
|
||||
LIBS += -L$$DESTDIR -lopmapwidget
|
||||
LIBS += -L$$PWD/../thirdpart/lib -lcore
|
||||
LIBS += -L$$PWD/../thirdpart/lib -linternals
|
||||
LIBS += -L$$PWD/../thirdpart/lib -lopmapwidget
|
||||
}
|
||||
|
||||
|
||||
@@ -104,9 +104,9 @@ INCLUDEPATH += $$PWD/../mavlink \
|
||||
|
||||
|
||||
|
||||
win32|win64 {
|
||||
win32|win64 {
|
||||
src_dir = $$PWD\\*.h
|
||||
dst_dir = $$PWD\\..\\bin\\include\\
|
||||
dst_dir = $$PWD\\..\\thirdpart\\include\\
|
||||
# dst_dir 最后的 \\ 是必须的,用来标示 xcopy 到一个文件夹,若不存在,创建之
|
||||
|
||||
# Replace slashes in paths with backslashes for Windows
|
||||
@@ -114,13 +114,12 @@ win32|win64 {
|
||||
dst_dir ~= s,/,\\,g
|
||||
|
||||
system(xcopy $$src_dir $$dst_dir /y /e)
|
||||
|
||||
}
|
||||
|
||||
|
||||
unix {
|
||||
src_dir = $$PWD/*.h
|
||||
dst_dir = $$PWD/../bin/include/
|
||||
dst_dir = $$PWD/../thirdpart/include/
|
||||
|
||||
!exists($$dst_dir): system(mkdir -p $$dst_dir)
|
||||
|
||||
|
||||
@@ -488,7 +488,7 @@ void MavLinkNode::process()//线程函数
|
||||
while (running_flag)
|
||||
{
|
||||
count ++;
|
||||
QThread::msleep(1000/running_frq);
|
||||
//QThread::msleep(1000/running_frq);
|
||||
//timer->start();
|
||||
|
||||
//解码从UDP来的
|
||||
@@ -498,7 +498,12 @@ void MavLinkNode::process()//线程函数
|
||||
{
|
||||
//qDebug() << "client parse";
|
||||
Mavlinkparse(SourceType::c_sock,datagram);
|
||||
|
||||
QApplication::processEvents();
|
||||
}
|
||||
else
|
||||
{
|
||||
//QThread::msleep(1000/running_frq);
|
||||
QThread::yieldCurrentThread();
|
||||
}
|
||||
|
||||
//解码从串口来的
|
||||
@@ -509,7 +514,12 @@ void MavLinkNode::process()//线程函数
|
||||
{
|
||||
//qDebug() << "serial port parse";
|
||||
Mavlinkparse(SourceType::s_port,datagram);
|
||||
|
||||
QApplication::processEvents();
|
||||
}
|
||||
else
|
||||
{
|
||||
//QThread::msleep(1000/running_frq);
|
||||
QThread::yieldCurrentThread();
|
||||
}
|
||||
|
||||
if(isInterruptionRequested())//退出
|
||||
@@ -601,6 +611,8 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
|
||||
|
||||
hasConneted = true;
|
||||
|
||||
count_in += datagram.size();
|
||||
|
||||
for (QByteArray::const_iterator i = datagram.cbegin(); i != datagram.cend(); ++i)
|
||||
{
|
||||
|
||||
@@ -779,7 +791,10 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
{
|
||||
|
||||
|
||||
_vehicle vehicle = vehicleList.value(msg.sysid);
|
||||
//_vehicle vehicle = vehicleList.value(msg.sysid);
|
||||
|
||||
vehicle.sysid = msg.sysid;
|
||||
vehicle.compid = msg.compid;
|
||||
|
||||
switch (msg.msgid) {
|
||||
case MAVLINK_MSG_ID_AUTOPILOT_VERSION: {
|
||||
@@ -1132,13 +1147,14 @@ void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
|
||||
|
||||
|
||||
vehicleList.insert(msg.sysid,vehicle);//直接覆盖
|
||||
|
||||
//vehicleList.insert(msg.sysid,vehicle);//直接覆盖
|
||||
|
||||
|
||||
|
||||
emit signal_vehicle(vehicle);
|
||||
|
||||
//emit state_updated();
|
||||
emit state_updated();
|
||||
|
||||
}
|
||||
|
||||
|
||||
+4
-8
@@ -8,14 +8,12 @@ DLink::DLink(QObject *parent) : QObject(parent)
|
||||
qDebug() << "Dlink " << QThread::currentThreadId();
|
||||
|
||||
|
||||
//采用插件导入的方式(plugin)
|
||||
|
||||
//mavlink协议节点
|
||||
//采用插件导入的方式(plugin)
|
||||
mavlinknode = new MavLinkNode();//不允许带参数,因为这是单独的线程
|
||||
|
||||
//在当前线程运行
|
||||
connect(mavlinknode,SIGNAL(SendMessageTo(quint8,quint8*,quint16)),
|
||||
this,SLOT(SendMessageTo(quint8,quint8*,quint16)),Qt::BlockingQueuedConnection);//采用直连的方式,因为是多线程
|
||||
this,SLOT(SendMessageTo(quint8,quint8*,quint16)),Qt::BlockingQueuedConnection);//BlockingQueuedConnection);//信号和槽必须在不同的线程中,否则就产生死锁
|
||||
|
||||
//在当前线程运行
|
||||
connect(mavlinknode,SIGNAL(showMessage(QString,int)),
|
||||
@@ -25,15 +23,13 @@ DLink::DLink(QObject *parent) : QObject(parent)
|
||||
connect(this,SIGNAL(recieveMessage(quint32,QByteArray)),
|
||||
mavlinknode,SLOT(setbuff(quint32,QByteArray)),Qt::DirectConnection);
|
||||
|
||||
mavlinknode->start();
|
||||
//其他协议节点。。。
|
||||
}
|
||||
DLink::~DLink()
|
||||
{
|
||||
stopPort();
|
||||
|
||||
mavlinknode->stop();
|
||||
mavlinknode->deleteLater();
|
||||
|
||||
delete mavlinknode;
|
||||
mavlinknode = nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user