下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于嵌入式實時操作系統(tǒng)$&的#)+圖形界面開發(fā)方法基于!"#*蔡華卞新高史中權丁坤河海大學機電(-./0--*,-BNKDK4%@%(4GJ6)7%$O:4484*4%4DJ7(KD()’6’748"$%8*J(@%D%6#)*W)*O’’4,4M(HD6’$G%DK(:()7%G:’)7N%$OMND)(’:"K$O*7N4G):()(KJ44)7($87’O:ND’*+,:GM%7D)*$*)MWIM%K%DHMW7"7KJ6W7N%’K$’$GK7*43(:4’O:ND’O%’%D)*46D%*%M(D)*(*%D()01234-%4@%4DJ7(KD()’6’7"%’WDND%G’W*+摘簡要介紹了嵌入式實時操作系統(tǒng)!%&的媒體庫#()*+,討論了*+圖形界面開發(fā)方法,通過實例詳細闡述了#+的配置和加載、二維圖形的本顯和鍵盤等輸入設備的響應以及區(qū)域和窗口的繪制等功能的實現(xiàn)方法。嵌入式實時操作系統(tǒng),$&圖形界面#()*+!%&’操作系統(tǒng)是 司(*(49<年設計開發(fā)的一種嵌入式實時操作系統(tǒng)?8@4**4*2BC5)。(*即#(+*D(%!#&’庫的一部分,它支持多程序運行于嵌入式操作系 以及為用戶提供一個開發(fā)標準用戶設備驅(qū)動程序的框架。并且,#(+,提供了一系列工具用來處理輸入設備和過程事件。以上這些功能絕大部分都由#*+,提供的EF來完成。!#$%的結*+包括兩個組件:軟件開發(fā)包5$G7HD%4I38)7L(75IL和驅(qū)動程序開發(fā)包I%(34%I34J8)7IILI組件用于為各種平臺開發(fā)與硬件無關的應用。它在圖形、輸出處理、多、字體和內(nèi)存管理方面提供了完整的F9。IIL用于開發(fā)驅(qū)動程序。它提供了一整套可用于通用硬件配置、軟件框碼快速創(chuàng)建新驅(qū)動程序的E9。#*+,的層次結構見圖.。.(*+的層次結構(#&’的圖形界面開發(fā)方法
利用#*+,進行圖形界面開發(fā),首先要對#*+,進行相應的配置和編譯,然后將#*+,加載到!&’內(nèi)核。當#+,配置和添加完成后,就可以在!&’的開發(fā)環(huán)境)*$中進行編程,從而實現(xiàn)圖形界面的開發(fā)。利用#*+可以實現(xiàn)二維圖形的繪制、文本的顯示、鼠標和鍵盤等輸入設備的響應、區(qū)域和窗的繪制等等功能。-;.配置和編(,在第一次使用#*+,前,必須要配置#+,#+,配置有兩種方法:一是通過B%)*$下的#*+,配置工具配置#*+,,二是通過命令行方式配置#*+,。一般都是使用配置工具來完成#*+,的配置,如果使用配置工具不能滿足配置要求,也可以通過命令行方式配置#*+,。在通過配置工具配置#*,時,配置選項包括處理器的選擇,圖形設備配根據(jù)自己的要求,選擇合適的配置。選好配置后,直接按配置工具上的編譯按鈕即可進行編譯。-;-(+配置和編譯好#+,后,可以使用B$)*$工程管理工具把#+,加載到"#$%&’映像里,加載時,可以根據(jù)自己的需要進行相應的選擇。一般對于圖形界面的開發(fā)要將-IM%K8KJ7-IJ(@%D%6添加$&’-;/圖形初始#+,配置和加載完成后,就可以用#+,進行編程。編程時,必須首先調(diào)用函數(shù)OMJ9)((J(P4<完成初始化。接著要進行顏色的配置#()*+,的圖形界面是以像素為單位的,一般采用配色表來選擇顏色,先在配色表上配置好每一種顏色的2、QR值,并用其在配色表中的索引值來代表這種顏色。當配置好顏色后還要創(chuàng)建圖形上下文(QS),圖形上下文包含了繪圖的特征信息分的繪圖操作只有通過指定圖形上下文,了繪圖特征才能進行。#)+,使用函數(shù)OMJQ%7<來創(chuàng)建圖形上下文,創(chuàng)建QS后就可以進行畫圖的基本設置,如圖形的前景色和背景色、線的類型和形的填充模式、默認的位圖、光柵覆蓋模式當前使用的字體等等。-;T二維圖形的繪制及文本的顯示當完成初始化后,就可以調(diào)用#*+,E9函數(shù)來完成二維圖形的繪制。#*+,簡單圖形的功能,也就是提供了畫這些二維圖形的函數(shù),例如繪制直線的函數(shù)OM41<、繪制矩形的函數(shù)OM2:7MJ41<等等。#(+,可以使用多線程或多任務但資源是一定的為防止 工業(yè)控制計算!""#$%卷第%線程之間產(chǎn)生資源,需要使用互斥信號量鎖定資源。+中,一般在使用一組畫圖函數(shù)前,用-/ -7過互斥信號量鎖定圖形上下文、圖形設備及緩沖,并且隱藏光標。在畫圖操作完成后,再用-/123)6-7釋放被鎖定的資源以被其他的畫圖函數(shù)所使用。+文本渲染和字體管理9:;提供了方便的文字顯示方法。在文本顯示之前由函數(shù)-;.’<=67完成字體驅(qū)動和字體引擎的初始化。然后使用函數(shù)->55)67獲得字體驅(qū)動的;>-(>55;B67設置字體驅(qū)動程序。由于許多嵌入式系統(tǒng)只提供少數(shù)的有限字體選擇,因此一般還需要應用函數(shù)-(1)45-67找到系統(tǒng)提供的與所要顯示字體屬性最相匹配的字體。當一個字體找到后,由函數(shù)-(C5=0167生成該字體。當要使用一個已經(jīng)創(chuàng)建了的字體時,必須首先使用函數(shù)-.14=67將該字體的;>選入圖形上下文C以使用顯示函數(shù)->5G676->50G&用于雙字節(jié)7用當前圖形上下文中的字體在顯示器上顯示文本。!區(qū)域和窗口的繪+的區(qū)域管理9:;可以在界面上定義一個區(qū)域,這個區(qū)域是由一組矩形區(qū)圍繞而成,可以在這個區(qū)域里畫二維圖形。如果是更為復雜的應用程序,或者要在多任務或多線程之間共享顯示,則要用到窗口9:;。窗口9:;可以創(chuàng)建、顯示和操作多個窗口,并且可以處理這些窗口中的事件。窗口可以移動,改變大小,,或者放在其他窗口內(nèi)部。這樣,多個任務就可以在一個屏幕上的不同窗口內(nèi)同時顯示圖形了。繪制區(qū)域一般是先通過函數(shù)-I-C5=0=67來創(chuàng)建區(qū)域,然后就可以在創(chuàng)建的區(qū)域里畫二維圖形,同時可以通過函數(shù)-I-I=;()=67包含一個矩形到區(qū)域里和-I-I21F)=67從區(qū)域里去除一個矩形。還可以通過區(qū)域的相關函數(shù)進行區(qū)域的移動,,清除等等操作。而繪制窗口則要創(chuàng)建事件路由,并要創(chuàng)建窗口應用上下文。窗口除了具有區(qū)域的功能外,還可以響應外界的鼠標、鍵盤等輸入設備的事件。具體的程序?qū)崿F(xiàn)方法可以參見下面的實例。!擴展功能的實現(xiàn)&’)*+本身不支持中文顯示,因此要想實現(xiàn)中文顯示以利用&’)*+對雙字節(jié)編碼的支持實現(xiàn)對漢字的點陣、點陣獲取、點陣顯示的全過程,并利用&’)*+的雙字節(jié)顯示函數(shù)實現(xiàn)漢字碼到漢字的顯示。這種方法需要自己編寫漢字字庫,然后將漢字字庫添加進&’)*+的內(nèi)核,顯示中文的編程方法和文本顯示是一樣的,只要將漢字當作雙字節(jié)顯示即可,不過這種方法具有局限性就是能顯示的中文必須是漢字字的樣能顯示的漢字受到所添加的漢字字庫的限制。+組件中提供的窗口9:;不能實現(xiàn))GK系統(tǒng)中的窗口功能,但是我們可以利用)+現(xiàn)有的功能仿真實現(xiàn),現(xiàn)在簡要闡述一下實現(xiàn)過程。首先,我們利用)+的窗口9:;畫出窗口外觀,然后在窗口的最上方用不同顏色畫一個與窗口同寬的矩形來模擬窗口的標題欄,在標題欄的左上角可以寫字,在右上角可以畫出最小化圖標和關閉圖標,當鼠標點擊最小化圖標區(qū)域,就將當前窗口關閉,在屏幕的左下角重新畫出一個小
矩形窗口來作為最小化后的窗口,當鼠標再次點擊最小化后的窗口時,再在原來的窗口位置重新畫一下窗口;當鼠標點擊關閉圖標區(qū)域時,將當前窗口關閉即可。這樣就模擬了L)AGK系統(tǒng)中的窗口的最小化和關閉功能。H實下面通過一個程序?qū)嵗齺砗唵握f明一下利用&)*進圖形界面開發(fā)的過程。下面給出部分程序代碼并加以說明。ND+ODCO;>- QQ定義圖形上下文ND+O>8R;C8O;>?)P QQ定義顯示設備;>N+O@SEI;IO;A15?;) QQ定義字體驅(qū)動;>O@SEO;B(EF1 QQ定義字體;>D+O@SE>A(1>B
口坐標中,將窗口左上點定義為原,-()141-W QQ設置線,-.A=-5)CA.54=622E0=EH, QQ設置前,-k-A,)AA5416WA5f=h+8jH QQ設置背,-.I10-.=-W)A1HB1W)AH1U(AG=2’-3’)1AN+O8REO4RCO;=?(14=5’=;) QQ定義事件服務;>ND+O8R8TE(1 QQ定義事件N+O88EIE8I;=?=1,=5) QQ定義事件路由;>+O9O;; QQ定義應用程序& )A; QQ定義窗,-.(’’<= QQ初始化,->’5’N;9OEV8"6+O;T))QQ獲得顯示- ,-517 QQ創(chuàng)建圖形上下文,->’5’+O@SE8T;TE8" TY7A15?;7,-A>=;B6A(15?;)+@SEE8EOS;D;1FS- QQ獲得字體驅(qū)動,-A1@()15(-6A15?;)]B0^_0^4A(-P]WBB’B6B(EF,-.A(C1A?;K_K1^(1B‘U5B]A1(A1BA)H8’1(Ha5 QQ查找及生成匹配字,-.A112B11 QQ設置字符樣式,->’5’ND+8REO4IRCE"+ON;TX?=(1=52=; QQ獲得輸入事件服務設備驅(qū)動?1A15; ?11C1 ?4?; QQ創(chuàng)建事件路由0UU;9C5=016?=(1,1=;W""7QQ創(chuàng)建窗口應用上下文’)A)’C5=016UU)""W""""7PQQ創(chuàng)建窗口(911026N+N++O>G()A;ND+OT++O;QQ關聯(lián)窗口’B6G(8(1D=6UU)Z(1""7cND+O4E9EN4OSd71KG’123H)H_U QQ判斷事件‘20K=OE QQ畫窗口‘O;>S&O; DO;SO;?H)5f;口,鎖定窗
ND+OI8CE)A1’>04156G)AG;)-2N+OEN87QQ開始畫窗(I2D16(A;)Z’)G=17ND+OI8CEO*SR8OES6G)AGI21""P 基于嵌入式實時操作系統(tǒng)N,.L156H圖形界面開發(fā)方法"#$%&&畫窗口外(*+, 56"08+!9)+; "+3!";@=4<4B文字窗口演示 &&顯示漢056./0D67256"0E(3H*FD$&&畫窗口結束,釋放窗口J3/M+GIDIPQD &&鼠標TFHO "E FHIEORIEV+97.KE5:2GHIY**I 2Z+V+6!$[[*RO\I-R1O &&如果是按下左鍵或右鍵5:FHY*RO<- 2Z+V+6!$ HY*R\I- &&如果是拖動左鍵或右鍵 !結束
\圖形界面
GHINO**PQ^PYR] &&鍵盤事本例是利用156畫出兩個窗口,這兩個窗口一個是用
本文對嵌入式實時操作系統(tǒng)N,1.LM的媒體庫157H及其圖形界面開發(fā)的方法作了比較詳細的介紹,上面提到的圖形界面開發(fā)的方法已經(jīng)被作者成功地應用際工程開發(fā)取得了比較好的效果。參考文 孔祥營,柏桂枝編著9嵌入式實時操作系統(tǒng)"L及其開發(fā)環(huán)境/‘_a9中國電力來顯示漢字文本,一個是用來顯示基本的二維圖形,這兩個窗口分別是由兩個任務發(fā)起的,可以分別響應來自鼠標和鍵盤的事件。將程序編譯,并到目標仿真器,運行后,在終端顯示出的圖形界面如圖\所示。
\568V+9N"L"/##.bde V+.+#收稿日期\==c9d9\\風河強力信運營商級刀片服務器5’軟件開全球領先的設備軟件優(yōu)化解決方案提供商風河系統(tǒng)公司與].+M6技術有限公司聯(lián)合宣布,將會在.+公司的7>V/63+7*h]電信級刀片服務器中提供風河網(wǎng)絡設備平臺—1685VQ.:.O0.i’?+同時]!公司也將成為風河計劃中的平臺合作伙伴成員。同時風司還與]7V/63+7*h]電信刀片服務器的處理器提供商j+/公司聯(lián)合宣布,對j++公司的Q"0+.Qh和Q0+FEh處理器提供所有16785V-eR平臺支持。對于網(wǎng)絡設備市場來說,156785Vj)+聯(lián)合提供集成化-eR解決方案將幫助網(wǎng)絡設備制造廠商以更加簡快速低成本的方式開發(fā)可靠的電信設備和網(wǎng)絡解決方案。風河].+M6將攜手開發(fā)面向].+M6電信刀片服務器的運營商級H’,L板級支持包2YeQ$。這項工作將會首先從基于Q"0+.Qh處理器的//6/]7V/63+7*h]刀片服務器開始。風司將會為新的YeQ提供驗證和認證。兩家公司將會聯(lián)合開展市場推廣活動。風河網(wǎng)絡設備者用平臺(15675+Q!:#:.O+0.Di?#+6包括Re-H運營商級,2版本99$的主流版本以165公司基3?M1.+63開發(fā)并且?guī)в胸S富的網(wǎng)絡中間件。這個平臺可以使電信設備開發(fā)商非常方便地開發(fā)和部署網(wǎng)絡設備應用適用領域包括部分企業(yè)應用接入應用和邊緣應用。//6/是一款高性能的]7V/63+7*h]電信刀片服務器,其中包配備了兩個j+++_mm處理器,帶有d個Q*_h擴展插座、冗余的E_系統(tǒng)管理接QE_@9<兼容的]7V/63+7*h]接口和<=G(K!以太網(wǎng)通道。其中的高速j+?."3+MM".處理交換式網(wǎng)]7V/63+7*h]接口靈活的中間層擴展和集成化的系統(tǒng)管理可以方便地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學數(shù)學教育與現(xiàn)代科技的結合實踐
- 小學數(shù)學教育中的評價標準與策略
- 廣東省廣州市廣大附中2025屆中考生物模試卷含解析
- 二零二五年度環(huán)保技術研發(fā)環(huán)評報告委托合同3篇
- 江西省婺源縣聯(lián)考2025屆中考生物最后一模試卷含解析
- 步驟清晰的數(shù)學試卷
- 潮州市潮安縣數(shù)學試卷
- 廈門景區(qū)立體綠化施工方案
- 《基于云制造模式的組織敏捷性影響研究》
- 二零二五年度特種貨物標準運輸合同書3篇
- 道士述職報告
- 綠色貸款培訓課件
- 2024年七年級語文上學期期末作文題目及范文匯編
- 云南省昆明市五華區(qū)2023-2024學年九年級上學期期末英語試卷+
- 2023年生產(chǎn)運營副總經(jīng)理年度總結及下一年計劃
- 2023年中考語文標點符號(頓號)練習(含答案)
- 施工圖審查招標文件范文
- 新課標人教版數(shù)學三年級上冊第八單元《分數(shù)的初步認識》教材解讀
- 布袋式除塵器制造工序檢驗規(guī)定
- 艾滋病、梅毒和乙肝檢測方法介紹及選擇
- 水資源稅納稅申報表附表
評論
0/150
提交評論