QGC(GGroundControl) 系统核心架构图


关于QGC地面站其它文章请点击这里:     QGC地面站


● UML 核心类图:(点击图片放大看效果更好)

在这里插入图片描述

● 核心系统分析图:(点击图片放大看效果更好)

在这里插入图片描述

● 工程结构:

整个 QGC 工程由唯一的单例 _app 进行管理,它这个类只提供了唯一的实例,另外提供了一个访问它的全局函数

/// @brief Returns the QGCApplication object singleton.
QGCApplication* qgcApp(void)
{
    return QGCApplication::_app;
}

QGCTool 有两个 protected修饰的变量 _app_toolbox ,其派生类可以被调用,每一个派生类中的_app 和 _toolbox都是 QGCApplication 中传入的,且是唯一的(可以仔细看传入过程)

/// This is the base class for all tools
class QGCTool : public QObject {
    Q_OBJECT
	...
protected:
    QGCApplication* _app;
    QGCToolbox*     _toolbox;
};

在这里插入图片描述
● 在 QML 和 C++ 的交互中:
在这里插入图片描述
● QGCToolbox.h 中类的声明
在这里插入图片描述
最主要是防止互相包含

在class声明之后、定义之前的位置可以对class进行引用、定义类指针、定义类的函数指针、定义类的成员指针

不能有任何涉及类中成员对象的行为。防止互相包含,所以 不能是

#include MultiVehicleManager

而是

class MultiVehicleManager;
  • 24
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
回答: 要编译QGC并关闭系统,你需要按照以下步骤进行操作。首先,根据官方的要求,在Windows系统下安装Qt5.12.6版本,并安装vs2017作为Qt的编译器。\[1\]然后,下载QGC的源代码并递归克隆所有子模块。你可以使用以下命令进行克隆:git clone --recursive https://github.com/mavlink/qgroundcontrol.git。请注意,有些用户在使用git clone --recursive -j8命令时遇到了问题,你可以尝试去掉-j8参数再次尝试。\[3\]接下来,根据QGC的readme文件中的指南,按照相应的操作系统进行设置和配置。对于Windows系统,你需要按照readme中的说明进行开发环境的搭建,包括安装JDK、Java SE 8u281、Android SDK和Android NDK等。\[2\]最后,使用Qt编译器进行编译生成QGC软件。请确保你已经按照readme文件中的指南进行了正确的配置和设置。请注意,关闭系统是一个非常危险的操作,建议在进行此操作之前备份重要数据,并确保你知道如何重新启动系统。 #### 引用[.reference_title] - *1* *2* *3* [QGC4.1.2二次开发(1)--Qt5.12.6 andorid开发环境搭建](https://blog.csdn.net/jiandanyidianwd/article/details/115527819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值