You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
4.2 KiB
168 lines
4.2 KiB
/*===================================================================== |
|
|
|
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 Main application window |
|
* @author Lorenz Meier <mavteam@student.ethz.ch> |
|
* |
|
*/ |
|
|
|
#ifndef _MAINWINDOW_H_ |
|
#define _MAINWINDOW_H_ |
|
|
|
#include <QtGui/QMainWindow> |
|
#include <QStatusBar> |
|
#include <QStackedWidget> |
|
|
|
#include "ui_MainWindow.h" |
|
#include "LinkManager.h" |
|
#include "LinkInterface.h" |
|
#include "UASInterface.h" |
|
#include "UASManager.h" |
|
#include "UASControlWidget.h" |
|
#include "LinechartWidget.h" |
|
#include "UASInfoWidget.h" |
|
#include "WaypointList.h" |
|
#include "CameraView.h" |
|
#include "UASListWidget.h" |
|
#include "MAVLinkProtocol.h" |
|
#include "MAVLinkSimulationLink.h" |
|
#include "AS4Protocol.h" |
|
#include "ObjectDetectionView.h" |
|
#include "HUD.h" |
|
#include "PFD.h" |
|
#include "GaugePanel.h" |
|
#include "JoystickWidget.h" |
|
#include "input/JoystickInput.h" |
|
#include "DebugConsole.h" |
|
#include "MapWidget.h" |
|
#include "ParameterInterface.h" |
|
#include "XMLCommProtocolWidget.h" |
|
#include "HDDisplay.h" |
|
|
|
#include "LogCompressor.h" |
|
|
|
|
|
/** |
|
* @brief Main Application Window |
|
* |
|
**/ |
|
class MainWindow : public QMainWindow { |
|
Q_OBJECT |
|
|
|
public: |
|
MainWindow(QWidget *parent = 0); |
|
~MainWindow(); |
|
|
|
UASControlWidget* control; |
|
LinechartWidget* linechart; |
|
UASInfoWidget* info; |
|
CameraView* camera; |
|
UASListWidget* list; |
|
WaypointList* waypoints; |
|
ObjectDetectionView* detection; |
|
HUD* hud; |
|
PFD* pfd; |
|
GaugePanel* gaugePanel; |
|
|
|
// Popup widgets |
|
JoystickWidget* joystickWidget; |
|
|
|
JoystickInput* joystick; |
|
|
|
/** User interface actions **/ |
|
QAction* connectUASAct; |
|
QAction* disconnectUASAct; |
|
QAction* startUASAct; |
|
QAction* returnUASAct; |
|
QAction* stopUASAct; |
|
QAction* killUASAct; |
|
QAction* simulateUASAct; |
|
|
|
public slots: |
|
/** |
|
* @brief Shows a status message on the bottom status bar |
|
* |
|
* The status message will be overwritten if a new message is posted to this function |
|
* |
|
* @param status message text |
|
* @param timeout how long the status should be displayed |
|
*/ |
|
void showStatusMessage(const QString& status, int timeout); |
|
void setLastAction(QString status); |
|
void setLinkStatus(QString status); |
|
void addLink(); |
|
void configure(); |
|
void UASCreated(UASInterface* uas); |
|
void startVideoCapture(); |
|
void stopVideoCapture(); |
|
void saveScreen(); |
|
|
|
/** @brief Load view for pilot */ |
|
void loadPilotView(); |
|
/** @brief Load view for engineer */ |
|
void loadEngineerView(); |
|
/** @brief Load view for operator */ |
|
void loadOperatorView(); |
|
/** @brief Load view for general settings */ |
|
void loadSettingsView(); |
|
|
|
void reloadStylesheet(); |
|
|
|
void runTests(); |
|
|
|
protected: |
|
QStatusBar* statusBar; |
|
QStatusBar* createStatusBar(); |
|
void loadWidgets(); |
|
void connectActions(); |
|
void clearView(); |
|
|
|
// TODO Should be moved elsewhere, as the protocol does not belong to the UI |
|
MAVLinkProtocol* mavlink; |
|
AS4Protocol* as4link; |
|
|
|
MAVLinkSimulationLink* simulationLink; |
|
LinkInterface* udpLink; |
|
|
|
QDockWidget* controlDock; |
|
QStackedWidget* centerStack; |
|
|
|
DebugConsole* debugConsole; |
|
MapWidget* map; |
|
ParameterInterface* parameters; |
|
XMLCommProtocolWidget* protocol; |
|
HDDisplay* headDown1; |
|
HDDisplay* headDown2; |
|
|
|
|
|
LogCompressor* comp; |
|
QString screenFileName; |
|
QTimer* videoTimer; |
|
|
|
private: |
|
Ui::MainWindow ui; |
|
}; |
|
|
|
#endif /* _MAINWINDOW_H_ */
|
|
|