龐文燕 王強



摘要:以 GL Studio作為開發平臺,完成飛行控制面板的圖形建模,面向對象設計程序,采用GL Studio和VC++混合編程,做好網絡通信、人機交互設計,完成軍用直10機型飛行控制面板的仿真開發。
Abstract: GL Studio is used as the development platform to complete the graphical modeling of flight control panel, the object-oriented design program, the mixed programming of GL Studio and VC++, the design of network communication and human-computer interaction, and the simulation development of military direct 10 aircraft flight control panel.
關鍵詞:面向對象編程;GL Studio;VC++混合編程
Key words: object-oriented programming;GL Studio;VC++ hybrid programming
中圖分類號:V27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1006-4311(2019)23-0280-02
0 ?引言
虛擬座艙系統(Virtual Cockpit)具有顯著降低為升級現有飛機所需要高成本的能力,可除去許多老式儀器和量表,節省重量和能源[1]。目標是實現大部分飛行仿真數據的人機交互,結構上主要包括視景系統、控制面板和操作手柄。GL Studio是一款能夠創建實時的、三維的、照片級互動圖形界面,獨立平臺的快速原型工具[2],具備良好的交互性。
1 ?GL Studio 簡介
GL Studio是美國DiSTI公司開發的用于虛擬儀表仿真的旗艦產品,在國防應用中主要用于搭建虛擬座艙,進行儀表仿真,包括設計器和代碼生成器,軟件能與HLA/DIS仿真應用相連,能夠運行于Window7、Window8、WindowXP、IRIX 和 Linux 操作系統上[3]。
使用GL Studio有五方面優勢,一是同等硬件要求下,創建影像級互動界面,得到清楚的紋理圖片,實現“所見即所得”;二是可以實現為圖片添加代碼,以及將繪制出的對象統一生成C++和OpenGL源代碼,并嵌入其他應用;三是對象可以很容易被建立成復用性組件,將圖形實體表現以及其行為邏輯表現融為一體。其生成和使用時存放形式是不同的:當需要代碼公開化、可更改時,存放為.gls格式,嵌入其他應用程序時,生成為.dll或.so;當作為Active插件使用時,將其封裝為.cab文件;當組建獨立運行存在時,以生成.exe形式[4,5];四是可以通過設置消息響應函數實現對鍵盤、鼠標等用戶輸入設備的響應,也能為交互設備添加回調函數;五是做針對性消隱處理,即隱藏不需要顯示的模塊或圖片。
2 ?飛行控制面板的實現
下面用GL Studio來實現飛行控制面板的仿真。
2.1 開發流程
仿真開發通過對顯示儀表進行圖形建模、設計內部驅動程序、開發外部的網絡接口、設計人機交互界面等步驟完成。詳細開發流程見圖1所示:首先,將真實儀表抽象成GL Studio面板儀表,設置驅動方式,啟動軟件對圖形的控制;其次,將獲得的可執行程序納入總程序中;最后,設置網絡通訊接口,完成和主仿真機的數據交互連接。
2.2 圖形建模
實現虛擬座艙要完成的首要工作就是對圖形畫面進行建模,即根據實際面板繪制儀表圖形、輸入字符、設定參數。
①采集和處理數據:需要用Photoshop等圖片處理軟件對紋理及布局圖數據進行處理,獲得透明的符合要求的png格式紋理圖。要關注三點:GLStudio要求紋理的像素大小以2的n次冪為最優;紋理的大小應與儀表顯示窗口的大小相一致;同一面板的不同部件的紋理盡量放在一張圖片上,用來保證紋理圖片的比例一致,避免繁瑣的調整和開發與運行時顯示的差異[4]。
②建立實體模型:需要建立數碼管等儀表圖形、GSP等畫面顯示字符、FIRE等報警符號。參照飛行儀表手冊,設計各儀表尺寸、位置;分析對象功能及邏輯聯系,分配有利位置,劃分模塊,合理構建整體畫面。完成整體設計后進入具體建模,通過直接拖拽圖像原型實現。所有實體對象,均可看成N個多邊形構成。反復采用剪切、旋轉、扭曲等操作,可以獲得各種預期對象。然后對模型的顏色、材質、紋理等屬性做設置,為用戶提供更真實的觀感。為模型貼上紋理,即可以簡化建模過程,又能提高仿真的逼真度和速度。
③梳理模型:分別以空間和邏輯為主線,梳理各模型、各子畫面層次結構,確保各儀表的顯示順序、內容無誤。GL Studio中,圖符、字符等不同顏色代表了不同的意義,在設置具體顏色時要特別關注。
按照采集和處理數據、建立模型、梳理模型的開發步驟,完成飛行控制板的建模過程,將源代碼納入用戶工程,見圖2,對象的通訊及回調函數要寫在Code里面,可以添加各種函數,軟件內部自帶函數提示。然后,為控制面板設置設備屬性,見圖3。
2.3 實現網絡通訊
網絡通訊要實現功能:一是控制面板能夠接收主機數據,并實時更新;二是為主機輸送實時參數,實現主機依據輸入狀態設置工作模式、參數以及指示燈、數碼管隨動顯示。
整個工程通過紋理布置,屬性設置,函數及通訊協議的編寫,最后通過VC++編譯成可執行文件.exe,連同config配置文件拷貝到應用的電腦上面,通過配置電腦IP與主仿真機進行通信,設置config配置文件里面的圖形位置及大小即可完成軟件的布置,通過點擊觸摸屏上面的相應按鈕、開關完成虛擬控制面板的應用,見圖4,為觸摸屏單板電腦在工程中的應用。
參考文獻:
[1]劉麗嬌.基于GL-Studio的飛行模擬機虛擬座艙開發[D].哈爾濱工業大學,2009.
[2]黃曉雪,韓端鋒,袁利毫,等.基于GL Studio的船舶駕控臺仿真系統的開發[J].船舶,2013,4:73-77.
[3]張毅,王士星,等.仿真系統分析與設計[M].北京:國防工業出版社,2010.
[4]陳建東.全球民用全飛行模擬器現狀[J].民航經濟與技術,1998(2):45-51.
[5]GL Studio Version 3.2 API Documentation Inc.U.S.A:Distributed Simulation Technology Inc[Z].2007.