两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于嵌入式系統(tǒng)的圖形用戶(hù)中間件的制作方法

文檔序號(hào):6352965閱讀:480來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):基于嵌入式系統(tǒng)的圖形用戶(hù)中間件的制作方法
技術(shù)領(lǐng)域
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一套嵌入式圖形用戶(hù)中間件,此中間件使用腳本語(yǔ)言L(fǎng)ua實(shí)現(xiàn)圖形用戶(hù)界而,可以跨平臺(tái)使用,并且提供一些基礎(chǔ)的圖形控件,如按鈕、列表框、進(jìn)度條等。>
背景技術(shù)
目前國(guó)內(nèi)外已推出了多種用于嵌入式環(huán)境的通用圖形用戶(hù)界面系統(tǒng),現(xiàn)在比較成熟的主要有Mini⑶I、QT/Embedded等。國(guó)內(nèi)的主流嵌入式圖形設(shè)計(jì)庫(kù)首推mini⑶I。它模仿了 Windows下的消息機(jī)制,采用VB、VC中的控件設(shè)計(jì)模式,具有較為完善的圖形繪制功能。但在實(shí)際工程應(yīng)用中,不能直接使用其接口函數(shù),必須以miniGUI為主控平臺(tái),否則會(huì)產(chǎn)生致命的漏洞。DeltaGUI是構(gòu)造嵌入式圖形用戶(hù)界面的應(yīng)用開(kāi)發(fā)包,它由北京科銀京城技術(shù)有限公司自主開(kāi)發(fā),專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統(tǒng)提供輕量級(jí)的圖形用戶(hù)界面支持。QT/Enbedded由于移植了大量的原來(lái)基于QT的X Window、程序,提供了非常完整的嵌入式⑶I解決方案,再加上Opera瀏覽器可以說(shuō)是一個(gè)成熟的商業(yè)軟件。與本發(fā)明相近的技術(shù)方案很少,目前較為流行的圖形用戶(hù)中間件使用XML作為配置文件配置界面的圖形中間件,此類(lèi)中間件,只是實(shí)現(xiàn)靜態(tài)資源文件的配置,無(wú)法使用腳本語(yǔ)言實(shí)現(xiàn)整個(gè)用戶(hù)界面的動(dòng)態(tài)操作。>

發(fā)明內(nèi)容
1、目前流行的界面開(kāi)發(fā)中間件都是基于PC機(jī)上的中間件精簡(jiǎn)而來(lái)的。WinCE下較為流行的界面開(kāi)發(fā)中間件有MFC和.Net Compact Framework.,這些流行的開(kāi)發(fā)庫(kù),都有著一定的缺點(diǎn),例如MFC很難上手,且用戶(hù)界面開(kāi)發(fā)與UI設(shè)計(jì)并不能完全脫離,整個(gè)架構(gòu)過(guò)于冗雜,靈活性小,很難開(kāi)發(fā)出華麗的界面,并且MFC是無(wú)法跨平臺(tái)使用的;若使用.NetCompactFramework雖然開(kāi)發(fā)容易、效率高,但是.Net Compact Framework是收費(fèi)類(lèi)庫(kù),會(huì)造成產(chǎn)品成本增加。2、其他用戶(hù)圖形中間件例如QT,miniGUI等中間件對(duì)開(kāi)發(fā)人員要求高,程序員無(wú)法從界面布局中完全解脫出來(lái)。針對(duì)現(xiàn)有技術(shù)的主要不足本中間件提出使用C++實(shí)現(xiàn)整個(gè)中間件,并且添加C++與Lua交互的功能,使Lua語(yǔ)言可以調(diào)用C++接口,從而使得可以使用Lua語(yǔ)言實(shí)現(xiàn)整個(gè)用戶(hù)界面。由于腳本語(yǔ)言對(duì)開(kāi)發(fā)者編程要求低,可以使得開(kāi)發(fā)效率提高。并且提供按鈕、列表框、進(jìn)度條、文字框、圖片框等基礎(chǔ)控件,使得開(kāi)發(fā)更為方便和高效。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是整個(gè)中間件完全從應(yīng)用程序中剝離出來(lái),對(duì)外提供一些接口,可作為用戶(hù)圖形庫(kù)單獨(dú)使用。他有四大模塊構(gòu)成消息管理模塊、窗口管理模塊、資源管理模塊、繪圖模塊組成、Lua交互模塊。整個(gè)中間件是一個(gè)以消息為導(dǎo)向的系統(tǒng),系統(tǒng)在消息的控制下進(jìn)行窗口管理,通過(guò)調(diào)用資源管理模塊添加資源文件,通過(guò)調(diào)用繪圖模塊進(jìn)行窗口繪制。系統(tǒng)通過(guò)Lua語(yǔ)言進(jìn)行界面實(shí)現(xiàn),整個(gè)資源打包為一個(gè)bin文件,窗口管理模塊通過(guò)Lua接口來(lái)添加控件、資源、以及管理窗口布局。繪圖模塊使用Windows⑶I和DirectX技術(shù)以及Linux的FrameBuffer進(jìn)行2D/3D圖像繪制,從而在使用不同平臺(tái)時(shí),通過(guò)定義不同的宏而調(diào)用Windows或者Linux的繪圖接口,從而實(shí)現(xiàn)跨平臺(tái)的性能。在消息管理模塊,對(duì)底層消息進(jìn)行了封轉(zhuǎn),從而避免了操作系統(tǒng)的相關(guān)性。Lua交互模塊,用于定義Lua語(yǔ)言調(diào)用的接口和調(diào)用的相應(yīng)的C++接口,從而使得整個(gè)中間件可以使用Lua語(yǔ)言進(jìn)行界面實(shí)現(xiàn)。窗口管理模塊與資源管理模塊以標(biāo)準(zhǔn)C++采用面向?qū)ο蟮姆绞綄?shí)現(xiàn),這兩個(gè)模塊不依賴(lài)于操作系統(tǒng),可以再windows平臺(tái)或者Linux平臺(tái)上編譯運(yùn)行,因此整個(gè)中間件可以很好的跨平臺(tái)使用。本發(fā)明的有益效果是,本發(fā)明可以提高界面開(kāi)發(fā)效率,并且使得開(kāi)發(fā)人員不需要具備很高的開(kāi)發(fā)技能即可方便的使用。>


