999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于跨平臺下的嵌入式GUI人機界面系統(tǒng)研究與設計

2010-04-12 00:00:00劉洲洲,肖
現(xiàn)代電子技術 2010年14期

摘 要:通過以移動終端為例提出一種新的嵌入式GUI在各類系統(tǒng)平臺中的人機界面功能架構(gòu)、窗口管理、消息流程、圖形繪制操作、GUI目錄結(jié)構(gòu)的層次關系以及示例程序的編寫方法,編譯連接等。通過分析GUI的特點,設計了一個面向?qū)ο蟮目缙脚_GUI框架,對于后繼移動終端軟件應用開發(fā)建立了良好的開發(fā)基礎。

關鍵詞:嵌入式GUI; 系統(tǒng)平臺; 目錄結(jié)構(gòu); 移動終端軟件

中圖分類號:TN919; TP311 文獻標識碼:A

文章編號:1004-373X(2010)14-0034-03

Research and Design of Embedded GUI Man-machine Interface System Based on Cross-platform

LIU Zhou-zhou, XIAO Jun

(Department of Electric Engineering, Xi’an Aero Technical College, Xi’an 710077, China)

Abstract: Taking the mobile terminal as an example, the human-machine interface function architecture, window management, message flow, graphics drawing operation, hierarchy relation of GUI directory structure, compilation method of sample program and compilation connections of a new embedded GUI in various system platforms are proposed. An object-oriented cross-platform GUI framework was designed by analyzing the characteristics of GUI. A good basis for the subsequent development of the mobile terminal software applications was established.

Keywords: embedded GUI; system platform; directory structure; mobile terminal software

0 引 言

隨著硬件條件的提高,移動終端的嵌入式系統(tǒng)對輕量級GUI的需求會越來越迫切。用戶界面是指計算機與其使用者之間的對話接口,它為用戶提供與應用系統(tǒng)交互的可視化通道,同時為程序員提供了一種編程模式,即GUI負責系統(tǒng)可視化界面的生成、管理以及系統(tǒng)與用戶之間的信息交互,而程序員只需專注于對實際應用的分析。GUI在移動終端系統(tǒng)中扮演著很重要的角色,它運行在操作系統(tǒng)抽象層(OSAL)之上,為應用程序提供基于消息機制的圖形用戶界面編程接口。GUI與其他一些應用引擎一起為實現(xiàn)豐富的移動終端應用而提供支持,從而將應用程序的計算部分與界面分離開來,這樣就充分保證了根據(jù)不同需求快速定制出功能強大、界面豐富的應用程序界面[1]。

GUI是一種以圖形化為基礎的用戶界面,使用統(tǒng)一的圖形操作系統(tǒng),如可移動的視窗、選項與鼠標,作為用戶與操作系統(tǒng)之間的中介。GUI最重要的優(yōu)勢在于使用戶擺脫了在命令行提示符下與操作系統(tǒng)進行交互的方式,用戶可以僅通過鼠標點擊來實現(xiàn)熟悉程序的操作,而且由于圖表、對話框等的引入,使得操作直觀形象。GUI已成為一種用戶與計算機交互的標準[2]。其內(nèi)核來源于Micro Window,是具有圖形用戶界面支持的開源嵌入式系統(tǒng)軟件,具備類似WIN32標準的消息循環(huán)和窗口管理機制,提供和WIN32 SDK一樣的API接口。方便跨平臺的開發(fā)和移植。 主要功能包括窗口管理、消息派發(fā)、控件、輸入法、圖形設備接口(GDI);擴展的功能和服務包括圖形編解碼、ALARM管理、數(shù)據(jù)庫、注冊表等[3]。

1 GUI和操作系統(tǒng)的功能架構(gòu)

GUI對上層(應用程序)提供了基于事件或消息驅(qū)動的圖形界面處理機制;它依賴于底層的操作系統(tǒng),但是不限于某一類操作系統(tǒng)[4]。功能架構(gòu)如圖1所示。

應用程序一般都有自己的消息循環(huán):

While(GetMessage(…))

{

TranslateMessage(…);

DispatchMessage(…);

}

其中,GetMessage()得到本先線程的消息。如果沒有消息則檢查有沒有窗口需要重繪;如有則直接給相應的窗口發(fā)WM PAINT消息;如果還沒有,就會掛起本線程。TranslateMessage():如果當前的消息是WM KEYDOWN,則根據(jù)鍵值轉(zhuǎn)換中相應的WM CHAR消息。DispatchMessage():將消息派發(fā)到指定的窗口。如果這個消息沒有指定目標窗口則這個消息丟掉,因此,對于給線程發(fā)送的消息(未指定窗口),用戶必須在此截獲并由用戶自己派發(fā)。

圖1 GUI系統(tǒng)架構(gòu)圖

