航点传输完成,但不能跟随地图移动

This commit is contained in:
2020-05-20 18:05:16 +08:00
parent 72eb0b2dfe
commit 80a391dc96
11 changed files with 506 additions and 238 deletions
-4
View File
@@ -1499,25 +1499,21 @@ void propertyui::on_pushButton_Param7_clicked()
void propertyui::on_pushButton_Load_clicked()
{
qDebug() << "Load";
emit WPLoad();
}
void propertyui::on_pushButton_Save_clicked()
{
qDebug() << "Save";
emit WPSave();
}
void propertyui::on_pushButton_Upload_clicked()
{
qDebug() << "Upload";
emit WPUpload();
}
void propertyui::on_pushButton_Download_clicked()
{
qDebug() << "Download";
emit WPDownload();
}
@@ -123,10 +123,10 @@ void ConnectDialog::reBuildList(void)
{
ui->label_usrName->setText(tr("User Name"));
ui->label_Type->setText(tr("Type"));
ui->label_Param1->setText(tr("Local addr"));
ui->label_Param2->setText(tr("Local port"));
ui->label_Param3->setText(tr("Remote addr"));
ui->label_Param4->setText(tr("Remote port"));
ui->label_Param1->setText(tr("Local"));
ui->label_Param2->setText(tr(""));
ui->label_Param3->setText(tr("Remote"));
ui->label_Param4->setText(tr(""));
ui->label_Param5->setText(tr(""));
ui->pushButton_param5->hide();
@@ -140,15 +140,14 @@ void ConnectDialog::reBuildList(void)
ui->pushButton_param4->setText(m_Param4.toString());
ui->pushButton_param5->setText(m_Param5.toString());
emit usrNameChanged(m_usrName);
}
void ConnectDialog::setUsrName(QVariant value)
{
m_usrName = value;
emit usrNameChanged(m_usrName);
reBuildList();
}
@@ -172,7 +171,7 @@ void ConnectDialog::setType(QVariant value)
//载入默认值
if(m_Type.toString() == tr("SerialPort"))
{
m_usrName = tr("unname");
m_usrName = tr("Port");
QString tiltle = this->windowTitle();
tiltle = tiltle.simplified();
@@ -199,12 +198,12 @@ void ConnectDialog::setType(QVariant value)
}
else
{
m_usrName = tr("unname");
m_usrName = tr("Net");
m_Param1 = tr("192.168.10.1");
m_Param2 = tr("6060");
m_Param3 = tr("192.168.101.1");
m_Param4 = tr("6061");
m_Param1 = tr("127.0.0.1");
m_Param2 = tr("6061");
m_Param3 = tr("127.0.0.1");
m_Param4 = tr("6060");
m_Param5 = "";
}
@@ -6,38 +6,38 @@
<rect>
<x>0</x>
<y>0</y>
<width>855</width>
<height>557</height>
<width>954</width>
<height>421</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout_9">
<item row="1" column="2">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLabel" name="label_Param3">
<widget class="QLabel" name="label_usrName">
<property name="text">
<string>Param3</string>
<string>Tiltle</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param3">
<widget class="QPushButton" name="pushButton_usrName">
<property name="minimumSize">
<size>
<width>120</width>
<width>250</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Param3</string>
<string>USR Name</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -58,13 +58,144 @@
</property>
</widget>
</item>
<item row="6" column="0" colspan="6">
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_Connect">
<property name="minimumSize">
<size>
<width>200</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Connect</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_Cancel">
<property name="minimumSize">
<size>
<width>200</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="4" column="0" colspan="6">
<widget class="QLabel" name="label_Description">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="3" rowspan="3">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="1">
<widget class="QLabel" name="label_Param1">
<property name="text">
<string>Param1</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param1">
<property name="minimumSize">
<size>
<width>250</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Param1</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="4">
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="1">
<widget class="QLabel" name="label_Param4">
<property name="text">
<string>Param4</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param4">
<property name="minimumSize">
<size>
<width>200</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Param4</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param5">
<property name="minimumSize">
<size>
<width>120</width>
<width>250</width>
<height>60</height>
</size>
</property>
@@ -95,43 +226,6 @@
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QLabel" name="label_Type">
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_type">
<property name="minimumSize">
<size>
<width>120</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="4">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
@@ -145,7 +239,7 @@
<widget class="QPushButton" name="pushButton_param2">
<property name="minimumSize">
<size>
<width>120</width>
<width>200</width>
<height>60</height>
</size>
</property>
@@ -169,37 +263,30 @@
</item>
</layout>
</item>
<item row="0" column="3" rowspan="3">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="1" column="4">
<layout class="QGridLayout" name="gridLayout_6">
<item row="1" column="2">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="1">
<widget class="QLabel" name="label_Param4">
<widget class="QLabel" name="label_Param3">
<property name="text">
<string>Param4</string>
<string>Param3</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param4">
<widget class="QPushButton" name="pushButton_param3">
<property name="minimumSize">
<size>
<width>120</width>
<width>250</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Param4</string>
<string>Param3</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_7">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -213,7 +300,51 @@
</item>
</layout>
</item>
<item row="5" column="0" colspan="7">
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QLabel" name="label_Type">
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_type">
<property name="minimumSize">
<size>
<width>250</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="0" colspan="6">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="5" column="0" colspan="6">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -226,50 +357,7 @@
</property>
</spacer>
</item>
<item row="6" column="0" colspan="7">
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_Connect">
<property name="minimumSize">
<size>
<width>120</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Connect</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_Cancel">
<property name="minimumSize">
<size>
<width>120</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="6">
<item row="1" column="5">
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -282,101 +370,6 @@
</property>
</spacer>
</item>
<item row="4" column="0" colspan="7">
<widget class="QLabel" name="label_Description">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLabel" name="label_usrName">
<property name="text">
<string>Tiltle</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_usrName">
<property name="minimumSize">
<size>
<width>120</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>USR Name</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="0" colspan="7">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="1">
<widget class="QLabel" name="label_Param1">
<property name="text">
<string>Param1</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButton_param1">
<property name="minimumSize">
<size>
<width>120</width>
<height>60</height>
</size>
</property>
<property name="text">
<string>Param1</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="5" rowspan="3">
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
+39 -1
View File
@@ -136,10 +136,21 @@ MainWindow::MainWindow(QWidget *parent)
connect(missionUI,SIGNAL(WPDelete(int)),
map,SLOT(WPDelete(int)));
connect(missionUI,SIGNAL(WPInsert(int)),
map,SLOT(WPInsert(int)));
connect(missionUI,SIGNAL(WPUpload()),
map,SLOT(WPUpload()));
connect(missionUI,SIGNAL(WPDownload()),
map,SLOT(WPDownload()));
connect(missionUI,SIGNAL(WPSave()),
map,SLOT(WPSave()));
connect(missionUI,SIGNAL(WPLoad()),
map,SLOT(WPLoad()));
connect(map,SIGNAL(allPoint(QMap<int,int>)),
missionUI,SLOT(setallPoint(QMap<int,int>)));
@@ -150,6 +161,33 @@ MainWindow::MainWindow(QWidget *parent)
//dlink ----- map
connect(map,SIGNAL(signal_WPDownload(uint8_t, uint8_t)),
dlink->mavlinknode->Mission,SLOT(ReadCmd(uint8_t, uint8_t)),Qt::DirectConnection);
connect(map,SIGNAL(signal_WPUpload(uint8_t,uint8_t,uint32_t)),
dlink->mavlinknode->Mission,SLOT(WriteCmd(uint8_t,uint8_t,uint32_t)),Qt::DirectConnection);
//connect(dlink->mavlinknode->Mission,SIGNAL()
qRegisterMetaType<int32_t>("int32_t");
connect(dlink->mavlinknode->Mission,SIGNAL(receivedPoint(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),
map,SLOT(receivedPoint(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),Qt::DirectConnection);
connect(map,SIGNAL(WPProperty(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),
dlink->mavlinknode->Mission,SLOT(transmitPoint(float,float,float,float,int32_t,int32_t,float,uint16_t,uint16_t,uint16_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t)),Qt::DirectConnection);
commandUI = new CommandUI(this);
+5 -2
View File
@@ -4,14 +4,17 @@ TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += MavLinkNode
#SUBDIRS += SerialPortDialog
#SUBDIRS += ClientLinkDialog
SUBDIRS += Skin
SUBDIRS += opmap
SUBDIRS += qNavigationWidget
SUBDIRS += Cockpit
SUBDIRS += opmap
SUBDIRS += MavLinkNode
SUBDIRS += dlink
SUBDIRS += App
+8
View File
@@ -55,6 +55,14 @@ SOURCES += \
parameterprocess.cpp \
missionprocess.cpp
INCLUDEPATH += $$PWD/../thirdpart/include
LIBS += -L$$PWD/../thirdpart/lib -lcore
LIBS += -L$$PWD/../thirdpart/lib -linternals
LIBS += -L$$PWD/../thirdpart/lib -lopmapwidget
#添加mavlink目录
INCLUDEPATH += $$PWD/../mavlink \
$$PWD/../mavlink/ardupilotmega \
+2
View File
@@ -305,6 +305,8 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
{
//用于给参数添加设备,便于读取
//qDebug() << "msg.sysid" <<msg.sysid << "msg.compid" << msg.compid;
Parameter->paramInspect->addVehicles(msg.sysid);
+112 -3
View File
@@ -65,7 +65,7 @@ void MissionProcess::process()//线程函数
case RecieveMode : ReadStateMachine();break;
case TransmitMode : WriteStateMachine();break;
}
//qDebug() << count;
}
//退出线程
Missionthread->quit();
@@ -88,6 +88,8 @@ void MissionProcess::ReadCmd(uint8_t m_sysid, uint8_t m_compid)
compid = m_compid;
mission_status.m_Mode = RecieveMode;//接收模式
qDebug() << "recieve read cmd";
start();//开启线程
}
@@ -101,6 +103,67 @@ void MissionProcess::WriteCmd(uint8_t m_sysid, uint8_t m_compid ,uint32_t count
start();//开启线程
}
void MissionProcess::transmitPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type)
{
mapcontrol::WayPointItem::_property item;
item.param1 = param1;
item.param2 = param2;
item.param3 = param3;
item.param4 = param4;
item.x = x;
item.y = y;
item.z = z;
item.seq = seq;
item.group = group;
item.command = command;
item.target_system = target_system;
item.target_component = target_component;
item.frame = frame;
item.current = current;
item.autocontinue = autocontinue;
item.mission_type = mission_type;
items.insert(seq,item);
foreach (mapcontrol::WayPointItem::_property item, items) {
qDebug() << item.param1
<< item.param2
<< item.param3
<< item.param4
<< item.x
<< item.y
<< item.z
<< item.seq
<< item.group
<< item.command
<< item.target_system
<< item.target_component
<< item.frame
<< item.current
<< item.autocontinue
<< item.mission_type;
}
qDebug() << "transmit" << seq;
}
//这个函数类似中断,专门处理接收到的状态
void MissionProcess::Parse(mavlink_message_t msg)
@@ -116,15 +179,32 @@ void MissionProcess::Parse(mavlink_message_t msg)
}break;
case MAVLINK_MSG_ID_MISSION_REQUEST_INT: {
mavlink_msg_mission_request_int_decode(&msg,&mission_request_int);
qDebug() << "recieve mission_request_int ";
mission_item_int.seq++;
mission_status.transmit.isWaiteforRequest = false;
}break;
case MAVLINK_MSG_ID_MISSION_REQUEST: {
mavlink_msg_mission_request_decode(&msg,&mission_request);
qDebug() << "recieve mission_request ";
mission_item_int.seq++;
mission_status.transmit.isWaiteforRequest = false;
}break;
case MAVLINK_MSG_ID_MISSION_ITEM_INT: {
mavlink_msg_mission_item_int_decode(&msg,&mission_item_int);
qDebug() << "recieve mission " << mission_item_int.seq;
//把航点发出去
emit receivedPoint(mission_item_int.param1,mission_item_int.param2,mission_item_int.param3,mission_item_int.param4,
mission_item_int.x,mission_item_int.y,mission_item_int.z,
mission_item_int.seq,0,
mission_item_int.command,
mission_item_int.target_system,
mission_item_int.target_component,
mission_item_int.frame,
mission_item_int.current,
mission_item_int.autocontinue,
mission_item_int.mission_type);
mission_status.recieve.isWaitingforItem = false;//已经收到航点,不用再等待
}break;
case MAVLINK_MSG_ID_MISSION_ITEM: {
@@ -293,6 +373,7 @@ void MissionProcess::WriteStateMachine(void)
if(step == 0)
{
//向其他线程或者自己读取航点的数量
qDebug() << "start send count";
count(mission_status.transmit.count);//发送count
mission_status.transmit.isWaiteforRequest = true;
time = QTime::currentTime().msecsSinceStartOfDay();
@@ -310,12 +391,18 @@ void MissionProcess::WriteStateMachine(void)
step = 0;
mission_status.m_Mode = Nop_Mode;
timeout_count = 0;
qDebug() << "waitfor request time out,abort transmit";
}
qDebug() << "waitfor request time out" << timeout_count;
}
else//如果没有超时,那么就进入下一个阶段
{
if(mission_status.transmit.isWaiteforRequest == false)
{
qDebug() << "recieve item Request";
mission_item_int.seq = 0;
step ++;
time = QTime::currentTime().msecsSinceStartOfDay();
}
@@ -332,8 +419,11 @@ void MissionProcess::WriteStateMachine(void)
step = 0;
mission_status.m_Mode = Nop_Mode;
timeout_count = 0;
qDebug() << "send item time out,abort transmit";
}
//如果超时了,重新发一次当前航点
qDebug() << "send item time out" << timeout_count;
mission_status.transmit.isWaiteforRequest = false;
}
@@ -342,9 +432,26 @@ void MissionProcess::WriteStateMachine(void)
if(mission_status.transmit.isWaiteforRequest == false)//收到Request
{
//分成两类,int和不带int
if(mission_item_int.seq < mission_count.count)
if(mission_item_int.seq < mission_status.transmit.count)
{
//item_int(mission_item_int.seq+1);//发送航点
qDebug() << "send item" << mission_item_int.seq;
mapcontrol::WayPointItem::_property i;
i = *items.find(mission_item_int.seq);
/*
item_int(i.param1,i.param2,i.param3,i.param4,
i.x,i.y,i.z,
i.seq,i.command,i.frame,
i.current,i.autocontinue,i.mission_type);//发送航点
*/
item(i.param1,i.param2,i.param3,i.param4,
i.x * 10e-7,i.y * 10e-7,i.z * 10e-4,
i.seq,i.command,i.frame,
i.current,i.autocontinue,i.mission_type);//发送航点
mission_status.transmit.isWaiteforRequest = true;
time = QTime::currentTime().msecsSinceStartOfDay();
@@ -365,6 +472,7 @@ void MissionProcess::WriteStateMachine(void)
timeout_count ++;
if(timeout_count > 5)//如果指令发5次还没发出去,那么结束读取
{
qDebug() << "wait for ack time out ,transmit compelet";
step = 0;
mission_status.m_Mode = Nop_Mode;
mission_status.transmit.isWaiteforACK = false;
@@ -377,6 +485,7 @@ void MissionProcess::WriteStateMachine(void)
//收到ACK
if(mission_status.transmit.isWaiteforACK == false)
{
qDebug() << "recieve ack ,transmit compelet";
step = 0;
mission_status.m_Mode = Nop_Mode;
mission_status.transmit.isWaiteforRequest = false;
+36 -6
View File
@@ -4,6 +4,10 @@
#include <QObject>
//#include "mavlinknode.h"
#include "opmapwidget.h"
#include "waypointitem.h"
#include "maptype.h"
#include "QDebug"
#include "QThread"
#include "mavlink.h"
@@ -51,9 +55,7 @@ public:
_mission_ mission_status;
//读取航线的指令
void ReadCmd(uint8_t m_sysid, uint8_t m_compid);
void WriteCmd(uint8_t m_sysid, uint8_t m_compid ,uint32_t count );
public slots:
//线程对外接口
void setRunFrq(uint32_t frq);
@@ -64,8 +66,21 @@ public slots:
void Parse(mavlink_message_t msg);
//读取航线的指令
void ReadCmd(uint8_t m_sysid, uint8_t m_compid);
void WriteCmd(uint8_t m_sysid, uint8_t m_compid ,uint32_t count );
void transmitPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type);
private slots:
@@ -110,6 +125,21 @@ signals:
void SendMessageTo(quint8 ch, quint8 *data,quint16 len);
void receivedPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type);
private:
uint8_t sysid;
@@ -135,7 +165,7 @@ private:
QList<mapcontrol::WayPointItem *> wplist;
//bool isReadMission = false;
@@ -145,7 +175,7 @@ private:
//bool isWriteMission = false;
QMap<int,mapcontrol::WayPointItem::_property> items;
//bool ismTimerTimeOut = false;
+65 -5
View File
@@ -308,7 +308,7 @@ void OPMapWidget::mouseDoubleClickEvent(QMouseEvent *event)
p = map->mapFromParent(p);
internals::PointLatLng LatLng;
LatLng = map->FromLocalToLatLng(p.x(), p.y());
WayPointItem *Item = WPCreate(LatLng,0);
WayPointItem *Item = WPCreate(LatLng,50);
WPLineCreate(WPFind(Item->Number() - 1),Item,Qt::green,false,2);
//qDebug() << "OPMapWidget" << Item->Number() <<QString::number(LatLng.Lat(),'f',8) << QString::number(LatLng.Lng(),'f',8);
@@ -875,29 +875,89 @@ void OPMapWidget::setWPCreate(bool const & value)
isWPCreate = value;
}
void OPMapWidget::WPLoad(void)
void OPMapWidget::WPLoad(void)//带文件目录参数
{
qDebug() << "WPLoad";
}
void OPMapWidget::WPSave(void)
void OPMapWidget::WPSave(void)//带文件目录参数
{
qDebug() << "WPSave";
}
void OPMapWidget::WPDownload(void)
{
//请求读取航点
qDebug() << "WPDownload";
WPDeleteAll();
emit signal_WPDownload(1,0);
}
void OPMapWidget::WPUpload(void)
{
//发送第一个
QList<mapcontrol::WayPointItem *> list;
//QMap<int,QVector<QVariant>> list;
//先发送一个清空指令
foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (w) {
list.append(w);
w->emitWPProperty();
}
}
qDebug() << "WPUpload" << list.size();
emit signal_WPUpload(1,0,list.size());//直接发送全部航点到
}
void OPMapWidget::receivedPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type)
{
qDebug() << "receivers Point" << x * 10e-8 << y * 10e-8 << 10e-8;
internals::PointLatLng LatLng;
LatLng.SetLat(x * 10e-8);
LatLng.SetLng(y * 10e-8);
WayPointItem *Item = WPCreate(LatLng,z);
emit setWPProperty(param1,param2,param3,param4,
x,y,z,
seq,
group,
command,
target_system,
target_component,
frame,
current,
autocontinue,
mission_type);
WPLineCreate(WPFind(Item->Number() - 1),Item,Qt::green,false,2);
}
}
+30
View File
@@ -524,9 +524,39 @@ signals:
void signal_WPDownload(uint8_t m_sysid, uint8_t m_compid);
void signal_WPUpload(uint8_t m_sysid, uint8_t m_compid, uint32_t count);
void transmitPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type);
public slots:
void receivedPoint(float param1,float param2,float param3,float param4,
int32_t x,int32_t y,float z,
uint16_t seq,
uint16_t group,
uint16_t command,
uint8_t target_system,
uint8_t target_component,
uint8_t frame,
uint8_t current,
uint8_t autocontinue,
uint8_t mission_type);
void WPLineDelete(WayPointItem *from, WayPointItem *to);
WayPointLine *WPLineFind(WayPointItem *from, WayPointItem *to);