嵌入式30dvd30盤3minigui學習白皮書_第1頁
嵌入式30dvd30盤3minigui學習白皮書_第2頁
嵌入式30dvd30盤3minigui學習白皮書_第3頁
嵌入式30dvd30盤3minigui學習白皮書_第4頁
嵌入式30dvd30盤3minigui學習白皮書_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1.6MiniGUI 1.6MiniGUI 目錄1MiniGUI 簡系統(tǒng)對GUI 的要MiniGUI 的技術特2為什么要使用 GUI 系統(tǒng)簡目錄1MiniGUI 簡系統(tǒng)對GUI 的要MiniGUI 的技術特2為什么要使用 GUI 系統(tǒng)簡MiniGUI 的優(yōu)輕型、占用資源高性高可靠可配可伸縮性跨操作系統(tǒng)支的應用實3MiniGUI 的典型應用場及工MiniGUI 界面設計MiniGUI 瀏覽器產(chǎn)4策GPLMiniGUI5MiniGUI 項目(GPL 并開展后續(xù)開發(fā)。其目標是為基于 Linux 到目前為止,已經(jīng)非常成熟和穩(wěn)定,并且在許多實際產(chǎn)品或項目中得到應用。目前,MiniGUI 1.6.01.3

2、.3GUI PDA 幾乎看不在 PC 機見慣的華麗美觀的 GUI 支持。但在最近出現(xiàn)的 PocketPC GUI MiniGUI 項目(GPL 并開展后續(xù)開發(fā)。其目標是為基于 Linux 到目前為止,已經(jīng)非常成熟和穩(wěn)定,并且在許多實際產(chǎn)品或項目中得到應用。目前,MiniGUI 1.6.01.3.3GUI PDA 幾乎看不在 PC 機見慣的華麗美觀的 GUI 支持。但在最近出現(xiàn)的 PocketPC GUI Web HTML4.0 的支持、JavaScript Java GUI 般建立在標準 PC GUI 般不希望建立在龐大累贅的、非常消耗系統(tǒng)資源的操作系統(tǒng)和 GUI Windows 或 Wind

3、owDOS 法實現(xiàn) GUI。但是,在出現(xiàn) Linux 系統(tǒng)之后,尤其在 RT-Linux 及 RTAI 系統(tǒng)出現(xiàn)之后,許多工業(yè)控制系統(tǒng)開始采用 Linux 作為實時操作系統(tǒng),但 GUI 仍然是一個問題。關鍵是 X Window GUI 系統(tǒng)往往是一種定制設備,它們對 GUI 舉個簡單的例子,有的系統(tǒng)只要求一些圖形功能,而有些系統(tǒng)要求完備的 GUI 支持。因此,GUI 綜上所述,GUI 系統(tǒng)或者實時系統(tǒng)中的地位將越來越重要,這些系統(tǒng)對 GUI MiniGUI 首先,MiniGUI 系統(tǒng)應用特點量身定做的一個完整 GUI 1可將 MiniGUI 配置成三種運行模式:為了適應不同的操作系統(tǒng)運行環(huán)境,

4、Threads、MiniGUI-Lite MiniGUI-Standalone可以將 MiniGUI 所使用的資源,諸如位圖、圖標和字體等編譯到函數(shù)庫中該特性可提高MiniGUI 的初始化速度并且非常適合uClinux/eCos/uCOS-可將 MiniGUI 配置成三種運行模式:為了適應不同的操作系統(tǒng)運行環(huán)境,Threads、MiniGUI-Lite MiniGUI-Standalone可以將 MiniGUI 所使用的資源,諸如位圖、圖標和字體等編譯到函數(shù)庫中該特性可提高MiniGUI 的初始化速度并且非常適合uClinux/eCos/uCOS-GUI 顯示設備(LCD)和高端顯示設備(8

5、在高端顯示設備上,提供有增強 GDI 多邊形以及區(qū)域填充等函數(shù)。在提供有兼容于 C99 規(guī)范的數(shù)學庫Windows 各種流行圖像文件的支持,包括 Windows BMP、GIF、JPEG、PNG 等(JPEG 及 libjpeg libpng 函數(shù)庫提供多字符集和多字體支持,目前支持 ISO8859-1ISO8859-15、GB2312、GBK、GB18030、 BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8 編碼)等字符集,支持等寬點陣 等矢量字體(TrueType 及 Type1 的支持分別通過 freetype 1.3 及 libt1 函數(shù)庫提供。

6、多種鍵盤布局的支持。MiniGUI PC 鍵盤布局之外,還支持法語、德語等I/O 其次,在 MiniGUI 的創(chuàng)新,才使得 MiniGUI 系統(tǒng),而且也使得 的API MiniGUI DragonBall、ColdFire 的(DC)(LFNT) Dt等函數(shù)時,可通過 B212、B5、E、ShJS等等。對于一個窗口來說,同時顯示不同語種的文字是可能的。MiniGUI UNICODE 針對不同操作系統(tǒng)特點的運行模式。和 Linux 這樣的類 UNIX MMU(內(nèi)存管理單元,用于提供虛擬內(nèi)存支持)CPU 2這時,往往就沒有進程的概念,而只有線程或者任務的概念,這樣,GUI 可將 MiniGUI M

7、iniGUI-Threads。運行在 MiniGUI-Threads 上的程序可以在不同的線程中建立多個窗口,但所uC/OS-IIeCosVxWorkspSOS Linux uClinux 上,MiniGUI也能以 MiniGUI-Threads 的模式運行。MiniGUI-Lite。和 MiniGUI-Threads 相反,MiniGUI-Lite 也可以建立多個窗口。MiniGUI-Lite 適合于具有完整 這時,往往就沒有進程的概念,而只有線程或者任務的概念,這樣,GUI 可將 MiniGUI MiniGUI-Threads。運行在 MiniGUI-Threads 上的程序可以在不同的線

8、程中建立多個窗口,但所uC/OS-IIeCosVxWorkspSOS Linux uClinux 上,MiniGUI也能以 MiniGUI-Threads 的模式運行。MiniGUI-Lite。和 MiniGUI-Threads 相反,MiniGUI-Lite 也可以建立多個窗口。MiniGUI-Lite 適合于具有完整 UNIX LinuxMiniGUI-Standalone。這種運行模式下,MiniGUI 可以以獨立進程的方式運行,既不需要多線程也不需要多進程的支持,這種運行模式適合功能單一的應用場合。比如在一些使用 uClinux 而缺少線程支持,這時,就可以使用 MiniGUI-Sta

9、ndalone 用。 DOS 這樣的操作系統(tǒng);MiniGUI-Threads UNIX 特性的普通操作系統(tǒng);MiniGUI-Lite 用面較小,它僅適合于具備完整 UNIX MiniGUI MiniGUI 1.1.0 SDL Allegro MiniGUI-Lite 新的 GAL 能夠支持硬件加速能力,并能夠充分使用顯示內(nèi)存;新 GAL 之上的新 GDI GDI Alpha 混和、透明位塊傳輸、光柵操作、YUV覆蓋、Gamma 校正,以及高級圖形功能(橢圓、多邊形、樣條曲線)等等。GALMiniGUI 3為什么要使用 Linux Linux GUI 系統(tǒng),MiniGUI 系統(tǒng)在理解上的不同,使

10、得這些 GUI GUI 那么,MiniGUI GUI GUI Software GB2312 等字符集的支持。但在 Qt/Embedded 0.89Pre8 MicroWindows MicroWindows 為什么要使用 Linux Linux GUI 系統(tǒng),MiniGUI 系統(tǒng)在理解上的不同,使得這些 GUI GUI 那么,MiniGUI GUI GUI Software GB2312 等字符集的支持。但在 Qt/Embedded 0.89Pre8 MicroWindows MicroWindows 是一個基于典型客戶/服務器體系結構的 GUI 系統(tǒng),基本分為三層。最底層是面分別提供兼容于

11、XWindow 和WindowsCE(Win32 子集)的API該項目的主要特色在于提供了類似 X 的客戶/服務器體系結構,并提供了相對完善的圖形功能,包括一些高級的功能,比如 Alpha 混合,三維支持,TrueType 字體支持等。但需要注意的是, 。MicroWindows 0.89Pre8 MicroWindows MPL 條款發(fā)布(LGPL 條款)在 Linux 系統(tǒng)上存在已經(jīng)很長時間了。最初的名字叫256 ,比如 MS-DOS、QNX 和 Linux 等等,不過目前只支持 x86 硬件。OpenGUI 也分為三層。最低層是由匯編編寫的快速圖形引擎;中間層提供了圖形繪制 API,包括

12、線條、矩形、圓弧等,并且Borland BGIAPIC+ GUI OpenGUI 采用 LGPL 條款發(fā)布。OpenGUI 比較適合于基于 的4Qt/Embedded Qt 入式系統(tǒng)的 Qt 版本。因為 Qt 是 等項目使用的 GUI 支持庫,所以有許多基于 Qt 的 Window Qt/Embedded Qt/Embedded GPL Linux Qt/Embedded 但是,Qt/Embedded Qt/Embedded 是一個 C+ 函數(shù)庫,盡管 Qt/Embedded 聲稱可以裁剪到最少 630K,但這時的 Qt/Embedded 庫已經(jīng)基本上失去了使用價值。低的程序效率、大的資源消耗

13、也對運行 Qt/Embedded 的硬件提出了更高的要求。Qt/Embedded 終Qt/Embedded PC Qt/Embedded Qt 入式系統(tǒng)的 Qt 版本。因為 Qt 是 等項目使用的 GUI 支持庫,所以有許多基于 Qt 的 Window Qt/Embedded Qt/Embedded GPL Linux Qt/Embedded 但是,Qt/Embedded Qt/Embedded 是一個 C+ 函數(shù)庫,盡管 Qt/Embedded 聲稱可以裁剪到最少 630K,但這時的 Qt/Embedded 庫已經(jīng)基本上失去了使用價值。低的程序效率、大的資源消耗也對運行 Qt/Embedde

14、d 的硬件提出了更高的要求。Qt/Embedded 終Qt/Embedded PC Qt/Embedded iPAQ 1GUI 表表 GUI 5Win32X、Win32 API 是否完是Win32是是函數(shù)庫的典只支持 較好(但函數(shù)庫本身的跨 交叉編譯很困 好X 接口的多進程支持好,Win32 接口尚不好好好差獨特的多字符集支持功能,更加適合 系采用 UNICODE,但效可配置和可好(提供了大量編譯配置選項,可配置能力很差差系統(tǒng)資源消?。ǘ嗑€程和 MiniGUI- Lite 均是針對最小系統(tǒng)較大(基于 UNIX 套接字的傳統(tǒng)客戶/服務器體系, 進程間的通最大(用 C+實現(xiàn),系MiniGUI Li

15、nux 系統(tǒng)的 MicroWindows、Qt/Embedded MiniGUI 等三個系統(tǒng)。相比較而言,MiniGUI MiniGUI 最初是為了滿足一個工業(yè)控制系統(tǒng)(計算機數(shù)控系統(tǒng))(CNC WindowsNTLinux RT-Linux MiniGUI Linux 系統(tǒng)的 MicroWindows、Qt/Embedded MiniGUI 等三個系統(tǒng)。相比較而言,MiniGUI MiniGUI 最初是為了滿足一個工業(yè)控制系統(tǒng)(計算機數(shù)控系統(tǒng))(CNC WindowsNTLinux RT-Linux 2ms 甚XWindow X 產(chǎn)生的背景。顯然,MiniGUI 的研發(fā)成果表明,MiniGU

16、I 能夠在 CPU 30 MHz,僅有 4M RAM MicroWindows Qt/Embedded GUI iWs追求和 X NX套接字的客戶 NXUX套接字的數(shù)據(jù)傳遞,要經(jīng)過內(nèi)核負荷,也占用了許多系統(tǒng)資源。加上 icrWs 的圖形引擎代碼任何優(yōu)化,因此,MicroWindows Qt/Embedded C+ 的函數(shù)庫,影響其圖形效率的原因,主要是 C+ 的臃腫和由此造成的系統(tǒng)資源的極度浪費。從對用戶操作的響應能力、應用程序的啟動速度等方面看,Qt/Embedded 6訊頻繁, 系統(tǒng)資源消好最好(底層用匯編編差操作系統(tǒng)支uC/OS-II, VxWorks 等DOS、Linux、已知能運行x

17、86ARMMIPS C、30MHzx86、ARM、MIPS、 70MHzx86、ARM、100MHz使用是否廣大陸、 地區(qū)等使用廣泛。產(chǎn)品涉及普通 PC 上的 Linux 發(fā)行版、 PDA 等手持設 備、 機/ 機、主要針對手持設備。用戶主要限于 ,在實時控制領域使用廣泛。主要用戶分布主要針對高端手持設 備。在歐美、韓國等地MiniGUI MiniGUI-Lite 大家知道,MiniGUI 最初的版本,即 MiniGUI-Threads 采用了線程機制(Windows E為了解決 MiniGUI 版本因為線程而引入的一些問題,同時也為了讓 MiniGUI MiniGUI-Lite MiniGU

18、I 99% 以上的兼容。可以同時運行多個基于 MiniGUI-Lite 的應用程序,即多個進MiniGUI MiniGUI-Lite 大家知道,MiniGUI 最初的版本,即 MiniGUI-Threads 采用了線程機制(Windows E為了解決 MiniGUI 版本因為線程而引入的一些問題,同時也為了讓 MiniGUI MiniGUI-Lite MiniGUI 99% 以上的兼容。可以同時運行多個基于 MiniGUI-Lite 的應用程序,即多個進程,并且提供進程的顯然,要同時滿足上述三個目的,如果采用傳統(tǒng)的客戶/服務器(C/S)結構對現(xiàn)有 MiniGUI 行改造,應該不難實現(xiàn)。但前面提

19、到的傳統(tǒng) C/S 結構的缺陷卻無法避免。經(jīng)過對 PDA 系發(fā)現(xiàn),某些 PDA C/S 構處理多個進程窗口之間的互相剪切。也就是說,在這種產(chǎn)品中,如果采用基于傳統(tǒng) C/S MiniGUI 自己的主窗口 Z 個進程只有一個線程,只有一個消息循環(huán)之外,它與原有的 MiniGUI (mginitMiniGUI-Lite 從 1.6.0 版本起,服務器程序不再將自己限定在和客戶不相交的區(qū)域中。服務器所創(chuàng)建的窗 從傳統(tǒng) C/S 窗口系統(tǒng)的角度看,MiniGUI-Lite MiniGUI-Lite PDA MniULie72在GAL GDI MiniGUI 1.1.0 版本的開發(fā)中,參考著名的跨和多Dire

20、ctMediaLayer)GAL GDI2在GAL GDI MiniGUI 1.1.0 版本的開發(fā)中,參考著名的跨和多DirectMediaLayer)GAL GDI 新的 AL DC設 C之間的 Bilt位塊傳送功能。目前,新的 AL引擎對某些顯示卡提供了硬件加速支持,這些加速功能主要有:矩形填充,透明、lha混和的 BBlt操作等。另外,新的 L接口支持Gamma YUVOverlay除上述特點外,新的 GDI 還采用了新的區(qū)域算法,即 X Window GUI 這些矩形具有相同的高度,而且所有矩形的左上角 y 坐標相等。區(qū)域中矩形的排列,首先是在 方向(在一個條帶中)從左到右排列,然后按

21、照 y GDI x-y-banned 新新的 GDI 函數(shù)還提供了光柵操作。光柵操作是指在進行繪圖輸出時,如何將要輸出的象素點和Alpha 混和。這里的光柵操作特指二進包括與、接的設置(覆)用程序可以 SetRasterOperation/GetRasterOperation 函數(shù)設置或者獲取當前的光柵操作。在設置了新的光柵操作之后,其后的一般圖形輸出將受到設定的光柵操作的影響,這些圖形輸出包括:LineTo、Circle、 Rectangle、FillBox、FillCircle、FillBoxWithBitmap 等等。除了光柵操作之外,新 GDI GDI 新的 GDI 函數(shù)增強了內(nèi)存 D

22、C 操作函數(shù)。默認情況下,內(nèi)存 DC Alpha 混和。當然,如果硬件不支持這些Alpha Alpha 值,也可以通過 SetMemDCAlpha 設置內(nèi)存 DC GAL 可以通過的內(nèi)存 DC(的 Alpha 值(或者稱為“Alpha 通道,然后利用 BitBlt 和 StretchBlt 函數(shù)實現(xiàn) DC 之間的位塊傳送。應用程序還可以通過 SetMemDCColorKey 函數(shù)設置源 DC 的透明色,從而在進行 BitBlt 時跳過這些透明色。應用程序還可以利用 GDI 繪圖函數(shù)向內(nèi)存 DC BitBlt DC GDI BITMAP Alpha bmTypebmAlphabmColorkey

23、 等成員, 就可以使得 BITMAP 對象具有某些屬性。 然后可以利用FillBoxWithBitmap/Part 函數(shù)將 BITMAP 對象繪制到某個 DC 上。你可以將在系統(tǒng)內(nèi)存中建立的內(nèi)存 DC 對象。也可以通過 DC BITMAP 函數(shù)將某個 8從 1999 年 MiniGUI 的第一個版本發(fā)布以來,就有許多產(chǎn)品和項目使用 MiniGUI,MiniGUI 本 1.0 5.0 VtechHelio PDA PDA 從 1999 年 MiniGUI 的第一個版本發(fā)布以來,就有許多產(chǎn)品和項目使用 MiniGUI,MiniGUI 本 1.0 5.0 VtechHelio PDA PDA -某公

24、司開發(fā)的 WiFi系統(tǒng)千變?nèi)f化的需求,必須要求 GUI 系統(tǒng)是可配置的。在 CNC MiniGUI Linux Automake Autoconf 口,實現(xiàn)了大量的編譯配置選項,通過這些選項可指定 MiniGUI MiniGUI MiniGUI VxWorksLinux、uClinux、eCos uC/OS-II 指定生成基于線程的 MiniGUI-Threads 運行模式還是基于進程的 MiniGUI-Lite MiniGUI-Standalone GAL/GDI 接口 GAL IAL 引擎,以及引擎相關選項??傊?,MiniGUI MiniGUI ARM9 MiniGUI 9理論上,Mini

25、GUI 操作系統(tǒng);實際已支持 Linux/uClinux、eCosuC/OS-IIVxWorks 為什么 MiniGUI 操作系統(tǒng)上運行?這是因為 MiniGUI 架構,通過抽象層將 MiniGUI 開來。如圖 1 所示,基于 MiniGUI ANSI理論上,MiniGUI 操作系統(tǒng);實際已支持 Linux/uClinux、eCosuC/OS-IIVxWorks 為什么 MiniGUI 操作系統(tǒng)上運行?這是因為 MiniGUI 架構,通過抽象層將 MiniGUI 開來。如圖 1 所示,基于 MiniGUI ANSIC MiniGUI API 來實現(xiàn)自己的功能;MiniGUI 1 MiniGUI

26、 ix86,ARM,C,Linux/uClinux,eCos,uC/OS-II,VxWorks,ANSIPortableFrameWork,MMI,KeyMiniGUI MiniGUI 從最初的數(shù)控系統(tǒng)到目前流行的智能手持終端設備,MiniGUI MiniGUI 、PDA 類產(chǎn)品。圖 2 給出的是采用 eCos 操作系統(tǒng),基于 MiniGUI MiniGUI MiniGUI 從最初的數(shù)控系統(tǒng)到目前流行的智能手持終端設備,MiniGUI MiniGUI 、PDA 類產(chǎn)品。圖 2 給出的是采用 eCos 操作系統(tǒng),基于 MiniGUI 2 MiniGUI 及機頂盒類產(chǎn)品。圖 3 給出的是基于 Mi

27、niGUI 漫3 MiniGUI 工業(yè)儀表及控制系統(tǒng)。圖 4 給出的是基于 和 MiniGUI 4 MiniGUI Linux 已經(jīng)在兩種 版中得到應用。HappyLinux MiniGUI Red6.0 安裝程序的基礎上移植而來。在該安裝程序中添加4 MiniGUI Linux 已經(jīng)在兩種 版中得到應用。HappyLinux MiniGUI Red6.0 安裝程序的基礎上移植而來。在該安裝程序中添加了其他一些特色,以便更加5 HappyLinux 5 MiniGUI 典型應用:HappyLinux1.0 圖 6 開發(fā)的基于 已PDA 6 開發(fā)的基于 MGIS 基于 MiniGUI 開發(fā)的地理信息系統(tǒng),如圖 7 所示。漫底層使用C+MGIS 基于 MiniGUI 開發(fā)的地理信息系統(tǒng),如圖 7 所示。漫底層使用C+C方式的控件接口;MiniGUI,可移植、高性能;MapInfoTAB文件格式,并已對支持多種數(shù)據(jù)格式預留接口;MGIS 控件支持以下狀態(tài):漫游、放大、縮小、測距;7 MiniGUI MiniGUI 8 M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論