diff --git a/src/Waypoint.cc b/src/Waypoint.cc index 7901330b9a561a8350596491f2db95f510ccb9c5..8dada49c43ef2a37c53ae270c73f7241fe3c91b8 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 8e8f40025aa81d307354fc2e07fd439611b37966..7e1a6022955045b1348c050a96c31360b63cb6a2 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 2f497457f8b10db47ca0b8760e3d19bd1f32efd4..24355ce696dd809059eca3ac62de26d78f08dea4 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 a4ee35bfc79d6040d4b04c345ea97473c94c67d2..f25e6b28b339636c3e2895cbe91a66dc1f36be39 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 fb03c520431ee630ada5f868433b4a92abf37209..ef3719dab63de49e778173f4c46f6920e31f4503 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 a16c8d3fe9a433a2af487b62f1da8751f042ab7d..f7fb7eace9b32573fb3e507f842fad2b7da1f37f 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 eb1ba7f90766d5ac519c632e05f75f13e50d854b..198cbecb636fe8185397fdf10f9ca6e9c21feaae 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 14120f79bddb668833ee6ca4dc0ed40c39bd777d..ece5a391a342f8a9c3726481ac7964366dcf8d42 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 b834a8f46ca3ab5badfedefd86ae3704f43c65a4..53558f533f0a2cc49e5dbd939cda23b4552afb44 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 31a10501bdef5faf64b5f0ecb49bd829249d93d5..6fe74d575e2cdb916e039aa47990dc18b2e83960 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 1f7f1332338fc7a834f93607dc78a43eebf55d4a..bf75abf33e777cceb3d895d8c91ec7935f2b7871 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 24325046f241622707310c749abdc34d2f58153c..027a46927dcef5739fa96f4a69c38ae326c74175 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;