/*===================================================================== PIXHAWK Micro Air Vehicle Flying Robotics Toolkit (c) 2009, 2010 PIXHAWK PROJECT This file is part of the PIXHAWK project PIXHAWK is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. PIXHAWK is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PIXHAWK. If not, see . ======================================================================*/ /** * @file * @brief Definition of list of waypoints widget * * @author Lorenz Meier * @author Benjamin Knecht * @author Petri Tanskanen * */ #ifndef WAYPOINTLIST_H #define WAYPOINTLIST_H #include #include #include #include #include "Waypoint.h" #include "UASInterface.h" #include "WaypointView.h" namespace Ui { class WaypointList; } class WaypointList : public QWidget { Q_OBJECT Q_DISABLE_COPY(WaypointList) public: WaypointList(QWidget* parent = NULL, UASInterface* uas = NULL); virtual ~WaypointList(); public slots: void setUAS(UASInterface* uas); void redrawList(); //UI Buttons void saveWaypoints(); void loadWaypoints(); void transmit(); void read(); /** @brief Add a waypoint */ void add(); /** @brief Add a waypoint at the current MAV position */ void addCurrentPositonWaypoint(); void moveUp(Waypoint* wp); void moveDown(Waypoint* wp); /** @brief sets statusLabel string */ void updateStatusLabel(const QString &string); void changeCurrentWaypoint(quint16 seq); ///< The user wants to change the current waypoint void currentWaypointChanged(quint16 seq); ///< The waypointplanner changed the current waypoint void setWaypoint(quint16 id, double x, double y, double z, double yaw, bool autocontinue, bool current, double orbit, int holdTime); void addWaypoint(Waypoint* wp); void removeWaypoint(Waypoint* wp); void waypointReached(quint16 waypointId); void updateLocalPosition(UASInterface*, double x, double y, double z, quint64 usec); void updateAttitude(UASInterface*, double roll, double pitch, double yaw, quint64 usec); signals: void sendWaypoints(); void requestWaypoints(); void clearWaypointList(); void setCurrent(quint16); protected: virtual void changeEvent(QEvent *e); QMap wpViews; QVBoxLayout* listLayout; UASInterface* uas; double mavX; double mavY; double mavZ; double mavYaw; private: Ui::WaypointList *m_ui; }; #endif // WAYPOINTLIST_H