久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

Qt/Embedded在嵌入式Linux系統(tǒng)中的應(yīng)用


對(duì)應(yīng)于鼠標(biāo)類設(shè)備的實(shí)現(xiàn)位于src/kernel/qmouse_qws.cpp中。由于觸摸屏在實(shí)現(xiàn)原理上存在著a/d量化誤差的問題,因此所有的觸摸屏接口實(shí)現(xiàn)類需要從特殊的qcalibratedmousehandler繼承,并獲得校正功能。

qt/embedded 2.x中對(duì)于鍵盤響應(yīng)的實(shí)現(xiàn)函數(shù)位于src/kernel/qkeyboard_qws.cpp中。在qkeyboard_qws.h中,定義了鍵盤類設(shè)備接口的基類qwskeyboardhandler,移植時(shí)需要根據(jù)鍵盤驅(qū)動(dòng)程序從該類派生出實(shí)現(xiàn)類,實(shí)現(xiàn)鍵盤事件處理函數(shù)processkeyevent(),并在qwsserver::newkeyboardhandler函數(shù)中注冊(cè)自己的鍵盤類設(shè)備即可。其中對(duì)于點(diǎn)擊鍵的鍵碼定義在qt/embedded的命名空間——src/kernel/qnamespace.h中。

圖4為筆者在該smart-phone開發(fā)平臺(tái)上移植qt/embedded 2.3.7和qtopia 1.7.0后顯示的截圖。

2.2 在mc9328平臺(tái)上移植和應(yīng)用

在某車載導(dǎo)航輔助系統(tǒng)的開發(fā)平臺(tái)設(shè)計(jì)中,采用了qt/embedded 3.3.2版本作為其gui系統(tǒng)的實(shí)現(xiàn)方案。硬件平臺(tái)采用自行設(shè)計(jì)的以motorola mc9328 mx1為核心的開發(fā)系統(tǒng)。該系統(tǒng)采用cpu內(nèi)部lcd控制器和240×320分辨率的16 bpp tft lcd作為顯示設(shè)備,采用i2c總線擴(kuò)展出16按鍵以及mx1集成的asp模塊和電阻觸摸屏。操作系統(tǒng)為arm linux 2.4.18。

qt/embedded 3.x版本系統(tǒng)中與底層硬件接口相關(guān)部分的源碼位于src/embedded/目標(biāo)中。該部分包含三類設(shè)備的接口:framebufer、鼠標(biāo)與鍵盤。參照該目標(biāo)中相關(guān)設(shè)備的具體接口代碼,根據(jù)自身硬件臺(tái)增添接口即可。

由于系統(tǒng)lcd的岔道率為240×320,物理尺寸較小,在實(shí)現(xiàn)其于該系統(tǒng)的framebuffer驅(qū)動(dòng)程序時(shí)并沒有將其本身與linux字符控制臺(tái)設(shè)備掛靠,因此framebuffer并不具備text模式的工作方式。在移植qt/embedded時(shí),無需作framebuffer設(shè)備的工作方式轉(zhuǎn)換。正確配置色彩顯示支持后,qt/embedded能夠在lcd顯示出正確的圖形。由于該平臺(tái)的顯示系統(tǒng)為縱向320行,在設(shè)計(jì)時(shí)考慮到人對(duì)于非手持設(shè)備的視覺習(xí)慣為寬度大于高度的觀察方式,為了符合這種習(xí)慣性的觀察方式,在移植qt/embedded時(shí)采用了transformed的旋轉(zhuǎn)圖形顯示方式在軟件上實(shí)現(xiàn)了顯示方向的轉(zhuǎn)換變化。

鼠標(biāo)設(shè)備接口這一基類qwsmousehandler的實(shí)現(xiàn)位于src/embedded/qmouse_qws.cpp中。與2.x版本系列不同的是,3.x中所有的linux觸摸屏示例接口代碼均實(shí)現(xiàn)在src/embedded/qmouselinuxtp_qws.cpp中的qwslinuxtpmousehandler類中。其中對(duì)于不同型號(hào)的觸摸屏的接口實(shí)現(xiàn)代碼,采用不同的宏定義和預(yù)編譯的方式將它們分隔開。筆者還通過從qwslinuxtpmousehandler中繼承自身觸摸屏接口類,替代原有的qwslinuxtpmousehandlerprivate類,而在qwslinuxtpmousehandler生成自身觸摸屏接口對(duì)象的方式,較好地將移植部分的代碼與原有比較混亂的代碼分隔開來。

圖4

    3.x中鍵盤接口基類們于src/embedded/qkbd_qws.cpp中,為qwskeyboardhandler。實(shí)現(xiàn)i2c總線擴(kuò)展出的16鍵鍵盤接口類方式與觸摸屏類似,此處不多述。需要注意的是,qt/embedded提供了事件過濾器(key event filter)的接口,在鍵盤點(diǎn)擊事件從qwsserver截獲并發(fā)送到相應(yīng)的client之前會(huì)經(jīng)過函數(shù)qwsserver::keyboardfilter。在此函數(shù)中可以按照自身需求生成新的鍵盤點(diǎn)擊事件,而后利用qwsserver::sendkeyevent()發(fā)送新的點(diǎn)擊事件到client中。利用該方式可以將各種鍵盤點(diǎn)擊無法輸入的unicode字符轉(zhuǎn)換出來,從而可以在較少的按鍵鍵盤上實(shí)現(xiàn)多unicode字符輸入法。qt/embedded 3.x鍵盤接口的移植與鼠標(biāo)設(shè)備接口類似,此處不多述。

3 總結(jié)

隨著嵌入式處理器運(yùn)算能力的不斷提高,對(duì)外設(shè)支持的不斷豐富,嵌入式linux系統(tǒng)的應(yīng)用也逐漸增多。qt/embedded延續(xù)了qt在桌面系統(tǒng)的所有功能,豐富的api接口和基于組件的編程模型使得嵌入式linux系統(tǒng)中的應(yīng)用程序開發(fā)更加便捷。由于qt/embedded本身面向高端的手持設(shè)備和移動(dòng)設(shè)備,將成為未來嵌入式系統(tǒng)的主要gui

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生