基于Qt的无人直升机地面显控终端软件设计
2018-01-28程滔
程滔
摘要
在无人直升机地面测控系统中,既要保证设备的体积小,又要保证系统的实时性和稳定性,文章针对此问题提出了一种基于Qt,在Windows平台下的无人直升机显控终端软件设计新方法。Qt因具有跨平台特性,逐渐成为图形界面的主流开发工具。本软件采用基于Qt图形化视图框架,程序架构清晰。使用Qwt工具及样式表使得图形界面设计简单、界面友好美观。
【关键词】无人直升机 Qt 图形视图框架 样式表
1引言
无人直升机是指由无线电地面遥控飞行或/和自主控制飞行的可垂直起降不载人飞行器,在构造形式上属于旋翼飞行器,在功能上属于起降飞行器。无人直升机具有垂直起降、空中悬停、不拘泥于跑道等特点,能完成不适合有人直升机执行的危险空中作业或固定翼无人机无法完成的任务。
Qt是C++图形用户界面应用程序开发框架。Qt具有优良的跨平台特性,Windows、Linux、Solaris等,在某一环境下编写的源代码,只要稍加修改或不修改即可在不同的環境下进行编译运行。
无人直升机地面显控终端软件以实现遥控、遥测数据收发为主。软件由飞行监控、指令遥控、遥调控制、载荷监控等显示区域构成人机操作界面,其它信息可隐藏,必要时调出显示。
2软件系统设计
地面监控软件以遥控、遥测数据收发为主,在系统其它部件的配合下完成系统配置、起降监控、任务监控等功能。
地面监控软件有两种模式,一种是监控模式,接收飞控、任务等的数据;一种是数据回放模式,选择本地历史数据回放。系统启动默认为监控模式,在该模式下,软件完成上行遥控数据的组帧及发送、下行遥测数据的接收、处理及显示、下行任务数据的接收、处理及显示等。
2.1Qwt控件
地面监控软件采用模块化设计,分为飞行控制模块和飞行状态模块。飞行状态模块设计成五个部分:飞行姿态、系统状态及故障告警显示、典型参数显示、遥控遥调控制指令及状态栏。飞行姿态是用户非常关心的版块,该部分采用Qwt控件设计实现,可以达到理想的人机交互效果。
Qwt,全称是Qt Widgets for Technical Application。它为具有技术背景的程序提供GUI组件和一组实用类。Qwt基于Qt开发,继承了Qt的跨平台特性。利用Qwt中QwtDial类制作地平仪面板,QwtScaleWidget类制作高度、速度刻度。地面监控软件提供典型曲线显示功能,曲线可显示的有姿态角、姿态角速率、加速度等。典型曲线界面用QwtPlot控件设计。QwtPlot用来绘制二维图像,在画板上可以无限制的显示绘画组件。
2.2界面布局和风格
QtCreater是一个跨平台的、完整的Qt集成开发环境,其中包括了高级C++代码编译器、项目和生成管理工具、集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览工具等。其集成了QtDesigner的功能,QtDesigner是QtGUI编程语言一系列工具中的一个,该工具提供了Qt基本的可绘制窗口的部件,产生.ui文件。添加Qwt控件后,其控件如QtDesigner设计器中其它控件一样,通过鼠标拖放相应部件,能够高效、快速的实现界面的整体框架设计。对GUI界面美化主要用到样式表,样式表可快速、高效的完成部件的外观风格设计。如遥控遥调控制指令按钮设计为三态按钮,即可用如下代码实现:
QPushButton{border-image:url(:/images/normal.png);}
QPushButtomhover{border-image:url(:/images/hover.png);}
QPushButtompressed{border-image:url(:/images/press.png);}
在用户界面设计过程中,布局管理是必不可少的,直接影响用户的使用效果。Qt提供了QLayout类及其子类作为布局管理器,常用的布局管理器类有QBoxLayout、QGridLayout、QFormLayout和QStackedLayout等。
本软件使用QtCreater设计地面显控软件界面上的部件和窗口,在人机交互过程中,使用了信号与槽的机制。
3应用实例
在某项目中,在Windows环境下采用Qt5.5.1进行无人直升机地面显控终端界面的软件开发。用户界面主要包括五大部分:飞行姿态、典型数据曲线及故障告警显示、典型参数显示、遥控遥调控制指令及状态栏。飞行姿态主要是以图形化的形式直观展现出无人直升机的姿态信息,在飞行姿态区域上方提供启动数据回放、源码显示、任务窗口及配置信息功能按钮;典型数据曲线及故障告警显示是根据需要选择性的显示相关数据曲线及整个系统故障信息显示;典型参数显示是显示用户关心的参数信息;遥控遥调控制指令区域是发送上行控制指令区域;状态栏是当前模式及时间的显示。
4结论
本文中添加的Qwt为Qwt-6.1.2。Qwt的画图控件比Qt自带的控件美观,但是需要编译进行添加。通过各项数据测试及地面联试试验显示,使用Qt对无人直升机地面显控终端软件进行设计与开发,能够满足系统的要求,同时实时性好、界面美观。
参考文献
[1]刘波,张洪涛,管明森.无人直升机技术的发展[J].舰船电子工程,2011(03).
[2]马聪颖,高瑞周,朱玉祜.无人机地面控制站通用化软件架构[J].航空计算计算,2013(03).
[3]周名阳,韩秀玲.基于Qt的图像数据网络传输应用研究[J].计算机工程与设计,2011(06).
[4]王冰山,郝延刚,王远斌.基于Qt的船用导航雷达显控终端软件设计[J].江苏科技信息,2014(22):59+65.endprint