窗口的管理需要每一個窗口有3個基本的鏈:子窗口→children;父窗口→parent;兄弟窗口→sibling;其中,rootwp窗口是GUI初始化時創(chuàng)建的根窗口。根窗口的子窗口一般是POPU窗口或沒有Child 屬性的OVERLAPPEDWINDOW;每個AP或線程可以有多個這樣的窗口。創(chuàng)建窗口前,必須注冊窗口類;窗口類是一種具有相同屬性或動作的窗口的集合,相當于某一類窗口的模板,這類窗口具有相同的窗口過程、窗口背景、基本風格等,屬于同一個線程(WIN32是實例)。所有的窗口都是某一窗口類的一個實例。窗口類以名字作為ID,但是不同的進程可以擁有相同名字的窗口類[5]。

消息的傳遞機制需要在GUI初始化時創(chuàng)建一個優(yōu)先級別很高的后臺服務線程,專門從事消息獲取與派發(fā)。沒有任何消息時,該線程掛起。一旦驅(qū)動層有任何消息觸發(fā),都將恢復該線程,進入驅(qū)動消息查詢。然后將查詢到的消息經(jīng)過轉(zhuǎn)換后,或者轉(zhuǎn)發(fā)到桌面,或者直接發(fā)送給指定窗口。以筆點點擊為例:Micro Window將筆點消息解釋為鼠標消息,對應鼠標的左鍵。產(chǎn)生的消息有:WM MOVE,WM LBUTTONDOWN,WM LBUTTONUP,WM LBUTTONDBCLK,WM NCLBUTTONDOWN,WM NCLBUTTONUP,WM LBUTTONDBCLK等。筆點時產(chǎn)生Touchpannel 中斷,經(jīng)過Driver層處理后,將喚醒GUI后臺線程,后者從Driver層獲取筆點的消息和坐標;結(jié)合上一次的筆點座標信息,生成一定的鼠標消息;根據(jù)坐標,在窗口鏈中查找筆點所在的窗口;如果有捕獲窗口,直接發(fā)給此窗口。如果是系統(tǒng)消息,則直接發(fā)給桌面。如充電、插入USB等消息。

絕大多數(shù)的圖形設備接口(GDI)函數(shù)都是基于DC的。DC是一種圖形設備上下文環(huán)境。它集成了當前繪制操作的所有信息,包括輸出的屏幕設備、字體、筆的屬性、光柵特點等[6]。在繪制操作之前必須得到設備上下文。而且在得到DC的期間,不能阻塞。否則容易造成死鎖。獲取DC的方式有3種:

(1) GetDC:獲取客戶區(qū)DC,限于在客戶區(qū)的繪制操作;

(2) GetWindowDC:獲取屏幕DC,可以在客戶區(qū)和標題區(qū)繪制操作;

(3) BeginPaint:獲取客戶區(qū)DC,限于且推薦在WM PAINT消息中調(diào)用。

MicroWindow不保存用戶區(qū)的繪制內(nèi)容,需要更新時,只會發(fā)送WM PAINT消息;所以比較標準的做法是將圖形繪制操作全部放進WM PAINT中去,采用BeginPaint獲取DC。

內(nèi)存設備上下文(MemoryDC)是一種虛擬的圖形設備上下文環(huán)境,也就是所謂的虛屏。有時為了避免屏幕閃爍感,把不連續(xù)的圖形內(nèi)容繪制到MemoryDC中,然后統(tǒng)一繪制到真正的屏幕設備上去;有助于提高畫面的連續(xù)性和完整性;下面是使用MemoryDC繪制位圖并疊加文字的例子:

case WM PAINT:

hdc=BeginPaint(hwnd,ps);

hMemDc=CreateCompatibleDC(hdc);

hBmp=LoadBmp(-1,IDB TESTBMP);

hOldBmp=SelectObject(hMenDc,hBmp);

