完成航点传输
This commit is contained in:
@@ -68,17 +68,17 @@ void MultiSelector::setCurrent(QString value)
|
||||
|
||||
|
||||
//设置列表
|
||||
void MultiSelector::setList(QMap<QString,QString> list)
|
||||
void MultiSelector::setList(QMap<int, QVector< QString> > list)
|
||||
{
|
||||
stringmap.clear();
|
||||
|
||||
stringmap = list;
|
||||
|
||||
reBuildList();
|
||||
setCurrent(stringmap.begin().value());
|
||||
setCurrent(stringmap.begin().value().at(0));
|
||||
}
|
||||
|
||||
void MultiSelector::setList(QMap<QString, QString> list, QString current)
|
||||
void MultiSelector::setList(QMap<int, QVector<QString> > list, QString current)
|
||||
{
|
||||
stringmap.clear();
|
||||
|
||||
@@ -92,10 +92,14 @@ void MultiSelector::setList(QMap<QString, QString> list, QString current)
|
||||
void MultiSelector::reBuildList(void)
|
||||
{
|
||||
ui->listWidget->clear();
|
||||
for (QMap<QString,QString>::iterator i = stringmap.begin();i != stringmap.end(); ++i)
|
||||
for (QMap<int, QVector< QString> >::iterator i = stringmap.begin();i != stringmap.end(); ++i)
|
||||
{
|
||||
QString Seq = i.key();
|
||||
QString Type = i.value();
|
||||
int index = i.key();
|
||||
|
||||
QVector< QString> w = i.value();
|
||||
|
||||
QString Seq = w.at(0);
|
||||
QString Type = w.at(1);
|
||||
|
||||
QWidget *widget = new QWidget(ui->listWidget);
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ public slots:
|
||||
void setCategory(QStringList list);
|
||||
void setCurrent(QString value);
|
||||
|
||||
void setList(QMap<QString,QString> list);
|
||||
void setList(QMap<QString,QString> list,QString current);
|
||||
void setList(QMap<int, QVector<QString> > list);
|
||||
void setList(QMap<int, QVector<QString> > list, QString current);
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ private:
|
||||
private:
|
||||
Ui::MultiSelector *ui;
|
||||
|
||||
QMap<QString,QString> stringmap;
|
||||
QMap<int, QVector< QString> > stringmap;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -981,6 +981,7 @@ void propertyui::setallPoint(QMap<int,int> list)
|
||||
|
||||
for (QMap<int,int>::iterator i = list.begin();i != list.end(); ++i)
|
||||
{
|
||||
int index = i.key();
|
||||
QString Seq = QString::number(i.key());
|
||||
QString Type;
|
||||
|
||||
@@ -994,7 +995,21 @@ void propertyui::setallPoint(QMap<int,int> list)
|
||||
Type = (QString)info.toObject().find(_friendlyNameJsonKey).value().toString();
|
||||
}
|
||||
}
|
||||
allPoint.insert(Seq,Type);
|
||||
|
||||
//string存在排序问题
|
||||
|
||||
QVector< QString> value;
|
||||
|
||||
value << Seq
|
||||
<< Type;
|
||||
|
||||
|
||||
allPoint.insert(index,value);
|
||||
}
|
||||
|
||||
for (QMap<int, QVector< QString> >::iterator i = allPoint.begin();i != allPoint.end(); ++i)
|
||||
{
|
||||
qDebug() << i.key() << i.value();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -388,7 +388,7 @@ private:
|
||||
QString param7_type = "QLineEdit";
|
||||
|
||||
|
||||
QMap<QString,QString> allPoint;//所有航点
|
||||
QMap<int,QVector<QString>> allPoint;//所有航点
|
||||
|
||||
};
|
||||
|
||||
|
||||
+4
-3
@@ -172,12 +172,13 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
|
||||
qRegisterMetaType<int32_t>("int32_t");
|
||||
|
||||
//生成航线必须在map线程完成,因此不能直接连接
|
||||
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);
|
||||
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)));
|
||||
|
||||
|
||||
//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);
|
||||
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);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -214,6 +214,7 @@ void MissionProcess::Parse(mavlink_message_t msg)
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_MISSION_ACK: {
|
||||
mavlink_msg_mission_ack_decode(&msg,&mission_ack);
|
||||
mission_status.transmit.isWaiteforACK = false;
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_MISSION_CURRENT: {
|
||||
mavlink_msg_mission_current_decode(&msg,&mission_current);
|
||||
@@ -441,19 +442,27 @@ void MissionProcess::WriteStateMachine(void)
|
||||
|
||||
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;
|
||||
if(mission_item_int.seq < (mission_status.transmit.count - 1))
|
||||
{
|
||||
mission_status.transmit.isWaiteforRequest = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
step++;
|
||||
mission_status.transmit.isWaiteforACK = true;
|
||||
}
|
||||
|
||||
time = QTime::currentTime().msecsSinceStartOfDay();
|
||||
}
|
||||
@@ -479,7 +488,7 @@ void MissionProcess::WriteStateMachine(void)
|
||||
mission_status.transmit.isWaiteforACK = false;
|
||||
timeout_count = 0;
|
||||
}
|
||||
|
||||
qDebug() << "wait for ack time out";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -312,6 +312,8 @@ void OPMapWidget::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
|
||||
WPLineCreate(WPFind(Item->Number() - 1),Item,Qt::green,false,2);
|
||||
|
||||
qDebug() << "WPCreate Point"
|
||||
<< QThread::currentThreadId();
|
||||
}
|
||||
}
|
||||
emit MouseDoubleClickEvent(event);
|
||||
@@ -853,17 +855,25 @@ void OPMapWidget::setWPLock(bool const & lock)
|
||||
|
||||
void OPMapWidget::WPsearchall(void)
|
||||
{
|
||||
//重新排序一下
|
||||
|
||||
//QList<mapcontrol::WayPointItem *> list;
|
||||
|
||||
QMap<int,int> list;
|
||||
|
||||
foreach(QGraphicsItem * i, map->childItems()) {
|
||||
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
|
||||
if (w) {
|
||||
|
||||
list.insert(w->Number(),w->Command());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
for (QMap<int,int>::iterator i = list.begin();i != list.end(); ++i)
|
||||
{
|
||||
qDebug() << i.key() << i.value();
|
||||
}
|
||||
|
||||
|
||||
if(list.size() != 0)
|
||||
{
|
||||
emit allPoint(list);
|
||||
@@ -901,23 +911,19 @@ 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();
|
||||
w->emitWPProperty();
|
||||
}
|
||||
}
|
||||
|
||||
qDebug() << "WPUpload" << list.size();
|
||||
|
||||
//emit signal_WPUpload(1,0,list.size());//直接发送全部航点到
|
||||
emit signal_WPUpload(1,0,list.size());//直接发送全部航点到
|
||||
|
||||
}
|
||||
|
||||
@@ -935,6 +941,9 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
|
||||
uint8_t mission_type)
|
||||
{
|
||||
|
||||
qDebug() << "receivers Point"
|
||||
<< QThread::currentThreadId();
|
||||
|
||||
qDebug() << "receivers Point" << x * 10e-8 << y * 10e-8 << 10e-8;
|
||||
|
||||
internals::PointLatLng LatLng;
|
||||
@@ -944,7 +953,7 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
|
||||
|
||||
WayPointItem *Item = WPCreate(LatLng,z);
|
||||
|
||||
/*
|
||||
|
||||
emit setWPProperty(param1,param2,param3,param4,
|
||||
x,y,z,
|
||||
seq,
|
||||
@@ -956,7 +965,7 @@ void OPMapWidget::receivedPoint(float param1,float param2,float param3,float par
|
||||
current,
|
||||
autocontinue,
|
||||
mission_type);
|
||||
*/
|
||||
|
||||
|
||||
|
||||
WPLineCreate(WPFind(Item->Number() - 1),Item,Qt::green,false,2);
|
||||
|
||||
Reference in New Issue
Block a user