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