QGC关于通信连接建立部分的程序比较复杂,但感觉写的很厉害,通过读代码把自己的一点理解记录下来。
收集接收
-
空地通信管理
空地通信的管理在“应用程序设置->通讯连接”中进行通信连接创建,连接和断开。

通讯连接添加完成后点击“连接”按钮,进行空地通信连接
-
连接创建过程
“连接”按钮与LinkSetting.qml中的QGCButton绑定,绑定LinkManager::createConnectedLink(),其中传参为当前连接名称。


创建连接的的实际程序在LinkManager::createConnectedLink(SharedLinkConfigurationPointer& config, bool isPX4Flow)中,其中传参为通讯的参数和isPx4Flow。创建LinkInterface类指针,通过端口类型创建不同的实例(串口、TCP、UDP、LogReplay、Mock),本文只分析UDP创建过程。
pLink = new UDPLink(config);