在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux的嵌入式GUI研究與應(yīng)用

            基于Linux的嵌入式GUI研究與應(yīng)用

            作者: 時(shí)間:2012-03-24 來源:網(wǎng)絡(luò) 收藏

            3.2基本性能需求

            應(yīng)在基于操作系統(tǒng)的基礎(chǔ)上,為用戶提供豐富的圖形編程接口,使其能夠方便快速的編制界面友好的應(yīng)用程序。
            GUI模塊的性能指標(biāo)為單位時(shí)間實(shí)例化個(gè)數(shù),如下所列:
            基本圖形繪制速度,即點(diǎn)、線、框、塊、圓、弧、橢圓等圖形單元繪制速度。在顯示設(shè)備可見范圍內(nèi)任意位置產(chǎn)生隨機(jī)大小的基本圖形。量化指標(biāo)為單位時(shí)間內(nèi)繪制的個(gè)數(shù),并以較長(zhǎng)測(cè)試時(shí)間中取得的單位時(shí)間平均值為準(zhǔn)。
            窗口創(chuàng)建速度。在顯示設(shè)備可見范圍內(nèi)任意位置創(chuàng)建隨機(jī)大小的窗口。量化指標(biāo)為單位時(shí)間內(nèi)成功創(chuàng)建及繪制完畢的窗口個(gè)數(shù),并以較長(zhǎng)測(cè)試時(shí)間中取單位時(shí)間平均值為準(zhǔn)。
            控件創(chuàng)建速度。在顯示設(shè)備可見范圍內(nèi)任意位置創(chuàng)建隨機(jī)大小、包含隨機(jī)內(nèi)容的窗口。量化指標(biāo)為單位時(shí)間內(nèi)成功創(chuàng)建及繪制完畢的控件個(gè)數(shù),并以較長(zhǎng)測(cè)試時(shí)間中取單位時(shí)間平均值為準(zhǔn)。
            事件驅(qū)動(dòng)機(jī)制反應(yīng)速度。針對(duì)窗口及不同控件的典型事件及耗時(shí)事件,測(cè)試其完成時(shí)間。窗口及控件的大小、復(fù)雜程度隨機(jī)產(chǎn)生。量化指標(biāo)為單位時(shí)間內(nèi)成功處理完畢的事件數(shù),并以較長(zhǎng)測(cè)試時(shí)間中取單位時(shí)間平均值為準(zhǔn)。

            3.3移植

            在基于的嵌入式系統(tǒng)中,輸入設(shè)備可能只有觸摸屏和為數(shù)不多的按鍵,相對(duì)圖形引擎來說,輸入設(shè)備的處理沒有統(tǒng)一接口,在此情況下,提供一個(gè)抽象的輸入層,顯得尤為重要。
            這里我們參考MiniGUI,并結(jié)合實(shí)際工程機(jī)械控制系統(tǒng)來實(shí)現(xiàn)的移植工作。MiniGUI簡(jiǎn)單可分為三層,最頂層為API,即編程接口;中間層是 MiniGUI的核心層,其中包括了窗口系統(tǒng)必不可少的各個(gè)模塊,如消息事件處理模塊、圖形設(shè)備接口等;而最底層則是GAL和IAL。
            該實(shí)際工程機(jī)械控制系統(tǒng)擬采用觸摸屏作為主要的輸入設(shè)備,需要編寫自己的。首先定義一個(gè)結(jié)構(gòu)體用來從觸摸屏設(shè)備(/dev/ts)中接受數(shù)據(jù),結(jié)構(gòu)體定義如下:
            typedefstruct
            {
            unsignedshortb;//觸摸屏狀態(tài)(是否被點(diǎn)擊)
            unsignedshortx;//觸摸屏x坐標(biāo)
            unsignedshorty;//觸摸屏y坐標(biāo)

            unsignedshortpad;//32位填充域,無實(shí)際意義
            }POS;
            接下來定義輸入引擎的初始化函數(shù),該函數(shù)打開觸摸屏設(shè)備文件:/dev/ts,類似PC上的/dev/psaux設(shè)備。在成功打開設(shè)備文件后,該函數(shù)通過 mouse_getxy和mouse_getbutton等函數(shù)將獲得的狀態(tài)信息通過INPUT結(jié)構(gòu)體傳遞給GUI應(yīng)用程序。
            BOOlInitPADInput(INPUT*input,constchar*mdev,constchar*mtype)
            {
            ts=open(“/dev/ts”,O_RDONLY);
            if(ts0){
            fprintf(stderr,“PAD:Cannotopentouchscreen!n”);
            returnFALSE;
            }
            ……
            input->get_mouse_xy=mouse_getxy;
            input->get_mouse_button=mouse_getbutton;
            ……
            }
            staticvoidmouse_getxy(int*x,int*y)
            {
            *x=mousex;
            *y=mousey;
            }
            staticintmouse_getbutton(void)
            {
            returnpos.b;
            }
            最后通過wait_event函數(shù)調(diào)用select系統(tǒng)調(diào)用,當(dāng)select系統(tǒng)調(diào)用返回值大于0時(shí),該函數(shù)檢查是否有可讀的數(shù)據(jù)等待讀取,如果是,則從該文件描述符中讀取觸摸屏數(shù)據(jù)。
            限于篇幅原因,這里只列出了其中輸入引擎的移植代碼中較為關(guān)鍵的部分。代碼編寫完成后,還需要在“/src/ial/ial.c”中添加自定義的輸入引擎的入口項(xiàng)。
            staticINPUTinputs[]=
            {……
            #ifdef_PC104_IAL
            {"pc104",InitYKInput,TermYKInput},
            #endif
            ……
            }

            4.結(jié)束語

            本文具體介紹了作為嵌入式操作系統(tǒng)的實(shí)現(xiàn)方法,結(jié)合技術(shù),在PC104主板上利用創(chuàng)建了一個(gè)擁有用戶界面的微型操作系統(tǒng),并通過對(duì)抽象層接口及相關(guān)技術(shù)的分析,自定義輸入引擎,實(shí)現(xiàn)了設(shè)備的可定制,在實(shí)際工程機(jī)械項(xiàng)目中有較大的實(shí)用價(jià)值和市場(chǎng)前景。
            創(chuàng)新點(diǎn):利用Linux在嵌入式主板上搭建了一個(gè)微型操作系統(tǒng),在此基礎(chǔ)上實(shí)現(xiàn)了針對(duì)觸摸屏的輸入引擎的移植。

            參考文獻(xiàn):
            [1]GRUB主頁[EB].http://www.gnu.org/software/grub
            [2]Linux內(nèi)核主頁[EB].http://www.kernel.org
            [3]魏永明等.Linux/uClinux+MiniGUI:嵌入式系統(tǒng)開發(fā)原理、工具及過程[M].北京:飛漫軟件公司,2006
            [4]馬記平等.嵌入式Linux操作系統(tǒng)在PC104上的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,2-2:39-41

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁 1 2 下一頁

            關(guān)鍵詞: Linux 嵌入式GUI 輸入引擎

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