diff --git a/src/Waypoint.cc b/src/Waypoint.cc index 7901330..8dada49 100644 --- a/src/Waypoint.cc +++ b/src/Waypoint.cc @@ -75,6 +75,7 @@ bool Waypoint::load(QTextStream &loadStream) return false; } + void Waypoint::setId(quint16 id) { this->id = id; diff --git a/src/Waypoint.h b/src/Waypoint.h index 8e8f400..7e1a602 100644 --- a/src/Waypoint.h +++ b/src/Waypoint.h @@ -59,6 +59,7 @@ public: bool load(QTextStream &loadStream); + protected: quint16 id; float x; diff --git a/src/uas/SlugsMAV.cc b/src/uas/SlugsMAV.cc index 2f49745..24355ce 100644 --- a/src/uas/SlugsMAV.cc +++ b/src/uas/SlugsMAV.cc @@ -348,7 +348,7 @@ void SlugsMAV::receiveMessage(LinkInterface* link, mavlink_message_t message) #endif default: - qDebug() << "\nSLUGS RECEIVED MESSAGE WITH ID" << message.msgid; + //qDebug() << "\nSLUGS RECEIVED MESSAGE WITH ID" << message.msgid; break; } } diff --git a/src/uas/SlugsMAV.h b/src/uas/SlugsMAV.h index a4ee35b..f25e6b2 100644 --- a/src/uas/SlugsMAV.h +++ b/src/uas/SlugsMAV.h @@ -135,6 +135,8 @@ signals: uint8_t gpsvisSat, quint64 time); + + // Standart messages MAVLINK used by SLUGS void slugsActionAck(int systemId, uint8_t action, uint8_t result); diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index fb03c52..ef3719d 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -383,9 +383,12 @@ void UASWaypointManager::localLoadWaypoints(const QString &loadFile) } file.close(); + emit loadWPFile(); emit waypointListChanged(); + } + void UASWaypointManager::globalAddWaypoint(Waypoint *wp) { diff --git a/src/uas/UASWaypointManager.h b/src/uas/UASWaypointManager.h index a16c8d3..f7fb7ea 100644 --- a/src/uas/UASWaypointManager.h +++ b/src/uas/UASWaypointManager.h @@ -91,6 +91,7 @@ public: void localMoveWaypoint(quint16 cur_seq, quint16 new_seq); ///< locally move a waypoint from its current position cur_seq to a new position new_seq void localSaveWaypoints(const QString &saveFile); ///< saves the local waypoint list to saveFile void localLoadWaypoints(const QString &loadFile); ///< loads a waypoint list from loadFile + /*@}*/ /** @name Global waypoint list operations */ @@ -120,6 +121,8 @@ signals: void currentWaypointChanged(quint16); ///< emits the new current waypoint sequence number void updateStatusString(const QString &); ///< emits the current status string + void loadWPFile(); ///< emits signal that a file wp has been load + private: UAS &uas; ///< Reference to the corresponding UAS quint32 current_retries; ///< The current number of retries left diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index eb1ba7f..198cbec 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -395,6 +395,9 @@ void MainWindow::connectActions() // Slugs View connect(ui.actionShow_Slugs_View, SIGNAL(triggered()), this, SLOT(loadSlugsView())); + //GlobalOperatorView + // connect(ui.actionGlobalOperatorView,SIGNAL(triggered()),waypointsDockWidget->widget(),SLOT()) + } void MainWindow::showHelp() @@ -912,6 +915,7 @@ void MainWindow::loadGlobalOperatorView() { addDockWidget(Qt::BottomDockWidgetArea, waypointsDockWidget); waypointsDockWidget->show(); + } // Slugs Data View diff --git a/src/ui/MapWidget.cc b/src/ui/MapWidget.cc index 14120f7..ece5a39 100644 --- a/src/ui/MapWidget.cc +++ b/src/ui/MapWidget.cc @@ -396,7 +396,17 @@ void MapWidget::createWaypointGraphAtMap(const QPointF coordinate) str = QString("%1").arg(path->numberOfPoints()); // create the WP and set everything in the LineString to display the path - CirclePoint* tempCirclePoint = new CirclePoint(coordinate.x(), coordinate.y(), 10, str); + //CirclePoint* tempCirclePoint = new CirclePoint(coordinate.x(), coordinate.y(), 10, str); + Waypoint2DIcon* tempCirclePoint; + + if (mav) + { + tempCirclePoint = new Waypoint2DIcon(coordinate.x(), coordinate.y(), 20, str, qmapcontrol::Point::Middle, new QPen(mav->getColor())); + } + else + { + tempCirclePoint = new Waypoint2DIcon(coordinate.x(), coordinate.y(), 20, str, qmapcontrol::Point::Middle); + } mc->layer("Waypoints")->addGeometry(tempCirclePoint); Point* tempPoint = new Point(coordinate.x(), coordinate.y(),str); diff --git a/src/ui/SlugsDataSensorView.cc b/src/ui/SlugsDataSensorView.cc index b834a8f..53558f5 100644 --- a/src/ui/SlugsDataSensorView.cc +++ b/src/ui/SlugsDataSensorView.cc @@ -167,10 +167,6 @@ void SlugsDataSensorView::addUAS(UASInterface* uas) connect(slugsMav, SIGNAL(slugsGPSDateTime(int,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,quint64)),this,SLOT(slugsGPSDateTimeChanged(int,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,uint8_t,quint64))); - - - - // Set this UAS as active if it is the first one if(activeUAS == 0) { @@ -267,12 +263,6 @@ void SlugsDataSensorView::refresh() ui->m_pwmAvailable->setText("No Data"); - - - - - - } } diff --git a/src/ui/SlugsPIDControl.cpp b/src/ui/SlugsPIDControl.cpp index 31a1050..6fe74d5 100644 --- a/src/ui/SlugsPIDControl.cpp +++ b/src/ui/SlugsPIDControl.cpp @@ -337,5 +337,5 @@ void SlugsPIDControl::connect_Pitch2dT_LineEdit() void SlugsPIDControl::recibeMensaje(int systemId, uint8_t action, uint8_t result) { - ui->recepcion_label->setText(QString::number(action)); + ui->recepcion_label->setText("Mensaje Recibido: " + QString::number(action)); } diff --git a/src/ui/WaypointList.cc b/src/ui/WaypointList.cc index 1f7f133..bf75abf 100644 --- a/src/ui/WaypointList.cc +++ b/src/ui/WaypointList.cc @@ -91,6 +91,7 @@ WaypointList::WaypointList(QWidget *parent, UASInterface* uas) : this->setVisible(false); isGlobalWP = false; isLocalWP = false; + loadFileGlobalWP = false; centerMapCoordinate.setX(0.0); centerMapCoordinate.setY(0.0); @@ -131,6 +132,7 @@ void WaypointList::setUAS(UASInterface* uas) connect(&uas->getWaypointManager(), SIGNAL(updateStatusString(const QString &)), this, SLOT(updateStatusLabel(const QString &))); connect(&uas->getWaypointManager(), SIGNAL(waypointListChanged(void)), this, SLOT(waypointListChanged(void))); connect(&uas->getWaypointManager(), SIGNAL(currentWaypointChanged(quint16)), this, SLOT(currentWaypointChanged(quint16))); + connect(&uas->getWaypointManager(),SIGNAL(loadWPFile()),this,SLOT(setIsLoadFileWP())); } } @@ -147,9 +149,12 @@ void WaypointList::loadWaypoints() { if (uas) { + + QString fileName = QFileDialog::getOpenFileName(this, tr("Load File"), ".", tr("Waypoint File (*.txt)")); uas->getWaypointManager().localLoadWaypoints(fileName); - } + + } } void WaypointList::transmit() @@ -336,6 +341,11 @@ void WaypointList::waypointListChanged() WaypointGlobalView *wpgv = wpGlobalViews.value(wp); wpgv->updateValues(); listLayout->addWidget(wpgv); + if(loadFileGlobalWP) + { + emit createWaypointAtMap(QPointF(wp->getX(),wp->getY())); + qDebug()<<"Emitiendo Pos: "<getX()<<" - "<getY(); + } } } @@ -391,7 +401,7 @@ void WaypointList::waypointListChanged() } - + loadFileGlobalWP = false; } @@ -622,3 +632,8 @@ void WaypointList::changeWPPositionBySpinBox(Waypoint *wp) emit changePositionWPGlobalBySpinBox(wp->getId(), wp->getY(), wp->getX()); } + +void WaypointList::setIsLoadFileWP() +{ + loadFileGlobalWP = true; +} diff --git a/src/ui/WaypointList.h b/src/ui/WaypointList.h index 2432504..027a469 100644 --- a/src/ui/WaypointList.h +++ b/src/ui/WaypointList.h @@ -65,7 +65,7 @@ public slots: /** @brief Save the local waypoint list to a file */ void saveWaypoints(); /** @brief Load a waypoint list from a file */ - void loadWaypoints(); + void loadWaypoints(); /** @brief Transmit the local waypoint list to the UAS */ void transmit(); /** @brief Read the remote waypoint list */ @@ -102,6 +102,8 @@ public slots: void moveDown(Waypoint* wp); void removeWaypoint(Waypoint* wp); + void setIsLoadFileWP(); + @@ -128,6 +130,7 @@ protected: bool isGlobalWP; bool isLocalWP; QPointF centerMapCoordinate; + bool loadFileGlobalWP; private: Ui::WaypointList *m_ui;