QGroundControl无人机地面站 QGCApplication.h
来源:互联网 发布:轩辕剑进阶数据 编辑:程序博客网 时间:2024/05/17 20:29
联系作者 qq 843230304 ,欢迎交流分享
QGroundControl无人机地面站 QGCApplication.h各个函数功能详解
集中管理地面站的各种功能
@brief The main application and management class.This class is started by the main method and providesthe central management unit of the groundstation application.
- 程序配置
- 运行单元测试
- 消息提示
- 最后家点位置
- 窗口管理
- 日志管理
- 应用程序管理(界面风格)
private :
QGCToolbox* _toolbox; //整个应用程序的全局工具盒
/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************//** * @file * @brief Definition of main class * * @author Lorenz Meier <mavteam@student.ethz.ch> * */#ifndef QGCAPPLICATION_H#define QGCAPPLICATION_H#include <QApplication>#include <QTimer>#include <QQmlApplicationEngine>#include "LinkConfiguration.h"#include "LinkManager.h"#include "MAVLinkProtocol.h"#include "FlightMapSettings.h"#include "FirmwarePluginManager.h"#include "MultiVehicleManager.h"#include "JoystickManager.h"#include "GAudioOutput.h"#include "UASMessageHandler.h"#include "FactSystem.h"#ifdef QGC_RTLAB_ENABLED#include "OpalLink.h"#endif// Work around circular header includesclass QGCSingleton;class MainWindow;class QGCToolbox;/** * @brief The main application and management class. * * This class is started by the main method and provides * the central management unit of the groundstation application. * **/class QGCApplication : public#ifdef __mobile__ QGuiApplication // Native Qml based application#else QApplication // QtWidget based application#endif{ Q_OBJECTpublic: QGCApplication(int &argc, char* argv[], bool unitTesting); ~QGCApplication(); static const char* parameterFileExtension; static const char* missionFileExtension; static const char* fenceFileExtension; static const char* rallyPointFileExtension; static const char* telemetryFileExtension; /// @brief Sets the persistent flag to delete all settings the next time QGroundControl is started. /// 重启删除所有设置 void deleteAllSettingsNextBoot(void); /// @brief Clears the persistent flag to delete all settings the next time QGroundControl is started. /// 重启清空所有设置 void clearDeleteAllSettingsNextBoot(void); /// @brief Returns truee if unit test are being run /// 运行单元测试 bool runningUnitTests(void) { return _runningUnitTests; } /// Used to report a missing Parameter. Warning will be displayed to user. /// Method may be called multiple times. /// 用于报告丢失的参数 void reportMissingParameter(int componentId, const QString& name); /// Show a non-modal message to the user /// 向用户显示非模态消息 void showMessage(const QString& message); /// @return true: Fake ui into showing mobile interface /// 返回真,隐藏UI界面 显示 移动设备的实例 bool fakeMobile(void) { return _fakeMobile; }#ifdef QT_DEBUG /// 测试 高分辨率 (像素/每英寸) bool testHighDPI(void) { return _testHighDPI; }#endif // Still working on getting rid of this and using dependency injection instead for everything /// 获取APP的工具箱 QGCToolbox* toolbox(void) { return _toolbox; } /// Do we have Bluetooth Support? /// 是否支持蓝牙 bool isBluetoothAvailable() { return _bluetoothAvailable; } ///读取 最后家点位置 QGeoCoordinate lastKnownHomePosition(void) { return _lastKnownHomePosition; } ///设置 最后家点位置 void setLastKnownHomePosition(QGeoCoordinate& lastKnownHomePosition);public slots: /// You can connect to this slot to show an information message box from a different thread. /// 您可以连接到这个槽,以显示来自不同线程的 信息消息框 void informationMessageBoxOnMainThread(const QString& title, const QString& msg); /// You can connect to this slot to show a warning message box from a different thread. /// 您可以连接到这个槽,以显示来自不同线程的 警告消息框 void warningMessageBoxOnMainThread(const QString& title, const QString& msg); /// You can connect to this slot to show a critical message box from a different thread. /// 您可以连接到这个槽,以显示来自不同线程的一个 危险消息框 void criticalMessageBoxOnMainThread(const QString& title, const QString& msg); /// 显示设置界面 void showSetupView(void); /// 程序关闭之前的处理 void qmlAttemptWindowClose(void);#ifndef __mobile__ /// Save the specified telemetry Log /// 保存指定的日志文件 void saveTelemetryLogOnMainThread(QString tempLogfile); /// Check that the telemetry save path is set correctly /// 检查飞行日志路径是否正确 void checkTelemetrySavePathOnMainThread(void);#endifsignals: /// This is connected to MAVLinkProtocol::checkForLostLogFiles. We signal this to ourselves to call the slot /// on the MAVLinkProtocol thread; /// /// 这个信号连接到MAVLinkProtocol::checkForLostLogFiles /// 我们把这个信号发送给我们自己 去调用在MAVLinkProtocol线程上的槽函数 void checkForLostLogFiles(void);public: // Although public, these methods are internal and should only be called by UnitTest code //----------------尽管公开, 这些方法是内部的, 只能由UnitTest代码调用---------------------------- /// @brief Perform initialize which is common to both normal application running and unit tests. /// Although public should only be called by main. /// 执行初始化,这在正常的应用程序运行和单元测试中都是常见的 /// 注册qml对象 void _initCommon(void); /// @brief Intialize the application for normal application boot. Or in other words we are not going to run /// unit tests. Although public should only be called by main. /// 初始化应用程序用于正常启动. /// 否则不能运行单元测试 /// 虽然是Public的,只能被main函数调用 bool _initForNormalAppBoot(void); /// @brief Intialize the application for normal application boot. Or in other words we are not going to run /// unit tests. Although public should only be called by main. /// 初始化应用程序用于正常启动. /// 否则不能运行单元测试 /// 虽然是Public的,只能被main函数调用 bool _initForUnitTests(void); /// 加载当前应用 程序风格 void _loadCurrentStyleSheet(void); ///自己的单例。只能直接被 qgcApp() 引用 static QGCApplication* _app; ///< Our own singleton. Should be reference directly by qgcApppublic: // Although public, these methods are internal and should only be called by UnitTest code //----------------尽管公开, 这些方法是内部的, 只能由UnitTest代码调用---------------------------- /// Shutdown the application object /// 关闭 application 对象 void _shutdown(void); /// 检查 遥测保存路径 bool _checkTelemetrySavePath(bool useMessageBox);private slots: /// 在延迟计时器触发时调用, 以显示丢失的参数警告 void _missingParamsDisplay(void);private: /// 返回 qml根对象 QObject* _rootQmlObject(void);#ifdef __mobile__ QQmlApplicationEngine* _qmlAppEngine;#endif ///< true: running unit tests, false: normal app ///< true: 运行单元测试, false: 正常app bool _runningUnitTests; static const char* _darkStyleFile; static const char* _lightStyleFile; static const int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display QStringList _missingParams; ///< List of missing facts to be displayed bool _fakeMobile; ///< true: Fake ui into displaying mobile interface bool _settingsUpgraded; ///< true: Settings format has been upgrade to new version#ifdef QT_DEBUG bool _testHighDPI; ///< true: double fonts sizes for simulating high dpi devices#endif QGCToolbox* _toolbox; bool _bluetoothAvailable; QGeoCoordinate _lastKnownHomePosition; ///< Map position when all other sources fail static const char* _settingsVersionKey; ///< Settings key which hold settings version static const char* _deleteAllSettingsKey; ///< If this settings key is set on boot, all settings will be deleted static const char* _lastKnownHomePositionLatKey; static const char* _lastKnownHomePositionLonKey; static const char* _lastKnownHomePositionAltKey; /// Unit Test have access to creating and destroying singletons friend class UnitTest;};/// @brief Returns the QGCApplication object singleton.QGCApplication* qgcApp(void);#endif
阅读全文
0 0
- QGroundControl无人机地面站 QGCApplication.h
- QGroundControl无人机地面站 QGCToolbox
- QGroundControl无人机地面站MAVLinkProtocol类
- QGroundControl 笔记 —— QGCApplication
- 小型无人机地面站导航显示系统设计
- px4开发指南——linux下qgroundcontrol地面站安装
- 为QGroundControl地面站二次开发所做的准备
- QGroundControl地面站二次开发环境搭建(win+linux+android)
- qgroundcontrol
- 地面站
- QGroundControl install
- 四旋翼无人机飞行控制算法H∞控制
- build qgroundcontrol source code
- Ubuntu 16.04运行qgroundcontrol
- QGC的QGroundControl
- # QGroundControl学习(一)
- 遥测地面站 资料收集
- 飞行器地面站 C#控件
- 判断一个单链表是否有环及环…
- C++指针数组和指向指针的指针
- H.264标准
- 数字电视标准5种规格720p、1080i和…
- C语言实现把字符串转换成整数
- QGroundControl无人机地面站 QGCApplication.h
- 二进制数、八进制数、十六进制数与…
- OpenCV2.3.1_VS2010完整配置
- VC 2008 Express下安装OpenCV2.3.1
- cvHaarDetectObjects函数参数解释
- Java中常见的50个错误、异常及规避技巧
- 浅析人脸检测之Haar分类器方法:Ha…
- 【电脑】PS如何批量处理图片
- opencv中的Cxcore绘图函数