Skip to content

插件架构

尽管 MAVLink 规范定义了与载具通信的标准通信协议。 这个规范在许多方面需要固件开发者来解释。 Because of this there are many cases where communication with a vehicle running one firmware is slightly different than communication with a vehicle running a different firmware in order to accomplish the same task. 此外,每个固件可能实现一个不同的 MAVLink 命令集的子集。

另一个主要问题是MAVLink规范不包括载具配置或通用参数集。 Due to this all code which relates to vehicle setup ends up being firmware specific. 正因如此,所有与载具配置相关的代码最终都具有固件特定性。 此外,任何必须引用特定参数的代码也是特定于固件的。

鉴于固件实现之间的所有这些差异,创建单个地面站应用程序可能非常棘手,可以支持每个应用程序而不会使代码库降级为基于载具使用的固件在任何地方遍布的大量if / then / else语句。

QGC 使用插件架构将固件特定代码与通用至所有固件的代码隔离开来。 这主要由 FirmwarePluginAutoPilotPlugin 来完成。

此插件架构也被自定义构建用来允许在标准的 QGC 能够提供的情况下进行进一步的自定义操作。

固件插件

这是用来创建通向Mavlink中通常不标准化的部分的标准接口。

自动驾驶插件

这用于为载具安装提供用户界面。

QGC核心插件

这用于通过标准接口展示 QGC 应用程序本身与载具无关的功能。 然后由自定义构建来根据他们的需要调整 QGC 功能。