一種可移植的嵌入式圖形支持系統(tǒng):MiniGUI
嵌入式產(chǎn)品開發(fā)中常用的圖形解決方案
在嵌入式產(chǎn)品的開發(fā)過程中,軟件開發(fā)人員通常采取如下幾種方法來解決產(chǎn)品的圖形需求:
1.針對特定圖形輸出設(shè)備的接口,自行開發(fā)圖形相關(guān)的功能函數(shù)。利用這種手段編寫的程序,無法將顯示邏輯和數(shù)據(jù)處理邏輯劃分開來,從而導(dǎo)致程序結(jié)構(gòu)不好,不便于調(diào)試,并導(dǎo)致大量的代碼重復(fù)。這種方案的缺點很明顯,即可移植性差,維護成本高。
2.購買針對特定嵌入式操作系統(tǒng)的圖形中間件軟件包。一些嵌入式操作系統(tǒng)廠商,也為自己的操作系統(tǒng)專門開發(fā)了對應(yīng)的GUI中間件產(chǎn)品。如uC/OS-II上的uC/GUI、Nucleus上的GRAFIX包、VxWorks上的WindML包等等。這種方案為嵌入式產(chǎn)品開發(fā)提供了直接可用的方案,并且能夠和原有操作系統(tǒng)良好配合;但缺點是這類軟件包的功能通常比較簡單,且價格高昂。另外,基于這些軟件包開發(fā)的GUI 應(yīng)用軟件不具備跨操作系統(tǒng)的可移植性。
3.采用開放源碼的嵌入式GUI支持系統(tǒng)。隨著嵌入式Linux操作系統(tǒng)的應(yīng)用,開源社區(qū)也在不斷為嵌入式系統(tǒng)提供不同的開放源碼嵌入式圖形解決方案,如MicroWindows、OpenGUI,以及新近出現(xiàn)的picoGUI等。這些開放源碼的嵌入式GUI軟件提供免授權(quán)費的解決方案。然而,由于缺少商業(yè)公司的支持,這些軟件一般存在較多的軟件缺陷,加上缺乏有擔(dān)保的技術(shù)支持,因此,存在著很大的開發(fā)風(fēng)險。
圖2 MiniGUI 和嵌入式操作系統(tǒng)的關(guān)系。
4.使用由獨立軟件開發(fā)商提供的嵌入式GUI產(chǎn)品。這類產(chǎn)品有北京飛漫軟件技術(shù)有限公司開發(fā)的MiniGUI、挪威TrollTech公司的Qt/Embedded等。這兩種產(chǎn)品都是開源(遵循GNU的GPL條款發(fā)布)的嵌入式GUI軟件產(chǎn)品,但均采用雙授權(quán)模式,即針對商業(yè)使用收取軟件許可費用。MiniGUI屬于中低端產(chǎn)品,具有跨操作系統(tǒng)特性,以及適合嵌入式產(chǎn)品的小巧、高效的特點。Qt/Embedded屬于高端產(chǎn)品,只支持嵌入式Linux操作系統(tǒng),需要16MB以上的靜態(tài)存儲空間及6?MB以上的動態(tài)存儲空間。
MiniGUI的特點及應(yīng)用
MiniGUI作為中國為數(shù)不多的幾個自由軟件項目之一,是面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),1999年初遵循GPL條款發(fā)布第一個版本,目前已發(fā)展到1.6.1版本。
MiniGUI為實時嵌入式操作系統(tǒng)提供了非常完善的圖形及圖形用戶界面支持。MiniGUI本身的可移植性設(shè)計,使得不論在哪個硬件平臺、哪種操作系統(tǒng)上運行,MiniGUI均能為上層應(yīng)用程序提供一致的應(yīng)用程序編程接口(API)。
作為操作系統(tǒng)和應(yīng)用程序之間的中間件,MiniGUI將底層操作系統(tǒng)及硬件平臺差別隱藏了起來,并對上層應(yīng)用程序提供了一致的功能特性,這些功能特性包括:
1.完備的多窗口機制和消息傳遞機制。
2.常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、進度條、屬性頁、工具欄、拖動條、樹型控件、月歷控件等。
3.對話框和消息框支持以及其它GUI元素,包括菜單、加速鍵、插入符、定時器等。
4.界面皮膚支持。用戶可通過皮膚支持獲得外觀非常華麗的圖形界面。
5.通過兩種不同的內(nèi)部軟件結(jié)構(gòu)支持低端顯示設(shè)備(如單色 LCD)和高端顯示設(shè)備(如彩色顯示器),前者小巧靈活,而后者在前者的基礎(chǔ)上提供了更加強大的圖形功能。
6.Windows的資源文件支持,如位圖、圖標(biāo)、光標(biāo)等。
7.各種流行圖像文件的支持,包括JPEG、GIF、PNG、TGA、BMP等等。
8.多字符集和多字體支持,目前支持ISO8859-1?ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE等字符集,支持等寬點陣字體、變寬點陣字體、Qt/Embedded 使用的嵌入式字QPF、TrueType以及Adobe Type1等矢量字體。
9.多種鍵盤布局的支持。MiniGUI除支持常見的美式PC鍵盤布局之外,還支持法語、德語等語種的鍵盤布局。
10.簡體中文(GB2312)輸入法支持,包括內(nèi)碼、全拼、智能拼音等。用戶還可以從飛漫軟件獲得五筆、自然碼等輸入法支持。
11.針對嵌入式系統(tǒng)的特殊支持,包括一般性的I/O流操作,字節(jié)序相關(guān)函數(shù)等。
評論