資源描述:
《基于armlinux平臺的qte鍵盤實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、您的論文得到兩院院士關(guān)注嵌入式軟件應(yīng)用文章編號:1008-0570(2008)09-2-0027-03基于ARMlinux平臺的QT/E鍵盤實現(xiàn)AnImplementationofKeyboardBasedonQT/EonARMlinux1祝紅軍2(1.西華大學(xué);2.成都紡織高等??茖W(xué)校)李軍民LIJun-minZHUHong-jun摘要:目前,隨著儀器儀表要求日益增長,對用戶圖形界面(GUI)的需求越來越高。面向嵌入式系統(tǒng)的Qt/E被廣泛應(yīng)用于其中,而底層設(shè)備的實現(xiàn)成為我們設(shè)計系統(tǒng)最關(guān)鍵的一步。本文深入分析QT/E
2、事件驅(qū)動原理,并在ARMlinux平臺下成功實現(xiàn)了自行設(shè)計鍵盤的輸入,詳細(xì)介紹了軟件設(shè)計,特別闡述了基于QT/E事件驅(qū)動原理的鍵盤驅(qū)動設(shè)計要點。最后進行了實驗,結(jié)果表明方案可行、實用。關(guān)鍵詞:ARMlinux;Qt/E;Qtopia鍵盤驅(qū)動中圖分類號:TP393文獻標(biāo)識碼:AAbstract:Withthedemandincreaseofinstrumentandmeter,GUIisrequiredmoreandmorehightly.Qt/Ewhichisorientedembed-dedsystemisappl
3、iedininstrumentandmeter.However,theimplementofbottomequipmentisthekeystepinsystemdesign.Thispa-peranalyseseventdrivenprincipelofQt/Edeeplyandrealizesinputofself-designkeybord.Meanwhile,thispaperintroducessoft-技waredesignofthesystemindetail,andespeciallydescribe
4、sthepointsofkeyboarddriverdesignbasedoneventdrivenprincipelofQt/E.Atlast,thetestingresultshowstheschemeisreliableandpractical.術(shù)Keywords:ARMlinux;Qt/E;Qtopiakeyboarddriver創(chuàng)前言2Qt/E的事件驅(qū)動新Qt/E是著名的Qt庫開發(fā)商Tmlhech公司開發(fā)的面向嵌入Qt/E中與用戶輸入事件相關(guān)的信號,是建立在對底層輸入式系統(tǒng)的Qt版本。Qt/E是Server
5、/Client結(jié)構(gòu),延續(xù)了Qt在X上設(shè)備的接口調(diào)用之上的。Qt/E中的輸入設(shè)備,分為鼠標(biāo)類與鍵的強大功能,在底層摒棄了XIib,僅采用幀緩沖作為底層圖形盤類。以3.x版本系列為例,其中鼠標(biāo)設(shè)備的抽象基類為接口。同時,將外部輸入設(shè)備抽象為keyboard和mouse輸入事QWSMouseHandler,鍵盤設(shè)備的抽象基類為QWSKeyboaord件,底層接口支持鍵盤、GPM鼠標(biāo)、觸摸屏以及用戶自定義的設(shè)Handler,從該類又重新派生出一些具體的實現(xiàn)類。與圖形發(fā)生備輸入設(shè)備是各種嵌入式系統(tǒng)的重要組成部分,如鼠標(biāo)、小鍵引
6、擎加載方式類似的,在系統(tǒng)加載構(gòu)造QWSServer時,調(diào)用盤、觸摸屏,要讓QT/E支持特定的嵌入式輸入設(shè)備,需要對設(shè)QWSServer::openMouse與QWSServer::openKeyboard函數(shù)。這時備驅(qū)動和QT/E的事件驅(qū)動非常熟悉,有很多的資料已經(jīng)介紹qwindowsystem_qws.cpp里有個getenv("QWS_MOUSE_PROTO")了QT/E的事件驅(qū)動的相關(guān)知識,但都沒有給出詳細(xì)的分析和和getenv("QWS_KEYBOARD")這兩個函數(shù)獲取環(huán)境變量,它會具體的實現(xiàn)代碼。本文主要
7、以自己設(shè)計的鍵盤出發(fā)深入分析了根據(jù)Linux系統(tǒng)的環(huán)境變量QWS_MOUSE_PROTO與QT/E的事件驅(qū)動的原理和及其實現(xiàn)過程,給出了詳細(xì)的源代QWS_KEYBOARD獲得鼠標(biāo)類設(shè)備和鍵盤類設(shè)備的設(shè)備類型碼分析,對基于嵌入式QT的工程開發(fā)一定的參考價值。和設(shè)備節(jié)點。打開相應(yīng)設(shè)備并返回相應(yīng)設(shè)備的基類句柄指針給系統(tǒng),獲得對具體鼠標(biāo)類設(shè)備和鍵盤類設(shè)備的調(diào)用操作。圖21Qt/E的實現(xiàn)結(jié)構(gòu)詳細(xì)介紹了鍵盤的事件驅(qū)動流程。Qt/E巧妙地利用了C++獨有的機制,如繼承、多態(tài)、模板等,具體實現(xiàn)非常靈活。但其底層代碼由于追求與多種系統(tǒng)
8、、多種硬件的兼容,代碼補丁較多,風(fēng)格稍顯混亂Qt/E的實現(xiàn)結(jié)構(gòu)如圖1:李軍民:講師碩士基金項目:四川省教育廳青年基金;項目名稱:基于網(wǎng)絡(luò)的機器設(shè)備故障智能診斷監(jiān)測系統(tǒng)研究(2006B043);四川省科技廳重點攻關(guān)項目;項目名稱:數(shù)控機床運動精度動態(tài)測試技術(shù)及裝置研究(0032785)《PLC技術(shù)應(yīng)用200例》郵局訂閱號:82-946360元/年