QGroundControl笔记 —— 飞控自动连接
来源:互联网 发布:iptv第三方软件 编辑:程序博客网 时间:2024/04/29 07:18
by luoshi006
欢迎交流~ 个人 Gitter 交流平台,点击直达:
在 PX4 中可以在软件设置中设置是否启用自动连接:
QML 通过 Q_PROPERTY
宏,将属性注册到元对象系统中,实现与C++的交互【详见:http://blog.csdn.net/luoshi006/article/details/52353821】
Q_PROPERTY(bool usbDirect READ usbDirect WRITE setUsbDirect NOTIFY usbDirectChanged) ///< true: direct usb connection to board
此处实现复选框与属性 usbDirect
的交互。
在系统初始化【QGCToolbox】时,LinkManager
设置定时器,定时检测自动连接:
void LinkManager::setToolbox(QGCToolbox *toolbox){...... connect(&_portListTimer, &QTimer::timeout, this, &LinkManager::_updateAutoConnectLinks); _portListTimer.start(_autoconnectUpdateTimerMSecs); // timeout must be long enough to get past bootloader on second pass}
默认1000毫秒检测执行一次,
void LinkManager::_updateAutoConnectLinks(void){..... case QGCSerialPortInfo::BoardTypePX4FMUV4: if (_autoconnectPixhawk) { pSerialConfig = new SerialConfiguration(QString("Pixhawk on %1").arg(portInfo.portName().trimmed())); pSerialConfig->setUsbDirect(true); } break;........ if (pSerialConfig) { pSerialConfig->setBaud(boardType == QGCSerialPortInfo::BoardTypeSikRadio ? 57600 : 115200);.... _autoconnectConfigurations.append(pSerialConfig); createConnectedLink(pSerialConfig); }....}
两次跳转,调用 createConnectedLink()
:
LinkInterface* LinkManager::createConnectedLink(LinkConfiguration* config){.... if (serialConfig->usbDirect()) { _activeLinkCheckList.append((SerialLink*)pLink); if (!_activeLinkCheckTimer.isActive()) { _activeLinkCheckTimer.start(); }....}
至此,完成启动过程。
0 0
- QGroundControl笔记 —— 飞控自动连接
- QGroundControl 笔记 —— QGCApplication
- QGroundControl笔记 —— QGCToolbox
- QGroundControl笔记 —— MainWindow
- QGroundControl笔记 —— main()函数
- QGroundControl笔记 —— 串口数据流
- QGroundControl笔记 —— 自定义 MAVLink 消息
- QGroundControl笔记 —— 界面启动
- QGroundControl笔记 —— qmldir 模块管理
- QGroundControl笔记 —— 发送 MAVLink 消息
- QGroundControl —— MAVLink 命令
- QGroundControl Developers Guide——Overview
- QGroundControl Developers Guide——Communication Flow
- QGroundControl Developers Guide——Firmware Plugins
- QGroundControl Developers Guide——Class Hierarchy
- QGroundControl Developers Guide——Controls
- QGroundControl Developers Guide——Fact System
- QGroundControl Developers Guide——Parameters
- MLP多层感知机
- Caffe-使用C++的分类接口
- 卷积神经网络(CNN)的理解
- 键盘按键对应的ASCII码值
- 有关FragmentPagerAdapter适配器中的fragment数据刷新问题
- QGroundControl笔记 —— 飞控自动连接
- LeetCode 436. Find Right Interval 题解(C++)
- dfs序列 的lis
- 使用CSS3的@media来实现网页自适应
- Android 获取手机电量信息
- weka里面神经网络算法实践
- 浏览器兼容性问题
- 前端精选文摘:BFC 神奇背后的原理
- 一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