国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種嵌入式GUI的實現(xiàn)方案

2017-05-09 03:22吳健學(xué)
電子設(shè)計工程 2017年1期
關(guān)鍵詞:圖形用戶界面控件嵌入式

陳 皓,吳健學(xué)

(1.光纖通信技術(shù)和網(wǎng)絡(luò)國家重點實驗室 湖北 武漢430074;2武漢郵電科學(xué)研究院 湖北 武漢430074)

一種嵌入式GUI的實現(xiàn)方案

陳 皓1,吳健學(xué)2

(1.光纖通信技術(shù)和網(wǎng)絡(luò)國家重點實驗室 湖北 武漢430074;2武漢郵電科學(xué)研究院 湖北 武漢430074)

針對市場上主流GUI系統(tǒng)可移植性不夠好,實時性差強人意的問題,對比了國內(nèi)外幾種常見的嵌入式GUI的實現(xiàn)方式,研究了嵌入式GUI系統(tǒng)的關(guān)鍵技術(shù),采用了將GUI系統(tǒng)模塊化分層的方法,降低與底層模塊的耦合性,通過交叉編譯的方式進(jìn)行開發(fā)調(diào)試,提出了一種高效的嵌入式GUI的實現(xiàn)方案。該圖形用戶界面系統(tǒng)具有高可靠性,結(jié)構(gòu)簡單,便于擴展維護(hù)等特點,能較好的滿足嵌入式應(yīng)用的需求。

嵌入式系統(tǒng);圖形用戶界面;圖片解析;消息處理

圖形用戶界面[1](Graphical User interface,GUI)是繼字符用戶界面(Character User Interface,CUI)之后提出的新一代用戶界面,它擁有直接操作、用戶控制、保存配置、界面定制[2]、信息反饋等特征??蛻舨槐赝ㄟ^輸入大量的命令,而是通過鍵盤、鼠標(biāo)、面板、東視鍵盤等外圍設(shè)備[3]來操作窗口、切換畫面、保存配置,因其簡單易用性而深受廣大用戶的喜愛,現(xiàn)已成為大多數(shù)操作系統(tǒng)用戶接口的首選。因此,給嵌入式系統(tǒng)設(shè)計一個高效可觀的圖形用戶界面,使用戶和產(chǎn)品之間方便的進(jìn)行溝通,已成為實際應(yīng)用的重點。

一個優(yōu)秀的操作系統(tǒng)[4]應(yīng)該提供良好的圖形用戶界面,相比于其他系統(tǒng)上的GUI,嵌入式系統(tǒng)下的圖形用戶界面對實時性、可靠性、資源利用率要求更高。文中根據(jù)嵌入式系統(tǒng)的特點設(shè)計實現(xiàn)一種嵌入式GUI軟件結(jié)構(gòu),此系統(tǒng)高效靈活、操作便捷、可裁剪并且易于維護(hù)。

1 嵌入式GUI的設(shè)計準(zhǔn)則和關(guān)鍵技術(shù)

GUI是計算機操作系統(tǒng)的重要組成部分。一個完整的GUI系統(tǒng)應(yīng)該包括菜單、視窗、文件界面、設(shè)備狀態(tài)顯示、滾動軸等元素。

嵌入式圖形用戶界面為系統(tǒng)本身提供了應(yīng)用于特殊場合的人機交互接口[5]。而實際應(yīng)用當(dāng)中嵌入式系統(tǒng)硬件資源常常是有限的,因此嵌入式系統(tǒng)對其GUI本身的一般有以下基本要求:

1)占用內(nèi)存少以及響應(yīng)時間短,要求較高的實時性;

2)圖形算法[6]簡潔高效,占用較少的資源;

3)結(jié)構(gòu)模塊化便于移植;

4)可操作性強能夠滿足人們的日常需要。

隨著嵌入式系統(tǒng)的高速發(fā)展,國內(nèi)外的開發(fā)商已推出了多種用于嵌入式環(huán)境的圖形用戶界面,其實現(xiàn)方法主要有以下3種:

1)市場上已成熟的GUI開發(fā)商開發(fā)的嵌入式GUI技術(shù)

如 Qt/Embedded[7]、MicroWindows、MiniGUI[8]等。這些嵌入式圖形用戶界面的技術(shù)由專門的廠商開發(fā),能夠縮短研發(fā)的周期。

2)使用特定嵌入式操作系統(tǒng)的圖形軟件包

