上面这张图显示了qgroundcontrol地面站软件中的Mavlink Forwarding消息转发功能的实现流程。首先在qgc中会有LinkManager::_updateAutoConnectLinks函数,该函数中包含多种连接的实现,如串口,udp和forwarding流转连接的实现。并由LinkManager::setToolbox函数中
connect(&_portListTimer, &QTimer::timeout, this, &LinkManager::_updateAutoConnectLinks);来按一定时间的间隔来自动调用,这就实现了QGC地面站软件自动连接设备的功能。
在LinkManager::_updateAutoConnectLinks函数体中,调用了_addMAVLinkForwardingLink()这个函数。_addMAVLinkForwardingLink();函数中创建了新的动态连接_createDynamicForwardLink(_mavlinkForwardingLinkName, hostName);。并在这个函数中创建了连接createConnectedLink(config);,在createConnectedLink(config);函数体中使用了连接信号槽的connect方法,来实现消息的接收和转发,具体的实现可看代码,比较容易理解。
综上实现的QGC地面站软件的消息流转功能。