VxWorks漢字顯示解決方案
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):625
來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 作者:董 磊 周金明 楊 磊
摘要:論述vxworks上windml對多字節(jié)碼的顯示支持,著重討論其存儲結(jié)構(gòu)和意義,并給出漢字顯示的實現(xiàn)方法。
關(guān)鍵詞:vxworks操作系統(tǒng) windml組件 漢字點陣 國標(biāo)編碼
1 vxworks操作系統(tǒng)圖形顯示方案vxworks作為嵌入式實時操作系統(tǒng),在國內(nèi)應(yīng)用已非常廣泛,但vxworks原廠商沒有直接提供完備的漢字顯示解決方案。本文這個熱點論題,通過對vxworks顯示組件的分析,具體給出一種漢字顯示的方案。
vxworks的漢字顯示首先需要一種圖形解決方案,只有工作在圖形模式下才可能顯示漢字。vxworks有三種顯示方案可供選擇。
(1)windml+zinc
windml是wind river mutli-media library的簡稱,其中包含ugl(universal graphics library)。該組件直接控制顯示硬件,主要提供顯示模式設(shè)置、標(biāo)準(zhǔn)輸入輸出控制、點線面作圖等函數(shù),編程接口很類似于torbo c、borland c里的圖形庫。zinc基于windml,提供了類widnows風(fēng)格的接口,有各種控件被封裝于內(nèi),編程接口很類似于windows編程。
(2)windml+jworks
jworks提供java的支持,在vxworks上啟動java虛擬機(jī)來解釋java語言;圖形開發(fā)編程接口是java語言,java虛擬機(jī)的圖形實現(xiàn)基于windml。
(3)web server+windml+jworks+browser
web werver使顯示編程接口成為編寫網(wǎng)頁,可以通過遠(yuǎn)程的browser來訪問而使設(shè)備具有遠(yuǎn)程顯示接口,也可以在本機(jī)做browser使設(shè)備具有本機(jī)顯示接口。該browser的實現(xiàn)需要windml或jworks的支持。
上述方案內(nèi),純web server的方案不需要本地漢字顯示,只要在網(wǎng)頁上放國標(biāo)碼或unicode碼等,由遠(yuǎn)程的browser去實現(xiàn)顯示;其它方案基本上都需要windml的支持,這是因為vxworks系統(tǒng)里所有底層的顯示操作都是通過windml實現(xiàn)的。
2 漢字顯示方案實現(xiàn)本地漢字顯示的方案一定會涉及到windml,只是不同的方案對windml的依賴程度有所不同,一般有如下幾種。
①利用windml對雙字節(jié)編碼的支持,實現(xiàn)對漢字的點陣存儲、點陣獲取、點陣顯示的全過程,并使用windml的雙字節(jié)顯示函數(shù)實現(xiàn)漢遼碼到漢字顯示。這種方法使用了系統(tǒng)機(jī)制,最根本的解決方法,并使windml的其它上層組件很方便地實現(xiàn)漢字顯示。
②自己開發(fā)點陣存儲、點陣獲取、點陣顯示,改造windml的雙字節(jié)和單字節(jié)顯示函數(shù),使其能判斷漢字碼,一旦判斷出漢字碼,則使用自己開發(fā)的點陣獲取、點陣顯示等把漢字顯示出來。該方法對點陣的操作更加靈活,適合非標(biāo)準(zhǔn)的點陣算法,或者當(dāng)開發(fā)者已有成熟的點陣操作方法時,把該方法綁接到windml上。
③完全自己開發(fā)一套點陣存儲、點陣獲取、點陣顯示、漢字顯示函數(shù),使用者使用特定的漢字顯示函數(shù)把漢字顯示出來。該方法具有最大的靈活性,甚至不理睬windml的任何機(jī)制,直接在上層組件里實現(xiàn),但這種方法使程序的中英文混合顯示變得復(fù)雜,程序可移植性也比較差。
本文將就第一種顯示方案和第一種漢字顯示方案詳細(xì)論述windml的雙字節(jié)編碼機(jī)制,并利用該機(jī)制構(gòu)建windml漢字顯示框架,并論述zinc如何使用該框架。這些機(jī)制和思路其實是任何方案都需要考慮的,對繞開windml的方案也具指導(dǎo)和借鑒意義。
3 windml的點陣參數(shù)①每個字模都有一個占據(jù)的空間,該空間對于點陣字庫里的每個字是一樣大的,所有字符點陣的大小都不應(yīng)該超過該空間,如果超過,顯示時超出部分將被截掉。相關(guān)參數(shù)有:
maxadvance——最大寬度(橫向)大小,以點為單位。
maxascent,maxdescent——maxascent+maxdescend是最大長度(即縱向)大小,兩數(shù)的交界決定了一個baseline,maxascent是baseline以上的長度,maxdescent是baseline以下的部分。baseline對于定位具體字符點陣的打點起始位置非常重要,另外如果有一行來自同一個字符集的字符串,則這些字符的baseline是在一條線上的。maxascent+maxdescent有時被稱為字符表高度height,注意要與下面所述的字符高度區(qū)別開來。
②每個字符點陣也有一個范圍大小,其大小與每個字符有關(guān)。該大小一般不會填滿整個字模空間。相關(guān)參數(shù)有:
width——寬度。
height——高度。
ascent——點陣打點開始位置在baseline之上的偏移,如果是負(fù)數(shù),則點陣在baseline之下開始打點。
ascent和height決定了點陣從字模的多少行開始打點,要打多少行。而列的打點起始位置,固定是0,即字模的最左邊,所以只有width描述打點的寬度。
③字符橫向和縱向都要有額外空間,以防止字符粘接重
來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 作者:董 磊 周金明 楊 磊
摘要:論述vxworks上windml對多字節(jié)碼的顯示支持,著重討論其存儲結(jié)構(gòu)和意義,并給出漢字顯示的實現(xiàn)方法。
關(guān)鍵詞:vxworks操作系統(tǒng) windml組件 漢字點陣 國標(biāo)編碼
1 vxworks操作系統(tǒng)圖形顯示方案vxworks作為嵌入式實時操作系統(tǒng),在國內(nèi)應(yīng)用已非常廣泛,但vxworks原廠商沒有直接提供完備的漢字顯示解決方案。本文這個熱點論題,通過對vxworks顯示組件的分析,具體給出一種漢字顯示的方案。
vxworks的漢字顯示首先需要一種圖形解決方案,只有工作在圖形模式下才可能顯示漢字。vxworks有三種顯示方案可供選擇。
(1)windml+zinc
windml是wind river mutli-media library的簡稱,其中包含ugl(universal graphics library)。該組件直接控制顯示硬件,主要提供顯示模式設(shè)置、標(biāo)準(zhǔn)輸入輸出控制、點線面作圖等函數(shù),編程接口很類似于torbo c、borland c里的圖形庫。zinc基于windml,提供了類widnows風(fēng)格的接口,有各種控件被封裝于內(nèi),編程接口很類似于windows編程。
(2)windml+jworks
jworks提供java的支持,在vxworks上啟動java虛擬機(jī)來解釋java語言;圖形開發(fā)編程接口是java語言,java虛擬機(jī)的圖形實現(xiàn)基于windml。
(3)web server+windml+jworks+browser
web werver使顯示編程接口成為編寫網(wǎng)頁,可以通過遠(yuǎn)程的browser來訪問而使設(shè)備具有遠(yuǎn)程顯示接口,也可以在本機(jī)做browser使設(shè)備具有本機(jī)顯示接口。該browser的實現(xiàn)需要windml或jworks的支持。
上述方案內(nèi),純web server的方案不需要本地漢字顯示,只要在網(wǎng)頁上放國標(biāo)碼或unicode碼等,由遠(yuǎn)程的browser去實現(xiàn)顯示;其它方案基本上都需要windml的支持,這是因為vxworks系統(tǒng)里所有底層的顯示操作都是通過windml實現(xiàn)的。
2 漢字顯示方案實現(xiàn)本地漢字顯示的方案一定會涉及到windml,只是不同的方案對windml的依賴程度有所不同,一般有如下幾種。
①利用windml對雙字節(jié)編碼的支持,實現(xiàn)對漢字的點陣存儲、點陣獲取、點陣顯示的全過程,并使用windml的雙字節(jié)顯示函數(shù)實現(xiàn)漢遼碼到漢字顯示。這種方法使用了系統(tǒng)機(jī)制,最根本的解決方法,并使windml的其它上層組件很方便地實現(xiàn)漢字顯示。
②自己開發(fā)點陣存儲、點陣獲取、點陣顯示,改造windml的雙字節(jié)和單字節(jié)顯示函數(shù),使其能判斷漢字碼,一旦判斷出漢字碼,則使用自己開發(fā)的點陣獲取、點陣顯示等把漢字顯示出來。該方法對點陣的操作更加靈活,適合非標(biāo)準(zhǔn)的點陣算法,或者當(dāng)開發(fā)者已有成熟的點陣操作方法時,把該方法綁接到windml上。
③完全自己開發(fā)一套點陣存儲、點陣獲取、點陣顯示、漢字顯示函數(shù),使用者使用特定的漢字顯示函數(shù)把漢字顯示出來。該方法具有最大的靈活性,甚至不理睬windml的任何機(jī)制,直接在上層組件里實現(xiàn),但這種方法使程序的中英文混合顯示變得復(fù)雜,程序可移植性也比較差。
本文將就第一種顯示方案和第一種漢字顯示方案詳細(xì)論述windml的雙字節(jié)編碼機(jī)制,并利用該機(jī)制構(gòu)建windml漢字顯示框架,并論述zinc如何使用該框架。這些機(jī)制和思路其實是任何方案都需要考慮的,對繞開windml的方案也具指導(dǎo)和借鑒意義。
3 windml的點陣參數(shù)①每個字模都有一個占據(jù)的空間,該空間對于點陣字庫里的每個字是一樣大的,所有字符點陣的大小都不應(yīng)該超過該空間,如果超過,顯示時超出部分將被截掉。相關(guān)參數(shù)有:
maxadvance——最大寬度(橫向)大小,以點為單位。
maxascent,maxdescent——maxascent+maxdescend是最大長度(即縱向)大小,兩數(shù)的交界決定了一個baseline,maxascent是baseline以上的長度,maxdescent是baseline以下的部分。baseline對于定位具體字符點陣的打點起始位置非常重要,另外如果有一行來自同一個字符集的字符串,則這些字符的baseline是在一條線上的。maxascent+maxdescent有時被稱為字符表高度height,注意要與下面所述的字符高度區(qū)別開來。
②每個字符點陣也有一個范圍大小,其大小與每個字符有關(guān)。該大小一般不會填滿整個字?臻g。相關(guān)參數(shù)有:
width——寬度。
height——高度。
ascent——點陣打點開始位置在baseline之上的偏移,如果是負(fù)數(shù),則點陣在baseline之下開始打點。
ascent和height決定了點陣從字模的多少行開始打點,要打多少行。而列的打點起始位置,固定是0,即字模的最左邊,所以只有width描述打點的寬度。
③字符橫向和縱向都要有額外空間,以防止字符粘接重
熱門點擊
- 用單片機(jī)控制字符型液晶顯示器TC1602A
- 永光化學(xué)深耕彩色光阻劑領(lǐng)域
- 利用16C554實現(xiàn)主從式單片機(jī)遠(yuǎn)距離通信擴(kuò)
- 采用三個放大器芯片組成的光功率自動控制電路
- uPD16312在DVD視盤機(jī)VFD顯示電路
- ADI公司發(fā)布具有無與倫比性能的XFP芯片組
- 基于THOMSON CD-DVD模塊的音響系
- MAX7219在PLC中的應(yīng)用
- 一種實用的LED光柱顯示器驅(qū)動方法
- 光儲存產(chǎn)業(yè)及芯片市場分析
推薦技術(shù)資料
- 硬盤式MP3播放器終級改
- 一次偶然的機(jī)會我結(jié)識了NE0 2511,那是一個遠(yuǎn)方的... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究