TextOut(hMemDc,0,0,\"This is text on MemoryDC\",-1);

BitBlt(hdc,0,0,100,100,hMemDc,0,0,SRCCOPY);

SelectObject (hMemDc,hOldBmp);

DeleteObject(hBmp);

DeleteDC(hMemDc);

EndPaint(hwnd,ps);

Break;

系統(tǒng)數(shù)據(jù)資源采用VC的Resource標準數(shù)據(jù)格式,主要應用在3類:系統(tǒng)資源、公共資源、應用程序私有的資源。資源內(nèi)容包括位圖、ICON、String、對話框、BIN數(shù)據(jù)等。在VC中需要事先做好所需的資源,生成資源數(shù)據(jù).res和資源頭文件resource.h。在不同的平臺中,資源數(shù)據(jù)在物理介質(zhì)中的存放方式不同,但AP訪問資源的方式可以相同。系統(tǒng)平臺同時還支持應用程序顯式加載資源的方式。對話框提供了一種簡化Window編碼工作的機會。也就是提供了一種創(chuàng)建多個窗口的模板,用戶可以填寫對話框中的子窗口或控件的相關信息,或者從資源文件中裝載對話框,系統(tǒng)會提取其中的信息,為用戶一一創(chuàng)建相應的窗口。它分為兩類:模態(tài)對話框和非模態(tài)對話框。差別在于模態(tài)對話框有自己的消息循環(huán)。

應用程序的編譯和連接方式依賴于具體的硬件開發(fā)平臺。就移動終端而言,CPU若采用ARM7系列,編譯工具使用ADS,應用程序和操作系統(tǒng)集成在一起編譯。需要注意的是C文件采用thumb模式,而ASM文件采用的是ARM模式。而Linux平臺下應用程序的編譯連接是獨立完成的,最終生成exe文件,然后在打包成pak文件下載到硬件板中[7]。

2 結(jié) 語

由于移動終端的應用越來越廣泛,而嵌入式GUI系統(tǒng)是一項復雜的軟件工程,因此研究和設計的GUI占用資源少、可配置,特別適用于移動終端[8]。它給終端上層應用提供了一個清晰的圖形界面。同時,在將它用于多種終端平臺時還需要盡可能考慮其可擴展性、兼容性、可移植性等屬性。為后繼終端軟件應用開發(fā)建立了良好的開發(fā)基礎,性能優(yōu)越且易于移植,已經(jīng)成功應用于Linux和Windows CE等嵌入式操作系統(tǒng)的無線 移動多媒體終端項目中,效果理想。由于限于篇幅,不再贅述。

參考文獻

[1]BOLING Douglas.Microsoft Windows CE程序設計[ M] .北京:北京大學出版社,1999.

[2]蔡志明,盧傳富,李立夏.精通Qt4編程[M].北京:電子工業(yè)出版社,2008.

[3]汪兵,李存斌.EVC高級編程及其應用開發(fā)(Embedded Visual C++嵌入式編程)[ M] .北京:中國水利水電出版社,2005.

[4]王繼剛.面向智能手機的嵌入式實時操作系統(tǒng)[J].中興通訊技術,2005,16(4):97-99.

[5]彭濤.嵌入式操作系統(tǒng)移植技術研究[D].武漢:華中科技大學,2006.

[6]陳連坤.嵌入式系統(tǒng)的設計與開發(fā)[M].北京:清華大學出版社,2005.

[7]MARWEDEL P.Embedded system design[M].北京:科學出版社,2007.

[8]ALESSANDRO G D. Mircoprocessor design for embedded system[J].Journal of Systems Architectrue,1999,45(6):1139-1149.

主站蜘蛛池模板: 91小视频版在线观看www| 在线精品亚洲国产| 久久婷婷六月| 午夜老司机永久免费看片| 亚洲色欲色欲www网| 色婷婷电影网| 夜夜爽免费视频| 国产xxxxx免费视频| 国内视频精品| 99热这里只有精品国产99| 国产精品女熟高潮视频| 国产视频欧美| 国产男女免费完整版视频| 欧美www在线观看| 亚洲欧美一区在线| 极品尤物av美乳在线观看| 老司机午夜精品视频你懂的| 国产精品无码一区二区桃花视频| 玩两个丰满老熟女久久网| 最新国产精品第1页| 最新亚洲av女人的天堂| 色悠久久久| 伊人久综合| 亚洲 欧美 日韩综合一区| 女人毛片a级大学毛片免费| 91福利一区二区三区| 国产白浆视频| 99re经典视频在线| 欧美激情福利| 色综合激情网| 亚洲色欲色欲www网| 国产成人精品亚洲77美色| 91精品免费高清在线| 日本手机在线视频| 亚洲第一在线播放| 亚洲精品午夜天堂网页| 97久久超碰极品视觉盛宴| 午夜精品久久久久久久2023| 一级毛片视频免费| 国产成年女人特黄特色毛片免 | 免费精品一区二区h| 91精品aⅴ无码中文字字幕蜜桃| 在线无码九区| 99久视频| 国产噜噜在线视频观看| 手机在线看片不卡中文字幕| 欧美中文字幕在线二区| 国产成人综合久久精品尤物| 欧美α片免费观看| 69av在线| 色悠久久久| 99热6这里只有精品| 动漫精品啪啪一区二区三区| 欧美不卡视频在线| 在线一级毛片| 国产95在线 | 亚洲精品成人片在线观看| 久久熟女AV| 日本久久久久久免费网络| 亚洲伊人天堂| www成人国产在线观看网站| 黄色网站不卡无码| 91成人在线免费视频| 亚洲a级在线观看| 亚洲成人动漫在线观看| 人妻丰满熟妇啪啪| 亚洲国产精品一区二区第一页免| 99精品免费欧美成人小视频| 九九免费观看全部免费视频| 波多野结衣无码中文字幕在线观看一区二区| 色爽网免费视频| 精品无码人妻一区二区| 久久情精品国产品免费| 亚洲床戏一区| 2021国产精品自产拍在线| 97在线免费| 亚洲av无码片一区二区三区| julia中文字幕久久亚洲| 91麻豆久久久| 国产18在线| 国产一区免费在线观看| 国产av剧情无码精品色午夜|