如uC/GUI、GRAFIX等軟件包。這種方法讓嵌入式產(chǎn)品使用的操作系統(tǒng)和原有的操作系統(tǒng)配合緊密,缺點是軟件包昂貴,并且功能相對簡單,不具備操作系統(tǒng)之間的移植性。

3)按照定制需求開發(fā)具有相應(yīng)功能的GUI系統(tǒng)

根據(jù)特定設(shè)備的圖形輸出接口,開發(fā)與之對應(yīng)的功能接口,可以高效、簡捷的實現(xiàn)要開發(fā)的功能。

在以上實現(xiàn)方法中,不同方法開發(fā)出的圖形用戶界面具有不同的性能。在實際應(yīng)用中,應(yīng)該根據(jù)產(chǎn)品的需求,選用適合的圖形用戶界面開發(fā)工具。針對所開發(fā)專用的嵌入式硬件系統(tǒng),文中選擇方法3)來實現(xiàn)一個高效的、便于客戶定制的GUI軟件結(jié)構(gòu)方案。

2 嵌入式GUI的總體設(shè)計

2.1 嵌入式GUI的模塊化分層

結(jié)合嵌入式系統(tǒng)的特性,GUI模塊位于操作系統(tǒng)之上,應(yīng)用程序之下,為用戶提供美觀大方的人機交互接口,如圖1所示嵌入式GUI系統(tǒng)總體結(jié)構(gòu)圖。

圖1 嵌入式GUI系統(tǒng)總體結(jié)構(gòu)圖

其中,輸入抽象層(Input Abstract Layer,IAL)用于收集底層輸入設(shè)備如鍵盤、面板以及鼠標(biāo)等的硬件消息,包括鍵盤輸入、觸摸點擊等,傳送給邏輯處理層,再由邏輯處理層根據(jù)相應(yīng)的消息顯示相應(yīng)的處理。多用于用戶登錄輸入ID和密碼、設(shè)置用戶信息、查詢?nèi)罩镜葢?yīng)用場景。

圖形抽象層(Graphics Abstract Layer,GAL)提供一些基本的繪圖操作以及對圖形屬性的讀取和修改。其作用主要是完成畫點、畫線、矩形以及填充區(qū)域等基本的繪圖功能,包括對視頻抽象層(Video Abstract Layer,VAL)和輸入抽象層區(qū)域的劃分。GAL層提供一組抽象接口,包括GDI_Pixel,GDI_Line,GDI_FillRect等,這些接口基于Linux控制臺下的FrameBuffer技術(shù)。Linux2.2.xx及以后的內(nèi)核版本當(dāng)中都帶有FrameBuffer[9],它是運行在Linux環(huán)境下的一個優(yōu)秀的圖形接口。QT、GTK等以 Linux作為操作系統(tǒng)的圖形界面程序都是基于FrameBuffer來實現(xiàn)的,F(xiàn)rameBuffer技術(shù)已經(jīng)較為成熟,這里暫不多說。對于GAL提供的抽象接口,設(shè)計者可以通過傳入顯示坐標(biāo)、顯示屬性(顏色,線條寬度等)以及是否與別的區(qū)域嵌套,來實現(xiàn)方便用戶使用的界面。

GAL層對圖形文件的處理是基于 dec_jpg,dec_logo等抽象接口,這些接口使用 open,lseek,read,close這些系統(tǒng)調(diào)用函數(shù)讀取圖形文件并對其進(jìn)行解碼,然后在內(nèi)存上動態(tài)申請相應(yīng)大小的Buf,保存圖片解析后的內(nèi)容。

視頻抽象層(VAL)常常應(yīng)用于對音視頻流的操作。視頻應(yīng)用是嵌入式系統(tǒng)的一個重要發(fā)展方向,近些年多媒體技術(shù)發(fā)展迅速,人們對音頻、視頻信息的處理要求越來越高。由于各個嵌入式系統(tǒng)的視頻編解碼設(shè)備和顯示設(shè)備常常有很大差異,在 GUI系統(tǒng)設(shè)計過程中,基于不同的底層設(shè)備,應(yīng)該封裝相對應(yīng)的視頻流操作抽象接口,以方便在視頻應(yīng)用方面的移植。

2.2 嵌入式GUI的窗口顯示界面

窗口的顯示是GUI系統(tǒng)的核心,最直觀的提供給用戶操作接口,主要包括以下部分:

主窗口:主窗口提供子窗口的接口,包括功能劃分、菜單、皮膚切換的功能實現(xiàn),而子窗口是接受和處理事件的主體,每個功能對應(yīng)一個或者一組子窗口。對窗口的管理包括窗口的繪制、窗口的疊加以及窗口間消息處理[10]。

