王冰山,郝延剛,王遠斌
(1.中國電子科技集團公司第二十八研究所,江蘇南京 210007;2.海軍駐南京地區雷達系統軍事代表室,江蘇 南京 210003)
雷達顯控終端是雷達系統中人機交互的主要接口。鑒于在其他平臺下進行圖形界面(GUI)開發的成本較高,MicroSoft 公司的源代碼具有保密性、軍品對保密的需求還有外貿對知識產權的嚴格要求,目前,嵌入式版的Linux 操作系統在實際應用中越來越受到用戶的歡迎;在眾多的軍用雷達終端當中,小型化、成本低適合于小型船只應用的雷達中,可靠穩定的嵌入式導航雷達終端也有一定的市場需求。因此,選擇Qt 進行嵌入式界面開發是一個較好的方案。
Qt 是由奇趣公司開發的標志性產品,目前流行的Linux 桌面環境KDE 模式就是由Qt 開發的,Qt 具有如下特點:Qt 是類MFC 的面向對象的C++開發包;具有信號與槽的事件驅動機制;另外,Qt 是一種跨平臺的開發工具,其環境下編寫的源代碼,只有稍加修改或不修改就可以在不同的環境下進行編譯運行;它提供了豐富的類庫以及靈活易用的Qt Designer 工具開發界面。
本軟件主要工作是實現DSP 與ARM 的配合工作,由DSP高速處理雷達采集到的數據,ARM 的角色則是擔任整個系統的控制器,負責應用程序中多個任務的控制和調度。對獲取的水上目標信息實時的顯示和記錄,為雷達參數設置提供圖形接口。除此之外,為了實現ARM 與DSP 之間的通信,自定義了通信協議格式,通過多個串口傳輸數據,為開發過程中的程序調試和通信數據的可靠傳輸提供了強力保障。
(1)圖形框架。Qt 的Graphics View 框架使用MVC 模式,適合對大量2D 圖元的管理。Graphics View 框架中包括3 個主要的類:QGraphicsScene、QGraphicsView 和QGraphcsItem,分別是場景、視圖和圖元。場景是QGraphicsItem 對象的容器。QGraphics View 是視圖窗口部件,它使場景的內容可視化,QGraphicsItem 是圖元基類。
(2)界面布局和風格。Qt Designer 是Qt GUI 編程語言一系列工具中的一個,該工具提供了Qt 基本的可繪制窗口的部件。在設計器中通過鼠標直接拖放這些窗口部件,能夠高效、快速地實現GUI 界面的整體框架設計,界面直觀形象。在使用Qt Designer 設計GUI 時,可以使用樣式表定制控件的外觀,快速而高效地設計窗口部件的風格。
Qt 設計器簡化了用戶界面設計手段,它提供了大量的封裝好的工具和接口。用戶可以輕而易舉地通過拖拽的方式布控Qt 界面控件,另外還可以調用Qt 設計器的Layout 控件對界面進行布局和排版,控件的移動和縮放都變得非常簡單,最后達到用戶所要求的風格,在布局完畢之后,可以通過簡單的方式對各個窗口控件以及界面風格進行相應的參數設置。另外,信號與槽的機制在Qt 設計器中也可以手動設置,加大了界面上窗口部件的通信效率??傊?,Qt Designer 為雷達顯示控制終端的界面設計提供了便捷的方式和靈活的接口。
本軟件使用Qt 設計器設計了終端主界面上的部件和窗口,并在人機交互的過程中采用了信號與槽的機制。該雷達顯示控制終端除了界面上飛車美觀人性化,而且使得對雷達的控制操作變得非常簡單,響應時間快。
(3)自定義繪圖。QGraphics View 框架下Qt 提供大量的繪圖接口,每個繪圖對象都可以被看作為一個QGraphicsItem,每個圖元都由它自己的繪制函數,繪制完畢之后可以調用addItem()函數將繪制好的圖元一一加入到場景中,使得Qt 繪圖非常易于模塊化,對單個圖形對象進行增減都非常方便,只需要調用Qt 接口removeItem()即可將一個繪圖對象輕易刪除,對圖元進行管理和操作的接口都非常豐富。但在嵌入式平臺下,大量的自定義繪圖會對整個平臺的資源占用較大,出現卡頓或者死機的現象。鑒于此,本軟件引進了OpenGL 圖形加速,通過ARM 芯片上的PowerVR 模塊對整個圖形界面進行加速顯示,大大減少處理器的負擔,使得整個界面變得非常流暢。
OpenGL(Open Graphics Library)作為圖形硬件的一個軟件接口,它也是該領域的工業標準。OpenGL 具有很好的移植性,它與硬件無關,因這些優勢,OpenGL 為很多硬件和軟件開發人員都提供了很多便利。
Qt 為了使用OpenGL 繪制,可以通過QGLWidget 調用setViewport()函數來設置作為QGraphicsView 的視口。如果需要在OpenGL 中打開反鋸齒,可以通過調用QGLFormat::sampleBuffers()來使用OpenGL 的采樣緩沖區(sample buffer)。在目標航跡和目標點跡的繪制過程中,使用OpenGL 繪圖后,減輕了CPU 負擔,大幅度提高應用程序圖形繪制效率。
DSP 芯片具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問,可以并行執行多個操作,可以低開銷或無開銷及跳轉的硬件支持,使得數據處理快速高效,固通常復雜大量的數據計算以及雷達采集處理過后的數據都由DSP 來進行計算處理,再將計算結果通過串口發往ARM,ARM 再根據該結果在顯控界面上進行相應的圖形繪制。
在某項目中采用Qt4.8 進行船用導航雷達的顯控界面的軟件開發,如圖1 所示。通過開發過程中的模擬實驗以及真實環境下的實際應用,信息顯示、界面操控以及系統的穩定性完全能滿足船用導航雷達各方面的需要。
本文中所利用的圖形化視圖框架以及OpenGL 圖形加速,Qt4.8 及其以后的版本才支持,要采用本文中所描述的方法進行界面軟件設計,必須要采用Qt4.8 以后的版本。通過實驗模擬和實際應用發現,使用Qt 對導航雷達顯控軟件進行設計和開發,不但具有很高的實時顯示性能和美觀的界面設計,另外,雷達界面上的顯示功能及該系統性能完全滿足船用導航雷達終端的需求。

圖1 基于Qt 的船用導航雷達終端顯控界面
[1]蔡志明,盧傳富,李立夏.精通Qt4 編程[J].計算機工程,2010(1).
[2]Mark Summerfield.Advanced Qt Programming Creating Great Software with C++and Qt4[J].Prentice Hall,2010(6).
[3]周名陽,韓秀玲.基于Qt 的圖像數據網絡傳輸應用研究[J].計算機工程與設計,2011(6).
[4]Zeng Y,Xu,J,Peng D.Radar Velocity -measuring System Design and Computation Algorithm Based on ARM Processor[C].Proceedings of the 8th World Congress on Intelligent Control and Automation,2010.