軍事指揮系統(tǒng)中VxWorks下漢字顯示技術(shù)
1 VxWorks在軍事指揮系統(tǒng)中的應(yīng)用
所謂嵌入式系統(tǒng),是指內(nèi)置到火控、戰(zhàn)車、飛機(jī)、導(dǎo)彈以及衛(wèi)星和艦船導(dǎo)航等各類武器系統(tǒng)和作戰(zhàn)平臺(tái)上的計(jì)算機(jī)系統(tǒng)。隨著信息技術(shù)的迅猛發(fā)展,尤其是計(jì)算機(jī)技術(shù)和微電子技術(shù)的快速發(fā)展,嵌入式系統(tǒng)在軍事上得到了廣泛應(yīng)用。嵌入式計(jì)算機(jī)系統(tǒng),最早出現(xiàn)在20世紀(jì)60年代武器控制中,后來(lái)用于軍事指揮控制和通信系統(tǒng),所以軍事國(guó)防歷來(lái)就是嵌入式系統(tǒng)的一個(gè)重要應(yīng)用領(lǐng)域?,F(xiàn)在,各種武器控制(火炮控制、導(dǎo)彈控制、智能炸彈制導(dǎo)引爆裝置)、坦克、艦艇、轟炸機(jī)等,以及陸海空各種軍用電子裝備、現(xiàn)代化的軍事指揮系統(tǒng)等都可以看到嵌入式系統(tǒng)的影子。
在實(shí)時(shí)嵌入式操作系統(tǒng)中,VxWorks以其高可靠性和高實(shí)時(shí)性得到了廣泛的應(yīng)用。VxWorks是美國(guó)Wind River System公司(風(fēng)河公司,簡(jiǎn)稱WRS公司)推出的一個(gè)實(shí)時(shí)操作系統(tǒng)。VxWorks是一個(gè)運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的嵌入式實(shí)時(shí)操作系統(tǒng),具有專門為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的操作系統(tǒng)內(nèi)核,它包括了進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾部分。
VxWorks在軍事指揮系統(tǒng)中應(yīng)用時(shí),由于指揮系統(tǒng)對(duì)人機(jī)交互能力的要求較高,需要對(duì)武器參數(shù)、操作進(jìn)程以及作戰(zhàn)指令等戰(zhàn)場(chǎng)信息進(jìn)行顯示,因此迫切需要完成VxWorks下的中文顯示開發(fā)。軍事指揮系統(tǒng)中所顯示戰(zhàn)場(chǎng)信息如圖1所示。
本文引用地址:http://cafeforensic.com/article/257996.htm2 VxWorks下漢字顯示方案
2.1 WindML基本功能
WindML是由WindRiver公司提供的媒體庫(kù),其UGL組件提供了顯示模式設(shè)置、標(biāo)準(zhǔn)輸入/輸出控制和點(diǎn)、線、面作圖等函數(shù),以及對(duì)芯片、輸入/輸出設(shè)備、音頻/視頻、幀緩沖器等開放的應(yīng)用程序接口。
WindML的主要功能有二維圖形API、事件服務(wù)、區(qū)域和視窗管理、多媒體API和資源管理。其中,二維圖形API是最常用的部分,包括基本繪圖操作 (如畫線、矩形、橢圓、多邊形、點(diǎn)等),選擇字體輸出文本、位圖管理、光標(biāo)管理、批量繪圖操作、圖形上下文、色彩管理和雙緩沖等。事件服務(wù)程序用來(lái)處理輸入設(shè)備的輸入請(qǐng)求。它會(huì)把鍵盤、鼠標(biāo)等輸入數(shù)據(jù)轉(zhuǎn)化為事件并加入應(yīng)用隊(duì)列;區(qū)域和視窗管理可以在界面上定義一個(gè)區(qū)域或多線程之間共享的窗口,以進(jìn)行繪圖操作;多媒體APl支持NTSC,PAL,SECAM等視頻制式下DSP或混頻器兩種設(shè)備的音頻輸出,也支持JPEG圖形格式;資源管理器是指常規(guī)的 WindML資源(例如設(shè)備和事件隊(duì)列)、內(nèi)存管理和驅(qū)動(dòng)器注冊(cè)等資源的建立、控制和刪除。
2.2 WindML字體驅(qū)動(dòng)體系結(jié)構(gòu)
WindML字體驅(qū)動(dòng)在WindML 2D API上提供了一個(gè)通用的抽象層,允許應(yīng)用程序通過(guò)一個(gè)通用2D字體API庫(kù)使用不同的字體引擎。通用2D字體API是提供給應(yīng)用程序使用字體API的公共接口。字體驅(qū)動(dòng)不同于VxWorks中的其他驅(qū)動(dòng),它不允許執(zhí)行或使用任何圖形驅(qū)動(dòng)接口以下的程序,也就是說(shuō)它不直接訪問(wèn)硬件,只訪問(wèn)系統(tǒng)所使用的圖形驅(qū)動(dòng)或間接通過(guò)UGL圖形驅(qū)動(dòng)結(jié)構(gòu)來(lái)訪問(wèn)硬件。這就允許字體驅(qū)動(dòng)可以運(yùn)行在任何圖形驅(qū)動(dòng)之上,與字體引擎硬件無(wú)關(guān)。WindML字體驅(qū)動(dòng)體系結(jié)構(gòu)如圖2所示。
2.3 點(diǎn)陣漢字輸出過(guò)程
點(diǎn)陣漢字的顯示是利用WindML的圖形輸出功能來(lái)實(shí)現(xiàn)的。設(shè)計(jì)開發(fā)中利用WindML對(duì)位圖字符顯示和雙字節(jié)編碼的支持,按照WindML位圖字體文件的格式完成漢字點(diǎn)陣的轉(zhuǎn)換存儲(chǔ),并使用WindML的雙字節(jié)顯示函數(shù)實(shí)現(xiàn)點(diǎn)陣獲取、點(diǎn)陣顯示,將漢字顯示出來(lái)。
WindML有很多字庫(kù)文件,原始安裝狀態(tài)下都是西文字庫(kù)文件,要在VxWorks系統(tǒng)中顯示中文漢字,解決方案是將西文字庫(kù)文件修改成為中文字庫(kù)文件,即設(shè)計(jì)一種類似西文字庫(kù)格式的C語(yǔ)言文件,文件中存儲(chǔ)雙字節(jié)的漢字編碼、點(diǎn)陣信息及字體的控制信息等。字庫(kù)文件經(jīng)過(guò)系統(tǒng)配置、編譯后生成點(diǎn)陣字庫(kù)文件目標(biāo)代碼,點(diǎn)陣驅(qū)動(dòng)程序從目標(biāo)代碼中獲取點(diǎn)陣信息傳遞給應(yīng)用程序編程接口,應(yīng)用程序調(diào)用圖形顯示函數(shù)輸出漢字。WindML下漢字顯示處理過(guò)程如圖3所示。
評(píng)論