DeltaOS 3.0 -簡介(5)
DeltaOS的圖形用戶接口(DeltaGUI)是一個支持中文的圖形界面系統(tǒng),它為構(gòu)建圖形用戶界面提供了各種類似Windows風格的圖形控件。圖形用戶接口支持DeltaOS/VxWorks/Linux等多種嵌入式操作系統(tǒng),通過使用圖形用戶接口,開發(fā)人員可以在嵌入式電子設備(如工控機,PDA,STB等)上制作出臺式機一樣的圖形界面效果。
圖:圖形用戶接口體系結(jié)構(gòu)
為什么選擇圖形用戶接口?
帶有顯示器的嵌入式設備隨處可見,有的采用小型液晶顯示器,有的采用大尺寸的光柵顯示器,有的要求高分辨率,有的則要把顏色數(shù)作為硬指標。不同的應用也有著不同的需求,有些應用要求能夠在屏幕上高效的繪制出各種比例的矢量圖,需要的是豐富的圖形繪制功能,而另一些則要求編寫出復雜華麗的界面,需要的是多種多樣的窗口控件。由于應用需求的側(cè)重點各不相同,為了滿足各種嵌入式應用的需求,一套完整的圖形界面系統(tǒng)需要對每一種功能都有全面的支持,這就導致了界面系統(tǒng)體積較大且使用復雜。
遺憾的是,與傳統(tǒng)的臺式機(PC機)不同,在嵌入式領域同時滿足那么多需求往往需要付出很高的代價。主要原因有三個:
- 嵌入式設備資源受限,不可能具有傳統(tǒng)臺式機那樣的硬件條件來支持復雜的圖形界面系統(tǒng)。
- 硬件技術飛速發(fā)展,產(chǎn)品豐富多樣,對不同的硬件平臺需要開發(fā)不同的圖形界面。即使使用同一套應用界面,移植到不同硬件平臺上也需要付出很大的代價。
- 開發(fā)經(jīng)驗問題,大部分的程序員熟悉Windows或者X-Window圖形開發(fā)環(huán)境,熟悉一套全新的開發(fā)環(huán)境需要花費大量的時間和精力。
科銀京成推出的圖形用戶接口具有可裁剪、平臺無關性、類Windows風格等特點,解決了上述三個問題,從而降低了開發(fā)人員的開發(fā)代價。圖形用戶接口是進行嵌入式圖形界面開發(fā)的良好選擇。
增強和改進
新版本的圖形用戶接口具備如下特點:
- 支持多任務
在嵌入式的應用環(huán)境中,往往對程序的實時性要求較高,要求在指定的響應時間之內(nèi)完成相應的任務。嵌入式GUI同樣也面臨著這樣的要求,即要求GUI能夠比較及時的反映狀態(tài)的變化(尤其是在一些實時監(jiān)控領域)。傳統(tǒng)的GUI采用單線程,GUI核心和用戶的應用程序都在一個線程執(zhí)行,故所有的程序代碼都是順序執(zhí)行,一旦程序中出現(xiàn)某個比較耗時的操作,則直接導致整個系統(tǒng)響應遲緩。
上述問題雖然可以靠MVC模式來解決(例如:可以將和顯示無關的操作放入其他線程來執(zhí)行),但是,采用這種編程方法對應用編寫者的編程能力有相當高的要求。GUI系統(tǒng)應該提供一種方便的機制來解決上述問題。傳統(tǒng)GUI無法解決這些問題,因此提出多任務GUI來實現(xiàn)以上功能。將應用放入不同的線程,則無論其中一個多么繁忙,都不會影響到別的應用的執(zhí)行。并且對應用編寫者的要求不高,使得他們可以把更多的精力放在業(yè)務邏輯的實現(xiàn)方面。
- 支持克隆、獨立、擴展三種多屏顯示模式。給用戶在顯示設備的數(shù)量和擴展上提供更多的選擇。
什么是克隆多屏顯示模式?
克隆多屏顯示模式是指在多臺顯示設備上顯示同樣的內(nèi)容。這一技術在體育場館中有著廣泛的應用。下圖就展示了DeltaOS的圖形用戶接口對克隆多屏顯示的支持:
什么是獨立多屏顯示模式?
在同一顯示設備上可以劃分多個獨立子屏,各個子屏之間是相互獨立沒有聯(lián)系的。下圖展示了圖形用戶接口對
什么是擴展多屏顯示模式?
多屏擴展模式是指單個Windows顯示桌面設置為超寬分辨率,然后橫跨多臺顯示設備顯示。這里講的“擴展”并不是將圖形或象素拉伸變形,相反,每個象素都與普通顯示狀態(tài)一樣精細。
特性
- 可裁剪,開銷小
圖形用戶接口以C++類庫的形式提供,只有在應用程序中用到的組件才會被鏈接入最后的二進制代碼中,根據(jù)應用的不同,對資源的使用一般從200k到 600k不等。例如,如果使用了所有的圖形組件和國標一、二級點陣字庫(11x11大?。?,則占用350K左右的資源。如此小的開銷,非常適合需要中文的嵌入式圖形界面。
- 優(yōu)越的體系結(jié)構(gòu)
圖形用戶接口具有平臺無關性,它提供了一個硬件抽象層,使圖形用戶接口與具體硬件相隔離,無需直接和硬件交涉就能輕易掛接到各種輸入、輸出設備上。硬件抽象層以易于理解的面向?qū)ο笮问教峁┙o驅(qū)動開發(fā)人員,開發(fā)人員根據(jù)芯片的編程資料,可以方便地將圖形用戶接口移植到任何帶有輸入輸出設備的平臺。目前,圖形用戶接口已經(jīng)移植到如下設備上: VGA標準、VESA1.2/2.0/3.0標準的視頻圖形適配器、LCD平板顯示器以及打印機等。支持的輸入設備有:標準的串口鼠標、PS/2鼠標、XT/AT鍵盤以及觸摸屏等。
- 易于使用
在概念、原理和風格上,圖形用戶接口采用了與Win32類似的多窗口以及消息驅(qū)動機制,窗口類和各種控件的使用方法也與Win32相近。因此,熟悉Windows編程風格的開發(fā)人員無需花費太多時間,即可很快掌握圖形用戶接口的編程方法。
- 提供典型的硬件驅(qū)動
圖形用戶接口提供了多種輸出設備的驅(qū)動程序,支持各種規(guī)格的LCD、VGA、VESA的顯示。圖形用戶接口提供的輸入設備驅(qū)動包括串口鼠標、PS/2鼠標、XT/AT鍵盤、矩陣鍵盤、觸摸屏等的驅(qū)動程序。
- 各種分辨率和顯示模式的支持
根據(jù)應用的需求,圖形用戶接口能夠分別提供支持單色、4色、16色、256色、16位色、24位色以及32位色等顯示模式的類庫。同時,圖形用戶接口還支持各種大小的分辨率,滿足應用的不同需要。
- 出色的中文支持
圖形用戶接口支持雙字節(jié)字符集的輸入及顯示,能夠顯示各種大小的中文(GB2312)點陣字庫,并配備了全拼、詞組兩種輸入法。如果應用有別的需求,開發(fā)人員也可以外掛自己的輸入法及字體。圖形用戶接口 提供了點陣字庫轉(zhuǎn)換工具,能夠轉(zhuǎn)換出各種大小的點陣字庫,同時,為了節(jié)約存儲空間,該工具帶有自定義小字庫的功能,能夠只生成自己需要的漢字點陣數(shù)據(jù)。
- 仿真開發(fā)環(huán)境
圖形用戶接口提供了仿真開發(fā)環(huán)境,可脫離目標機環(huán)境編程和運行。所謂仿真開發(fā),實際就是讓圖形用戶接口的應用程序在Windows平臺上運行。開發(fā)人員可直接使用Windows上提供的Microsoft Visual C++工具來編譯和調(diào)試自己的應用程序,以加快代碼編寫和調(diào)試的速度。在仿真開發(fā)環(huán)境下編寫的應用程序代碼,幾乎不用任何改動,只要加上目標機硬件驅(qū)動程序,編譯后即可直接放到目標機上運行。
- 良好的服務
科銀京成的開發(fā)團隊在觸摸屏驅(qū)動、鼠標驅(qū)動(包含硬件鼠標)、視頻硬件加速、漢字輸入、手寫體識別、圖形縮放(包括軟硬件縮放)、圖形平滑滾動等技術方面積累了大量的經(jīng)驗,能夠結(jié)合嵌入式設備的具體硬件情況,提供全面的技術支持,指導應用開發(fā)者更高效地設計圖形用戶界面。
基本規(guī)格
- 基本元素
- 圖形用戶接口 提供外觀類似 Windows 的圖形接口基本元素,包括:
- 窗口
- 對話框
- 菜單
- 按鈕 ( 命令按鈕、單選框、復選框 )
- 文本框
- 滾動條
- 進度條
- 提供類似 Windows 的消息處理機制,最多可同時存放 40 條消息。
- 支持常見圖形文件格式為 BMP ( Windows )、 GIF (87a、89a)、 JPG ( 1.x )。
- 完整的中文支持,提供國標一二級字庫和全拼、詞組兩種中文輸入法,字庫和輸入法均可由用戶根據(jù)需求自行擴展。
- 資源占用情況
- 內(nèi)存(堆)
圖形用戶接口應用程序在運行時需要動態(tài)分配的內(nèi)存主要包括:
- 顯示驅(qū)動程序所分配的脫屏( Off-Screen)顯示緩沖區(qū)。
- 一般由圖形模式分辨率和顏色深度決定。例如, 640 x 480 x 256色顯示模式下,一個像素占用一個(8位)字節(jié),則所需的脫屏顯示緩沖區(qū)大小為640 x 480=307200字節(jié),即大約300K字節(jié)。
- 各種動態(tài)創(chuàng)建的 GUI對象(消息、控件、窗口等)自身所占用的內(nèi)存。
- 視各種對象自身復雜程度而定,每個對象占用的內(nèi)存從數(shù)十字節(jié)到數(shù) K字節(jié)不等。
- 各種動態(tài)創(chuàng)建的數(shù)據(jù)對象所占用的內(nèi)存。
如編輯框所分配的文本緩沖區(qū)、圖形處理類所分配的位圖對象等,這類對象占用的內(nèi)存由用戶需求而定。例如,如果用戶需要在內(nèi)存中處理一幅 1024 x 768 x 65536色的位圖,就需要約1.5M字節(jié)的內(nèi)存。
- 棧
圖形用戶接口 只在棧上創(chuàng)建少量局部變量(含簡單數(shù)據(jù)對象),參數(shù)傳遞時也只使用指針來傳遞 GUI 對象。因此一般情況下 圖形用戶接口 僅占用不到 1K 字節(jié)的棧空間。
- 裁減情況
圖形用戶接口 以 C++ 類庫的形式提供,只有在應用程序中用到的組件才會被鏈接入最后的二進制代碼中,因此,組件的裁剪是自動完成的,無需用戶干涉。
典型裁剪情況如下表所示(其中字庫指 11x11 的點陣字庫):
組件使用情況 |
代碼段大小 |
數(shù)據(jù)段大小 |
共計 |
所有圖形組件 |
約 220K 字節(jié) |
約 300K 字節(jié) |
約 520K 字節(jié) |
所有圖形組件 |
約 200K 字節(jié) |
約 160K 字節(jié) |
約 360K 字節(jié) |
典型性能指標
測試環(huán)境:
賽揚800M處理器
內(nèi)存256M
8位GUI組件庫
測試內(nèi)容 |
測試結(jié)果(ms/個) |
創(chuàng)建窗口 (寬:500,高:300,帶標題欄狀態(tài)欄裝飾窗口) |
14.617 |
銷毀窗口 (寬:500,高:300,帶標題欄狀態(tài)欄裝飾窗口) |
33.31 |
畫點 |
49.767 |
畫對角線(1024 關鍵詞:
嵌入式操作系統(tǒng)
嵌專題delta
相關推薦
技術專區(qū) |
評論