下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。圖1是本圖形中間件的模塊圖。>
具體實(shí)施例方式整個(gè)系統(tǒng)使用standard C++和Windows api實(shí)現(xiàn)。主要設(shè)計(jì)方法如下由于整個(gè)用戶(hù)圖形中間件采用standard c++加Windows api的編程方式實(shí)現(xiàn),因此,這個(gè)圖形中間件在PC機(jī)上編程并調(diào)試成為可能,可以完全獨(dú)立于WinCE進(jìn)行開(kāi)發(fā),這樣減少了調(diào)試的成本,并且使硬件的開(kāi)發(fā)和軟件的開(kāi)發(fā)同時(shí)進(jìn)行,大大提高了開(kāi)發(fā)的速度。使用Windows WinMain作為基礎(chǔ),生成一個(gè)并且是唯——個(gè)窗口,這個(gè)窗口不帶有任何基礎(chǔ)控件,在此窗口的基礎(chǔ)上進(jìn)行界面的顯示和切換。所有窗口都繼承自CWnd,Cffnd有一個(gè)Matic的CWnd容器和一個(gè)裝載控件的n^CUserControl容器,所有控件都繼承于CUserControl,且CUserControl是一個(gè)嵌套的結(jié)構(gòu),每個(gè)CUserControl都可以有若干的CUserControl構(gòu)成,通過(guò)一fm_CUserControl的容器來(lái)存儲(chǔ)這些CUserControl。每個(gè)控件有自己的顯示層次,用來(lái)表示繪制時(shí)的先后順序。CUserControl通過(guò)讀取具有特定格式的XML配置文件來(lái)得到各個(gè)控件的類(lèi)型和顯示信息,⑶serControl使用C++面向?qū)ο缶幊痰亩鄳B(tài)特性,實(shí)現(xiàn)nuCUserControl容器中各個(gè)控件的生成和添加。各個(gè)控件通過(guò)調(diào)用各自的Draw函數(shù)將自身繪制于圖形緩存區(qū)。由于在程序運(yùn)行周期只存在一個(gè)窗口,也就是只有一個(gè)窗口句柄存在,因此在消息機(jī)制不同于其他中間件的設(shè)計(jì)方式。消息被分為三大類(lèi)系統(tǒng)全局消息、系統(tǒng)按鍵消息、定時(shí)器消息。系統(tǒng)全局消息由IGlcAalMessage接口來(lái)實(shí)現(xiàn),他獨(dú)立于CWnd存在,只有窗口需要處理系統(tǒng)全局消息時(shí)才會(huì)繼承并實(shí)現(xiàn)它。系統(tǒng)按鍵消息主要是用戶(hù)點(diǎn)擊屏幕或者點(diǎn)擊外按鍵板觸發(fā)的消息,這類(lèi)消息只會(huì)發(fā)送到當(dāng)前窗口進(jìn)行處理。當(dāng)系統(tǒng)發(fā)出點(diǎn)擊操作消息后,此消息在Wirfroc函數(shù)被捕獲,并且調(diào)用CWnd的OnWndMsg進(jìn)行處理,此函數(shù)在獲得當(dāng)前窗口句柄后將消息分發(fā)給當(dāng)前窗口的處理函數(shù)OnMsg進(jìn)行處理,OnMsg在經(jīng)過(guò)一系列判斷,判斷是否點(diǎn)擊了某一按鈕,若是這樣則將此按鈕id作為參數(shù),調(diào)用該窗口的OnBtnID函數(shù),此函數(shù)由用戶(hù)用來(lái)定義點(diǎn)擊后的操作。定時(shí)器消息主要通過(guò)封裝Windows api的ktTimer和KillTimer實(shí)現(xiàn)。定時(shí)器消息主要有兩種一種是全局定時(shí)器消息;一種是⑶serControl定時(shí)器消息。前者不管窗口是否是當(dāng)前顯示窗口,消息都會(huì)被分發(fā),后者當(dāng)當(dāng)前窗口退出后,其⑶serControl的定時(shí)
4器消息將不再被處理。在設(shè)置CUserControl定時(shí)器的同時(shí)保存一個(gè)CUserControl的指針到TimerGrps,若指針為空則表示其為當(dāng)前窗口定時(shí)器,否則此定時(shí)器為該OTserControl定時(shí)器,當(dāng)消息被觸發(fā)后,先調(diào)用當(dāng)前窗口處理函數(shù)看是否有對(duì)應(yīng)的id并處理,若未處理則調(diào)用基類(lèi)的處理函數(shù)進(jìn)行處理,否則查詢(xún)當(dāng)前窗口的TimerGrps容器中的id,找到此id調(diào)用相應(yīng)的CUserControl定時(shí)器處理函數(shù)。在界面顯示方面,此中間件使用Windows⑶I和DiretX技術(shù)將界面直接繪于屏幕的Primary層或者Overlay層。在于Lua交互方面,使用SWIG1. 3工具將C++的類(lèi)和接口進(jìn)行封裝,使這些接口可以在Lua語(yǔ)言中被調(diào)用。這樣就可以用Lua語(yǔ)言進(jìn)行界面實(shí)現(xiàn)了。
權(quán)利要求
1.中間件的控件生成方式。2中間件使用Lua腳本語(yǔ)言進(jìn)行界面生成的實(shí)現(xiàn)方式。 3中間件的單窗ロ管理模式。
全文摘要
一套基于WinCE系統(tǒng)的圖形用戶(hù)中間件,此中間件使用腳本語(yǔ)言L(fǎng)ua實(shí)現(xiàn)圖形用戶(hù)界面,可以跨平臺(tái)使用,并且提供一些基礎(chǔ)的圖形控件,如按鈕、列表框、進(jìn)度條等。本發(fā)明可以提高界面開(kāi)發(fā)效率,并且使得開(kāi)發(fā)人員不需要具備很高的開(kāi)發(fā)技能即可方便的使用。
文檔編號(hào)G06F9/45GK102591695SQ201110004309
公開(kāi)日2012年7月18日 申請(qǐng)日期2011年1月11日 優(yōu)先權(quán)日2011年1月11日
發(fā)明者吳源 申請(qǐng)人:吳源
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
波密县| 鄯善县| 永平县| 邻水| 阜宁县| 犍为县| 嘉祥县| 新化县| 清河县| 靖安县| 长汀县| 林口县| 梨树县| 南投县| 安乡县| 玉屏| 贡嘎县| 镇远县| 湛江市| 当阳市| 水富县| 德惠市| 巧家县| 新龙县| 读书| 运城市| 嘉祥县| 荣昌县| 南宫市| 五大连池市| 霍州市| 肥西县| 宜昌市| 鸡东县| 海盐县| 宿州市| 舒城县| 桓仁| 新晃| 聂荣县| 岳阳市|