


摘 要:在復雜的無人直升機地面控制站系統軟件開發過程中,既要保證軟件的開發效率,又要適應不斷變化的需求,文章針對此問題提出了一種基于Qt插件式無人直升機航路規劃軟件框架設計。首先介紹了軟件框架模型,分析了其工作原理及采用該框架的優勢。其次對該框架的結構進行分析,描述了插件管理、插件通信及界面布局系統的功能。最后該軟件框架應用到實際項目中,實現了基于Qt插件式無人直升機航路規劃軟件框架,具有復用性強、維護性強、耦合度低等特點,滿足系統的需求。
關鍵詞:Qt;插件;航路規劃;軟件框架
隨著電子技術的發展,防空技術的日益完善,航路規劃軟件的復雜度越來越高,用戶對軟件的專業性和擴展性提出了更高的要求[1]。主要體現在兩方面,一是軟件功能的變更需求越來越多;二是需求變更的頻率相對之前明顯增加。很大一部分的需求變更是對軟件的主體功能要求不變,而是對軟件基本功能快速的升級更新,適應不斷變化的監控需求。
目前大多軍用等軟件采用面向過程的軟件開發方法,面對軟件需求的變更,在軟件的開發及維護等方面帶來一些問題,一方面軟件開發初期對軟件功能模塊和接口需求定義不準確,開發速度慢;一方面軟件開發中后期,模塊間的耦合度較高,軟件維護難度大[2]。
針對該問題,需要設計一種軟件框架模型,適應用戶的不斷變化的需求。本文提出基于Qt插件式無人直升機航路規劃軟件框架設計,是采用“平臺+插件”的軟件架構,該架構能在不修改程序主體的情況下,根據變更的需求動態加載對應功能的插件,對軟件功能進行修改和維護,提高了軟件的開發效率,同時提高了軟件的擴展性,適應不斷變化的需求。
一、“平臺+插件”模型
“平臺+插件”軟件架構的核心思想是將基礎功能和主要邏輯以插件的形式通過主程序(平臺)統一的管理,平臺與插件以及插件之間的交互通過制定一套標準通信協議接口完成。平臺完成對插件的管理,實現對插件的調用、加載及卸載。插件必須依賴主程序才能發揮自身功能,僅靠插件是無法正常運行的。另一方面,主程序可以不需要依賴插件就可以運行。也就是說,插件可以加載到主程序中并且動態更新而不會對主程序造成任何影響。在“平臺+插件”架構下,插件可以進行增刪改查,若需求變更,通過設計新插件或者修改已有插件即可,不需要對主程序進行修改及編譯。
主程序(平臺):程序的主體,實現基礎架構和核心功能。主程序(平臺)提供相應的接口給插件調用,同時,主程序(平臺)通過相應的接口可以插入不同的插件,完成相應服務并提供給用戶,是整個軟件框架的基礎。
插件:是一種遵循一定規范的應用程序接口編寫的程序,實現主要邏輯和基礎功能。插件能動態地插入到平臺中,完善和擴展系統整體功能。插件是“平臺+插件”架構的重要組成部分。
接口:實現“平臺+插件”架構指定的一套標準通信協議。接口實現在主程序不變的情況下,通過加載、刪除或修改插件完善應用程序的功能。
采用“平臺+插件”模型在分析、設計、開發、擴展等方面有諸多益處。一是結構清晰、易于理解。借鑒硬件總線的定義,各個插件之間相互獨立,實現軟件的“即插即用”;二是維護性強。插件與主程序之間通過接口進行通信,類似硬件插卡,可以進行加載、調用及卸載等操作,結構靈活,易修改,方便軟件的升級和維護;三是復用性強。插件是一系列小的功能結構組成,通過接口向外提供服務,移植性好,復用性強;四是耦合度低。插件是通過與主程序通信實現插件與插件之間的通信,插件之間的耦合度低。
二、插件分類
隨著計算機軟件技術的不斷發展,插件技術的應用越來越廣,插件種類也越來越多,目前應用普遍的插件可以分為四類。一類是類似命令插件。該類型插件應用廣泛,使用方便、門檻低,縮短了軟件開發時間。但是,該類型插件功能較單一、可擴展性小、自由度低且降低軟件運行效率;二類是腳本插件。該類型插件方便、簡單、易學、易用,但是該類型腳本需要自主開發內核,制作相對比較復雜;三類是組件插件。該類型插件提供了組件之間的交互規范和環境,不需要知道插件功能,通過接口可直接訪問插件,使主程序與各插件間建立信息交互。但是,該類型插件設計需要技術原理支持,提高了開發難度;四類是動態鏈接庫(DLL)插件。該類型插件定義了多個接口,可以訪問主程序中各種資源,自由度大,設計者可以充分發揮主觀意識和創造思維。但是該類型插件制作復雜、開發門檻高。
考慮應用場景及運行平臺,本文選擇基于動態鏈接庫插件作為航路規劃軟件的應用框架。
三、框架結構設計
軟件框架由插件管理系統、通信管理系統及界面布局管理系統組成,軟件架構結構設計如下圖所示。
1.插件管理系統
插件管理系統主要功能是對插件進行管理,包括插件配置信息的獲取及判定,插件的加載及卸載等。插件的狀態包括無效、準備、加載、運行、關閉、刪除。無效:沒有獲取到該插件信息;準備:插件配置信息獲取成功且判定正常;加載:插件被加載至主程序中;運行:插件成功加載且初始化完成;關閉:插件被關閉;刪除:釋放插件實例對象。
2.通信管理系統
通信管理系統主要功能是實現主程序與插件及插件之間的通信。軟件在Qt平臺開發,通過Qt的信號與槽機制完成插件之間的通信。
3.界面布局管理系統
界面布局管理系統在主程序(平臺)中完成。界面布局管理系統主要完成兩方面功能,一是完成菜單欄、工具欄、功能欄及狀態欄的布局;二是完成菜單欄、工具欄、功能欄及狀態欄上控件的添加、顯示及功能處理。
四、應用
在某項目中,應用基于Qt插件式航路規劃軟件框架進行開發。在Windows環境下采用Qt5.5.1進行軟件開發,用戶界面主要包括五大部分:菜單欄、工具欄、功能欄、狀態欄及操作區。軟件中功能模塊采用插件形式開發,主程序(平臺)通過接口方法對插件進行調用。
實踐表明,通過插件式開發的航路規劃軟件框架代碼簡潔、條理清晰、運行穩定,能夠滿足無人直升機航路規劃的需求。
五、結語
地面控制站是無人直升機系統的重要組成部分,航路規劃是地面控制站中的關鍵部分,是實現無人直升機智能導航和安全飛行的重要保障。本文設計的基于Qt插件式無人直升機航路規劃軟件框架,代碼使用Qt和C++進行設計,使用面向對象開發設計思想。插件式框架降低了系統的耦合度,具有復用性強、維護性好及擴展性強等特點。
參考文獻:
[1]肖強,朱玉祜,楊丙泉.插件式無人機任務規劃軟件框架設計[J].電光與控制,2014,(12)
[2]勞憲銀.基于插件式的軟件總線構件平臺的設計[J].電子世界,2016,(10)
[3]董冰.計算機軟件中的插件技術研究[J].信息與電腦,2017,(23)
[4]王宏強,張航峰.戰術指揮情報終端的插件式軟件框架設計[J].指揮控制與仿真,2012,(6)
作者簡介:
程滔(1990年-),男,江西省九江市人,碩士學位,工程師,主要從事無人機測控系統研究。