日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于嵌入式Qt的車載GUI平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

出處:自動(dòng)化與信息工程 發(fā)布于:2011-09-05 11:54:26

  1 引言

  隨著汽車用戶對(duì)車載娛樂系統(tǒng)的要求不斷地提高,傳統(tǒng)的字符界面和簡(jiǎn)單的圖形界面已不能完全滿足用戶的需求,人們對(duì)輕量級(jí)嵌入式GUI(Graphic User Interface,圖形用戶界面)的需求越來越迫切。嵌入式GUI是人機(jī)交互技術(shù)的重要組成部分,以其豐富的圖形圖象信息、直觀方便的操作等特點(diǎn)被越來越多的嵌入式系統(tǒng)所采用,也成為當(dāng)今嵌入式技術(shù)應(yīng)用研究領(lǐng)域的焦點(diǎn)之一。

  X Window系統(tǒng)是一個(gè)基于客戶/服務(wù)器(Client/Server)結(jié)構(gòu)的視窗系統(tǒng),此系統(tǒng)配置在大多數(shù)的UNIX系統(tǒng)、DEC的VAX/VMS操作系統(tǒng)以及Linux系統(tǒng)中,可以自由拷貝以及傳播,但是系統(tǒng)龐大,占用內(nèi)核資源較多。MicroWindows是一個(gè)完全開放源碼、分層設(shè)計(jì)的經(jīng)典GUI系統(tǒng),可以替代X Window系統(tǒng),但是某些關(guān)鍵性代碼使用了匯編語言。MiniGUI系統(tǒng)適應(yīng)于中小型企業(yè)的嵌入式GUI平臺(tái),采用分層結(jié)構(gòu),并在層采用hash表的方式。

  2 嵌入式GUI的實(shí)現(xiàn)平臺(tái)

  GUI是圖形用戶接口,一般用于PC機(jī)上人機(jī)交互界面的設(shè)計(jì)。而對(duì)于嵌入式GUI來說,由于嵌入式設(shè)備對(duì)資源的要求很嚴(yán)格,不同的嵌入式設(shè)備需要定制不同的嵌入式系統(tǒng),那么對(duì)GUI的要求也就不一樣,因此,對(duì)于不同的嵌入式系統(tǒng)來說GUI也必須是可定制的。由于Linux操作系統(tǒng)具有源碼公開性、可移植性、可裁剪性和靈活性等優(yōu)點(diǎn),所以嵌入式GUI的開發(fā)常在Linux環(huán)境下進(jìn)行。

  Qt/Embedded為開發(fā)者提供了豐富的API調(diào)用功能,并公開源代碼。Qt/Embedded提供了非常豐富的窗口小部件(Widgets),并且還支持窗口部件的定制,因此它可以為用戶提供漂亮的圖形界面,但同時(shí)豐富的窗口對(duì)象也增大了軟件的體積,所以,Qt/Embedded一般用于對(duì)運(yùn)行環(huán)境不太苛刻的嵌入式設(shè)備中。

  3 嵌入式Qt系統(tǒng)的特點(diǎn)

  Qt/Embedded移植了大量的原來基于Qt的XWindows程序,并提供了非常完整的嵌入式GUI解決方案,是一個(gè)成熟的GUI平臺(tái),具有如下特點(diǎn):

  (1)Qt遵循GPL協(xié)議,開放主要的源代碼,用戶可以在GPL的規(guī)定下自由添加新特性。

  (2)與其他嵌入式GUI相比,嵌入式Qt不僅是一個(gè)完整的窗口系統(tǒng),而且也是一個(gè)應(yīng)用程序框架,這更有利于應(yīng)用程序的開發(fā)。

  (3)Qt具有豐富的API,包括多達(dá)250個(gè)以上的C++類,支持諸如對(duì)圖形、網(wǎng)絡(luò)、數(shù)據(jù)庫、I/O操作、各種控件和XMI等眾多功能,可滿足大多數(shù)嵌入式應(yīng)用系統(tǒng)開發(fā)的需要。

  (4)Qt是一個(gè)GUI仿真工具包,它使用各自平臺(tái)上的低級(jí)繪圖函數(shù)仿真MS Windows和Motif(商用Llnix的標(biāo)準(zhǔn)GUI庫),因此程序運(yùn)行速度快。

  (5)Qt良好的封裝機(jī)制使得Qt的模塊化程度非常高,可靠性好,易于程序開發(fā)。

  4 基于嵌入式Qt的車載GUI的設(shè)計(jì)

  4.1 基于嵌入式Qt的車載GUI的總體設(shè)計(jì)

  基于Linux的車載娛樂系統(tǒng)運(yùn)行環(huán)境如表l所示,底層由Linux內(nèi)核和驅(qū)動(dòng)程序構(gòu)成。該內(nèi)核是經(jīng)過裁減過的嵌入式Linux2.4,其中包括電源管理系統(tǒng);驅(qū)動(dòng)程序提供對(duì)各種接口硬件的支持;中間層是基于QT/Embedded的嵌入式Qt庫。QT/Embedded本身是可擴(kuò)展的,并能不斷地升級(jí)。開發(fā)人員可以根據(jù)自己所面對(duì)的嵌入式設(shè)備的實(shí)際需要,對(duì)其進(jìn)行適當(dāng)?shù)牟脺p,經(jīng)過裁減所得到的QT/Embedded可以大約節(jié)約800k到3MB的內(nèi)存空間,這樣也就意味著用Qt開發(fā)比用其他工具包開發(fā)相同的應(yīng)用程序,在生成可執(zhí)行文件后,代碼所占用的內(nèi)存空間要小。頂層是整個(gè)車載娛樂應(yīng)用系統(tǒng),它是實(shí)現(xiàn)車載娛樂具體功能的應(yīng)用集合。

  基于嵌入式Qt的車載嵌入式娛樂系統(tǒng)軟件,限度的滿足了車載視聽娛樂的要求。提供視頻播放、音頻播放等多媒體軟件,個(gè)人信息管理軟件,無線網(wǎng)絡(luò)服務(wù)等。其系統(tǒng)架構(gòu)如圖l所示。

  4.2 基于嵌入式Qt的窗口系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

  本文設(shè)計(jì)的上層GUI窗口系統(tǒng)采用了客戶/服務(wù)器系統(tǒng)結(jié)構(gòu)。該窗口系統(tǒng)包括:一個(gè)服務(wù)器進(jìn)程、一個(gè)或者多個(gè)客戶進(jìn)程。服務(wù)器負(fù)責(zé)為客戶和本身分配顯示區(qū)域,生成鼠標(biāo)、鍵盤或者觸摸屏事件,它通常包含那些啟動(dòng)客戶的用戶界面。而客戶則通過與服務(wù)器通信來申請(qǐng)顯示區(qū)域,接受鼠標(biāo)或觸摸屏事件。客戶可以直接訪問所分配的顯示區(qū)域,以便為用戶提供GUI服務(wù)。服務(wù)器和客戶通過共享內(nèi)存的方式來傳遞所分配顯示區(qū)域上的信息。窗口系統(tǒng)體系結(jié)構(gòu)如圖2所示。

  4.3 基于嵌入式Qt的事件響應(yīng)設(shè)計(jì)

  在前述的客戶/服務(wù)器系統(tǒng)結(jié)構(gòu)中,每個(gè)鍵的按下、釋放都以QWSKeyEvent事件發(fā)出。一個(gè)QWSKeyEvent事件通常包括以下各域:

  Unicode:Unicode值。

  Keycode:Qt鍵碼值,定義在qnamespace.h頭文件中。

  Modifier:位域, 包括Qt::ShiftButton,Qt::ControlButton和Qt::AltButton。

  Is press:鍵按下時(shí)為真,釋放時(shí)為假。

  Is auto repeat:鍵處于自動(dòng)重復(fù)狀態(tài)時(shí)為真。

  嵌入式Qt處理鍵事件的過程為:鍵盤驅(qū)動(dòng)程序負(fù)責(zé)從設(shè)備中讀取數(shù)據(jù),并將鍵事件發(fā)送到服務(wù)器中。當(dāng)服務(wù)器從鍵盤驅(qū)動(dòng)程序接收到一個(gè)鍵事件時(shí),它首先要經(jīng)過一個(gè)事件過濾器,然后再將其發(fā)送至每個(gè)客戶進(jìn)程,由客戶進(jìn)程負(fù)責(zé)處理鍵事件,并將其發(fā)送到適當(dāng)?shù)拇翱凇>唧w流程如圖3所示。

  在Qt中,一個(gè)事件通過調(diào)用QObject::event()被發(fā)送到繼承自QObject的對(duì)象。事件發(fā)送就是一個(gè)事件已經(jīng)產(chǎn)生,由QEvent正好去表達(dá),且QObject需要去回應(yīng)。多數(shù)事件來自窗口系統(tǒng)類QWidget,如QMouseEvent,QkeyEvent事件。某些事件來自其他源頭,如QTimerEvent,而某些來自應(yīng)用程序,Qt會(huì)一視同仁的處理。

  事件過濾器在目標(biāo)對(duì)象處理之前去處理事件。過濾器通過調(diào)用QObject::eventFilter()實(shí)現(xiàn),它可以接受或丟棄過濾,也可容許或拒絕進(jìn)一步去處理事件。如果所有的事件過濾器允許進(jìn)一步的處理事件,事件自己就被送達(dá)目標(biāo)對(duì)象。

  本文通過分析、比較目前流行的幾種嵌入式GUI,選擇了嵌入式Qt作為研究對(duì)象并對(duì)其進(jìn)行了深入討論,在此基礎(chǔ)上完成了基于嵌入式Qt的車載GUI的設(shè)計(jì)和實(shí)現(xiàn),具有較高的經(jīng)濟(jì)價(jià)值,并可為其他嵌入式娛樂系統(tǒng)提供參考價(jià)值。


  
關(guān)鍵詞:車載嵌入式

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!