控件Button:Button分布于子窗口頁面之上,能夠接收鍵盤、鼠標(biāo)和面板等外部輸入,也可以在自己的區(qū)域內(nèi)通過軟鍵盤進(jìn)行輸出。常用的控件有按鈕、文本框、輸入框等,其中按鈕又可細(xì)分為用于處理自定義的控件CButton,子窗口在主窗口上的顯示、菜單、工具欄以及子窗口間的跳轉(zhuǎn)的實現(xiàn)都是用的這種控件;文本框包含CRowButtonNumEdit和CRowButtonTextEdit控件,其中CRowButtonNumEdit用于數(shù)字的顯示,例如:時間、密碼和設(shè)備ID等等,CRowButtonTextEdit主要用于顯示漢字及其他多國語言。所以說,控件構(gòu)成了整個GUI系統(tǒng)的功能載體。

消息處理:如果說主窗口、子窗口以及控件構(gòu)成了GUI系統(tǒng)的可視框架,那么外部設(shè)備、異常事件以及控件與控件之間消息的處理就是GUI的功能實現(xiàn)。這里通過定義Cbasewin作為窗口基類,Cbasewin類中包含全局鏈表m_list用于鏈接所有窗口以及窗口上的控件、窗口名稱m_wTitle用于區(qū)分不同的窗口,還有最為重要的消息處理函數(shù) virtual BOOL ProcessMessage(Msg*msg),其中Msg結(jié)構(gòu)體的定義如下:

這樣以鏈表的方式管理窗口間的切換,能夠在占有較少資源的情況下實現(xiàn)窗口的獨占性、控件消息處理的不沖突。對消息本身的管理需要一個消息線程來實現(xiàn),并在線程接口中控制消息的最大數(shù)目來防止操作不當(dāng)導(dǎo)致消息的溢出。

3 嵌入式GUI開發(fā)環(huán)境

通常來說嵌入式開發(fā)板的硬件資源是有限的,不能直接在單板上進(jìn)行開發(fā),這就需要軟件工程師通過交叉編譯的方式進(jìn)行研發(fā)調(diào)試。通常采用“開發(fā)設(shè)備+目標(biāo)設(shè)備”的形式,開發(fā)設(shè)備和目標(biāo)設(shè)備一般采用串口的連接方式,這種方式不必考慮網(wǎng)絡(luò)是否互通,較為方便,當(dāng)然也可以通過網(wǎng)口互聯(lián),這種情況就要求開發(fā)設(shè)備和目標(biāo)設(shè)備網(wǎng)絡(luò)上是同一網(wǎng)段并且是互相可達(dá)的。

嵌入式GUI開發(fā)過程中,目標(biāo)設(shè)備是嵌入式的架構(gòu)使用的是ARM處理器[11],而開發(fā)設(shè)備的處理器一般是X86結(jié)構(gòu)的[12],處理器不同的話,在開發(fā)設(shè)備上就需要建立適合目標(biāo)設(shè)備的交叉編譯環(huán)境。程序在開發(fā)設(shè)備上經(jīng)過“編譯-連接-執(zhí)行”得到可以在目標(biāo)設(shè)備上運行的可執(zhí)行文件。通過串口或者網(wǎng)口將得到的執(zhí)行文件和所需要的庫文件拷貝到目標(biāo)設(shè)備上運行就可以啟動開發(fā)板。同樣在開發(fā)設(shè)備上能夠通過串口和網(wǎng)口查看目標(biāo)設(shè)備上的操作信息、Bootloader[13]啟動信息和源程序里為了調(diào)試所加的打印信息。嵌入式GUI開發(fā)平臺結(jié)構(gòu)圖如圖2所示。

圖2 嵌入式GUI開發(fā)平臺結(jié)構(gòu)圖

4 實際應(yīng)用

以上分析的GUI系統(tǒng)已經(jīng)用于某型視頻監(jiān)控[14]設(shè)備的使用并量產(chǎn)銷售。具體運行時,首先在Linux的開發(fā)環(huán)境下使用Makefile編譯GUI模塊的代碼程序,并鏈接所使用的底層庫文件,生成名為GUI的執(zhí)行文件;將生成的GUI文件以及所用到的庫文件通過命令拷貝到基于ARM芯片的設(shè)備當(dāng)中,運行即可通過VGA[15]顯示出簡潔高效的圖形用戶界面。如圖3所示,是在His3531芯片的硬件環(huán)境下實現(xiàn)的圖形用戶界面。

