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