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;

猜你喜欢

转载自blog.csdn.net/qq_16504163/article/details/124005216