WaypointList.h 2.67 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/*=====================================================================

PIXHAWK Micro Air Vehicle Flying Robotics Toolkit

(c) 2009, 2010 PIXHAWK PROJECT  <http://pixhawk.ethz.ch>

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 <http://www.gnu.org/licenses/>.

======================================================================*/

/**
 * @file
 *   @brief Definition of list of waypoints widget
 *
 *   @author Lorenz Meier <mavteam@student.ethz.ch>
 *   @author Benjamin Knecht <mavteam@student.ethz.ch>
30
 *   @author Petri Tanskanen <mavteam@student.ethz.ch>
pixhawk's avatar
pixhawk committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
 *
 */

#ifndef WAYPOINTLIST_H
#define WAYPOINTLIST_H

#include <QtGui/QWidget>
#include <QMap>
#include <QVBoxLayout>
#include <QTimer>
#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();
pixhawk's avatar
pixhawk committed
59 60 61 62 63

    //UI Buttons
    void saveWaypoints();
    void loadWaypoints();    
    void transmit();
64
    void read();
pixhawk's avatar
pixhawk committed
65
    void add();
pixhawk's avatar
pixhawk committed
66 67
    void moveUp(Waypoint* wp);
    void moveDown(Waypoint* wp);
pixhawk's avatar
pixhawk committed
68

69 70 71
    /** @brief sets statusLabel string */
    void updateStatusLabel(const QString &string);

pixhawk's avatar
pixhawk committed
72 73
    void currentWaypointChanged(quint16 seq);

pixhawk's avatar
pixhawk committed
74
    //To be moved to UASWaypointManager (?)
pixhawk's avatar
pixhawk committed
75
    void setWaypoint(int uasId, quint16 id, double x, double y, double z, double yaw, bool autocontinue, bool current, double orbit, int holdTime);
pixhawk's avatar
pixhawk committed
76
    void addWaypoint(Waypoint* wp);
77 78
    void removeWaypoint(Waypoint* wp);
    void waypointReached(UASInterface* uas, quint16 waypointId);
pixhawk's avatar
pixhawk committed
79

pixhawk's avatar
pixhawk committed
80 81 82 83 84
signals:
    void sendWaypoints(const QVector<Waypoint*> &);
    void requestWaypoints();
    void clearWaypointList();

pixhawk's avatar
pixhawk committed
85 86
protected:
    virtual void changeEvent(QEvent *e);
pixhawk's avatar
pixhawk committed
87

pixhawk's avatar
pixhawk committed
88 89 90 91 92 93 94 95 96 97
    QVector<Waypoint*> waypoints;
    QMap<Waypoint*, WaypointView*> wpViews;
    QVBoxLayout* listLayout;
    UASInterface* uas;

private:
    Ui::WaypointList *m_ui;
};

#endif // WAYPOINTLIST_H