圖3 某視頻監(jiān)控系統(tǒng)的GUI界面

5 結(jié)束語

文中提出了一種輕型高效的嵌入式圖形用戶界面的實現(xiàn)方案,在完成了上述各 GUI系統(tǒng)模塊的基礎(chǔ)上,構(gòu)建了一個完整的嵌入式 GUI并基于該系統(tǒng),開發(fā)了一套完整視頻監(jiān)控系統(tǒng),就測試結(jié)果以及客戶的反饋來說已經(jīng)驗證了該GUI系統(tǒng)的穩(wěn)定性,可以很好地滿足人們的日常交互。該GUI系統(tǒng)結(jié)構(gòu)簡單,與同類產(chǎn)品相比實時性好、代碼量少、可靠性高,具有良好的可移植性與可裁減性。

[1]黃小旭.嵌入式系統(tǒng)圖形用戶界面開發(fā)技術(shù)研究[D].南京:南京郵電大學(xué),2014.

[2]冉琛雯,張珣.智能家居系統(tǒng)界面定制技術(shù)的研究[J].物聯(lián)網(wǎng)技術(shù),2014,10(3):1-3.

[3]程科.嵌入式Linux設(shè)備驅(qū)動程序的設(shè)計與研究[D].成都:電子科技大學(xué),2007.

[4]任慰.以實時操作系統(tǒng)為中心的嵌入式系統(tǒng)平臺化設(shè)計研究[D].武漢:華中科技大學(xué),2013.

[5]劉鐵良.增強現(xiàn)實系統(tǒng)中人機交互技術(shù)研究[D].大慶:東北石油大學(xué),2014.

[6]肖飛.基于圖像特征提取和特征點描述的匹配算法研究及其應(yīng)用[D].成都:電子科技大學(xué),2013.

[7]范朋.基于Qt的嵌入式Linux系統(tǒng)GUI的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2011.

[8]張磊,王亞剛.基于MiniGUI的嵌入式圖形界面的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2015,25(2):3-5.

[9]聶和平.基于ARM9的嵌入式Linux系統(tǒng)移植與驅(qū)動開發(fā)[D].南京:南京郵電大學(xué),2013.

[10]舒紅霞,王繼紅.分布式實時操作系統(tǒng)消息機制的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2009,29(9):2-4.

[11]張歡慶.基于ARM處理器的嵌入式Linux系統(tǒng)關(guān)鍵技術(shù)研究[D].山東:山東師范大學(xué),2013.

[12]劉帥.X86、ARM、MIPS微處理器架構(gòu)淺析[J].智富時代,2015,18(9):3-5.

[13]王景存,高峰.基于ARM9的Bootloader的分析及設(shè)計[J].現(xiàn)代電子技術(shù),2010,20(3):1-3.

[14]方衛(wèi)民.基于ARM的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2008.

[15]朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統(tǒng)[J].計算機應(yīng)用,2011,31(5):3-5.

Implement methord of embeded GUI system

CHEN Hao1,WU Jian-xue2
(1.State Key Laboratory of Optical Communication Technologies and Networks,Wuhan 430074,China;2.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430074,China)

As the portability of popular GUI system in the market is not good enough and the real-time performance is poor,in this thesis,based on comparing with several familiar complement methods of embedded GUI system and investigating some pivotal technologies of the GUI,proposed a efficient scheme and different components solutions of the GUI system.This system adopts the approach of modular design,thus to reduce the coupling factor with the underlying layer.The development and debugging is in an environment of cross-compilation.This GUI system owns the advantages as high reliability,light-weight and is convenient for maintaining and function expansion,then it is able to satisfy with emdedded application requirement.

embedded system;graphical user interface;image resolution;message handling

TN919.8

:A

:1674-6236(2017)01-0064-03

2015-11-23稿件編號:201511210

陳 皓(1989—),男,河南商丘人,碩士。研究方向:通信與信息系統(tǒng)、通信軟件。

猜你喜歡
圖形用戶界面控件嵌入式
圖形用戶界面外觀設(shè)計專利保護(hù)問題探析——以“奇虎訴江民案”為例
關(guān)于.net控件數(shù)組的探討
搭建基于Qt的嵌入式開發(fā)平臺
淺談圖形用戶界面的保護(hù)
圖形用戶界面法律保護(hù)問題與對策
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
ASP.NET服務(wù)器端驗證控件的使用
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
基于嵌入式MINIGUI控件子類化技術(shù)的深入研究與應(yīng)用