程滔
摘要
在無人直升機地面測控系統中,既要保證設備的體積小,又要保證系統的實時性和穩定性,文章針對此問題提出了一種基于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