專利名稱:基于VxWorks操作系統(tǒng)的漢字顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于VxWorks操作系統(tǒng)的漢字顯示方法。
背景技術(shù):
隨著計算機的發(fā)展和應(yīng)用的普及,實時計算機系統(tǒng)在工業(yè)、交通、能源、科學研究和科學試驗、國防等各個領(lǐng)域發(fā)揮極其重要的作用。VxWorks是美國Wind River System公司推出的一個實時操作系統(tǒng),作為主流的嵌入式操作系統(tǒng),已經(jīng)在我國得到越來越廣泛的應(yīng)用,但是美國Wind River公司并沒有直接對其VxWorks產(chǎn)品提供完善的漢字顯示方案, 更不能處理四字節(jié)長度的字符。而中國政府早在于2000年3月17日就頒布了采用了單字節(jié)、二字節(jié)和四字節(jié)字符混合的方式進行漢字編碼的GB18030-2000編碼標準,并要求國內(nèi)所有文字信息處理產(chǎn)品采用該標準。目前國內(nèi)對于VxWorks中漢字顯示功能的實現(xiàn)并沒有統(tǒng)一的標準,而是由各軟件廠家根據(jù)自己的實際需要來實現(xiàn)漢字的顯示。目前市場上實現(xiàn)漢字顯示的主要方法為完全自己開發(fā)一套點陣存儲、點陣獲取、 點陣顯示及漢字顯示函數(shù)。上層應(yīng)用軟件要顯示漢字時,直接調(diào)用自己開發(fā)的漢字顯示函數(shù),實現(xiàn)漢字的顯示。這種方法的缺點是1、完全脫離了 VxWorks的顯示機制,導致應(yīng)用軟件需要開發(fā)大量代碼來實現(xiàn)點陣獲取、點陣顯示等功能。2、應(yīng)用軟件的擴展性比較差,一旦應(yīng)用軟件需要采用其它字庫,就需要對漢字顯示代碼進行修改或重新編寫。3、應(yīng)用軟件的顯示處理的復(fù)雜度比較高,需要對英文字符、二字節(jié)漢字、四字節(jié)漢字進行判斷并分別進行處理。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供基于VxWorks操作系統(tǒng)的漢字顯示方法,充分利用 VxWorks的顯示機制,有效提高應(yīng)用軟件的擴展性和可移植性,并降低顯示處理的復(fù)雜度。實現(xiàn)本發(fā)明目的的技術(shù)方案是基于VxWorks操作系統(tǒng)的漢字顯示方法,包括以下步驟①構(gòu)建GB18030字庫文件;②將構(gòu)造好的字庫文件編譯到VxWorks的WindML庫中;③上層應(yīng)用軟件調(diào)用VxWorks提供的系統(tǒng)函數(shù)uglkxtDraw ;④UglTextDraw函數(shù)對顯示字符進行過濾,區(qū)分出英文字符和中文字符;⑤對于中文字符,通過UglTextDraw函數(shù)進一步區(qū)分出是二字節(jié)碼字符,還是四字節(jié)碼字符;⑥通過二 /四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將漢字的GB18030碼轉(zhuǎn)換成Unicode碼;⑦根據(jù)漢字的Unicode碼查找字體庫,提取出對應(yīng)漢字的點陣信息進行顯示。所述步驟①具體為先構(gòu)造字體的位圖描敘結(jié)構(gòu),并定義該字體的名稱、字體系列名稱、點陣大小、寬度、斜體、行間距屬性、字符集、最大上偏移位置、最大下偏移位置、最大寬度信息;然后構(gòu)造前述結(jié)構(gòu)中的點陣存儲數(shù)組pageArray,并描述該字庫包含的字符點陣存儲結(jié)構(gòu)數(shù)組PageData ;最后構(gòu)造每個點陣存儲結(jié)構(gòu)pageData,并詳細描述漢字的編碼、點陣信息長度、寬度、高度、最大上偏移位置和漢字的點陣描述。所述步驟⑤具體為UglTextDraw函數(shù)通過對漢字的GB 18030編碼的邊界范圍來進行判斷和區(qū)分中文字符是二字節(jié)碼字符還是四字節(jié)碼字符。所述步驟⑥具體為對于二字節(jié)碼字符,調(diào)用二字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成Unicode碼;對于四字節(jié)碼字符,則調(diào)用四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成 Unicode 碼。所述步驟⑦具體為根據(jù)字符的Unicode碼,通過系統(tǒng)的字體引擎,調(diào)用構(gòu)造的中文字庫,實現(xiàn)中英文字符的顯示。本發(fā)明具有以下的有益效果(1)本發(fā)明充分利用了 VxWorks的顯示機制,使得應(yīng)用軟件不需要開發(fā)自己的點陣存儲、點陣獲取、點陣顯示及漢字顯示函數(shù),就能實現(xiàn)對漢字的顯示。(2)本發(fā)明將漢字字庫的存儲和顯示實現(xiàn)放到了系統(tǒng)層,使其與應(yīng)用軟件分離,提高了應(yīng)用軟件的擴展性和可移植性。(3)本發(fā)明對英文及漢字的判斷處理放到了系統(tǒng)層,極大地降低了應(yīng)用軟件顯示處理的復(fù)雜度。
為了使本發(fā)明的內(nèi)容更容易被清楚的理解,下面根據(jù)具體實施例并結(jié)合附圖,對本發(fā)明作進一步詳細的說明,其中圖1為本發(fā)明構(gòu)建GB18030字庫文件的流程圖。圖2為本發(fā)明漢字顯示的流程圖。
具體實施例方式(實施例1)見圖1和圖2,本實施例包括以下步驟①構(gòu)建GB18030字庫文件先構(gòu)造字體的位圖描敘結(jié)構(gòu),并定義該字體的名稱、 字體系列名稱、點陣大小、寬度、斜體、行間距屬性、字符集、最大上偏移位置、最大下偏移位置、最大寬度信息;然后構(gòu)造前述結(jié)構(gòu)中的點陣存儲數(shù)組pageArray,并描述該字庫包含的字符點陣存儲結(jié)構(gòu)數(shù)組pageData ;最后構(gòu)造每個點陣存儲結(jié)構(gòu)pageData,并詳細描述漢字的編碼、點陣信息長度、寬度、高度、最大上偏移位置和漢字的點陣描述;②將構(gòu)造好的字庫文件編譯到VxWorks的WindML庫中,WindML是Wind RiverMutli-media Library 的簡稱,其中包含UGL (Universal Graphics Library),該組件直接控制顯示硬件,主要提供顯示模式設(shè)置、標準輸入輸出控制、點線面作圖等函數(shù),編程接口很類似于iTorbo C.Borland C里的圖形庫;③上層應(yīng)用軟件調(diào)用VxWorks提供的系統(tǒng)函數(shù)UglTextDraw ;④UglTextDraw函數(shù)對顯示字符進行過濾,區(qū)分出英文字符和中文字符;⑤對于中文字符,uglkxtDraw函數(shù)通過對漢字的GB 18030編碼的邊界范圍來進行判斷和區(qū)分中文字符是二字節(jié)碼字符還是四字節(jié)碼字符;⑥對于二字節(jié)碼字符,調(diào)用二字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成Unicode碼; 對于四字節(jié)碼字符,則調(diào)用四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成Unicode碼;⑦根據(jù)字符的Unicode碼,通過系統(tǒng)的字體引擎,調(diào)用構(gòu)造的中文字庫,實現(xiàn)中英文字符的顯示。應(yīng)當理解,以上所描述的具體實施例僅用于解釋本發(fā)明,并不用于限定本發(fā)明。由本發(fā)明的精神所引伸出的顯而易見的變化或變動仍處于本發(fā)明的保護范圍之中。
權(quán)利要求
1.基于VxWorks操作系統(tǒng)的漢字顯示方法,其特征在于包括以下步驟①構(gòu)建GB18030字庫文件;②將構(gòu)造好的字庫文件編譯到VxWorks的WindML庫中;③上層應(yīng)用軟件調(diào)用VxWorks提供的系統(tǒng)函數(shù)UglTextDraw;④uglTextDraw函數(shù)對顯示字符進行過濾,區(qū)分出英文字符和中文字符;⑤對于中文字符,通過UglTextDraw函數(shù)進一步區(qū)分出是二字節(jié)碼字符,還是四字節(jié)碼字符;⑥通過二/四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將漢字的GB18030碼轉(zhuǎn)換成Unicode碼;⑦根據(jù)漢字的Unicode碼查找字體庫,提取出對應(yīng)漢字的點陣信息進行顯示。
2.根據(jù)權(quán)利要求1所述的基于VxWorks操作系統(tǒng)的漢字顯示方法,其特征在于所述步驟①具體為先構(gòu)造字體的位圖描敘結(jié)構(gòu),并定義該字體的名稱、字體系列名稱、點陣大小、寬度、斜體、行間距屬性、字符集、最大上偏移位置、最大下偏移位置、最大寬度信息 ’然后構(gòu)造前述結(jié)構(gòu)中的點陣存儲數(shù)組pageArray,并描述該字庫包含的字符點陣存儲結(jié)構(gòu)數(shù)組pageData ;最后構(gòu)造每個點陣存儲結(jié)構(gòu)pageData,并詳細描述漢字的編碼、點陣信息長度、寬度、高度、最大上偏移位置和漢字的點陣描述。
3.根據(jù)權(quán)利要求2所述的基于VxWorks操作系統(tǒng)的漢字顯示方法,其特征在于所述步驟⑤具體為=UglTextDraw函數(shù)通過對漢字的GB18030編碼的邊界范圍來進行判斷和區(qū)分中文字符是二字節(jié)碼字符還是四字節(jié)碼字符。
4.根據(jù)權(quán)利要求3所述的基于VxWorks操作系統(tǒng)的漢字顯示方法,其特征在于所述步驟⑥具體為對于二字節(jié)碼字符,調(diào)用二字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成Unicode 碼;對于四字節(jié)碼字符,則調(diào)用四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將其轉(zhuǎn)換成Unicode碼。
5.根據(jù)權(quán)利要求4所述的基于VxWorks操作系統(tǒng)的漢字顯示方法,其特征在于所述步驟⑦具體為根據(jù)字符的Unicode碼,通過系統(tǒng)的字體引擎,調(diào)用構(gòu)造的中文字庫,實現(xiàn)中英文字符的顯示。
全文摘要
本發(fā)明公開了基于VxWorks操作系統(tǒng)的漢字顯示方法構(gòu)建GB18030字庫文件;將構(gòu)造好的字庫文件編譯到WindML庫中;上層應(yīng)用軟件調(diào)用系統(tǒng)函數(shù)uglTextDraw對顯示字符進行過濾,區(qū)分出英文字符和中文字符;對于中文字符,通過uglTextDraw函數(shù)進一步區(qū)分出是二字節(jié)或四字節(jié)碼字符;通過二/四字節(jié)碼轉(zhuǎn)Unicode碼函數(shù),將漢字的GB18030碼轉(zhuǎn)換成Unicode碼;根據(jù)漢字的Unicode碼查找字體庫,提取出對應(yīng)漢字的點陣信息進行顯示。本發(fā)明充分利用了VxWorks的顯示機制,使得應(yīng)用軟件不需要開發(fā)自己的點陣存儲、點陣獲取、點陣顯示及漢字顯示函數(shù),就能實現(xiàn)對漢字的顯示。
文檔編號G06F9/44GK102339216SQ20101022730
公開日2012年2月1日 申請日期2010年7月15日 優(yōu)先權(quán)日2010年7月15日
發(fā)明者宗軍, 潘惠彬 申請人:江蘇國光信息產(chǎn)業(yè)股份有限公司