QGC分析(一)-整体分析和通信流程

参考QGroundControl开发指南

设计理念

QGC用户界面是用QML实现的。

构建

可以按照这一篇来在Windows中下载源码并且编译。QGroungControl在QT中源码编译(包括配置环境)

通信流程

src/comm/LinkManager.cc

  • LinkManager始终打开UDP端口,等待车辆心跳
  • LinkManager检测到一种新的已知设备类型(Pixhawk,SiK Radio,PX4 Flow),该类型与计算机建立UDP连接。LinkManager在计算机和设备之间创建新的串行连接。

src/comm/MAVLinkProtocol.cc

  • 从Link传入的bytes将发送到MAVLinkProtocol
  • MAVLinkProtocol将字节转换为MAVLINK消息
    在这里插入图片描述
  • 如果_multiVehicleManager收到心跳包,将根据信息创建新的对象
    在这里插入图片描述
    在这里插入图片描述
    src/FactSystem/ParameterManager.cc
  • 车辆对象实例化与车辆匹配的插件。与车辆对象关联的ParameterLoader向连接的设备发送PARAM_REQUEST_LIST,以使用参数协议加载参数。
    在这里插入图片描述
    src/MissionManager/MissionManager.cc
  • 参数加载完成之后,MissionManager联系到车辆对象,使用任务协议从连接的设备请求mission items
    在这里插入图片描述
    src/VehicleSetUp/VehicleComponent.cc
  • 参数加载完成后,VehicleComponent将在“SetUp”视图中显示其 UI
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qaaaaaaz/article/details/130460042
今日推荐