簡(jiǎn)介:主流嵌入式LINUX下GUI解決方案,基本概念介紹GUIGRAPHICALUSERINTERFACES圖形用戶界面GUI,圖形用戶接口為用戶提供界面友好的所見所得的操作環(huán)境主流解決方案QT/EMBEDDED圖形庫大而全,能夠開發(fā)較為復(fù)雜的圖形系統(tǒng)MICROWINDOWS項(xiàng)目規(guī)模較小、功能較為薄弱,缺乏等三方軟件開發(fā)的支持MINIGUI小巧、靈活,源碼相對(duì)較少,基本概念,QTQT是TROLLTECH公司所開發(fā)的一個(gè)跨平臺(tái)FRAMEWORK環(huán)境一個(gè)運(yùn)行的平臺(tái),有一堆常用的“庫”多平臺(tái)的C圖形用戶界面應(yīng)用程序框架支持組件編程(把系統(tǒng)分割成一些組件或設(shè)施的一種思想,修改項(xiàng)目代碼的一些部分不會(huì)破壞整個(gè)系統(tǒng))TROLLTECH跨平臺(tái)應(yīng)用程序界面框架QT嵌入式LINUX開發(fā)的應(yīng)用程序平臺(tái),能夠應(yīng)用到PDA和各種移動(dòng)設(shè)備QTOPIAQT/EQT庫開發(fā)商TROLLTECH公司開發(fā)的面向嵌入式系統(tǒng)的QT版本采用C封裝豐富的控件資源較好的可移植性,QT/EMBEDDED,QT/E實(shí)現(xiàn)結(jié)構(gòu)QT/EMBEDDED的底層圖形引擎基于FRAMEBUFFER計(jì)算機(jī)顯示存儲(chǔ)器的一部分,存放屏幕圖像的內(nèi)容。FRAMEBUFFER是一種驅(qū)動(dòng)程序接口將顯示設(shè)備抽象為幀緩沖區(qū)顯示內(nèi)存的一個(gè)映像(用戶)QWSSERVER負(fù)責(zé)事件的服務(wù)分發(fā),,QT/EMBEDDED,QPE(QTPLAMTOPENVIRONMENT)針對(duì)PDA軟件的整體解決方案底層的GUI系統(tǒng)、WINDOWMANAGER、SOFTKEYBOARD上層的PIM(個(gè)人信息管理器)、瀏覽器、多媒體QTOPIA是基于QT/EMBEDDED開發(fā)的一個(gè)嵌入式的窗口系統(tǒng)和應(yīng)用程序集QTOPIA平臺(tái)組成QTOPIA庫QT/E,LIBQPE,LIBQTOPIA1,QTOPIAPIMQTOPIASERVER/LAUCHER控制窗口系統(tǒng)進(jìn)程間通信發(fā)起所有應(yīng)用和其他核心任務(wù)的主要服務(wù)程序,,系統(tǒng)平臺(tái)介紹,系統(tǒng)平臺(tái)軟件結(jié)構(gòu)圖引導(dǎo)裝載程序VIVI設(shè)備驅(qū)動(dòng)(包括幀緩存FB)嵌入式LINUX內(nèi)核文件系統(tǒng)YAFFS(只讀CRAMFS,需做修改)基于QT/EMBEDDED和QTOPIA的用戶圖形界面以及應(yīng)用程序,,,QT/E、QTOPIA,構(gòu)建GUI時(shí)用于QT開發(fā)的典型工具TMAKE跨平臺(tái)的MAKEFILE生成器MOC用于QTC擴(kuò)展的METRAOBJECT編譯器DESIGNER用于設(shè)計(jì)窗口組建的應(yīng)用程序,UI文件UIC從界面文件生成代碼的用戶界面編譯器(CPPUNSIGNEDSHORTXUNSIGNEDSHORTYUNSIGNEDSHORTPAD}TS_RET驅(qū)動(dòng)程序提供給上層應(yīng)用程序使用的信息,用來存儲(chǔ)觸摸屏的返回值,,項(xiàng)目進(jìn)度,觸摸屏坐標(biāo)確定觸摸屏本身有自己的指標(biāo)分辨率,比如20482048(即它的坐標(biāo)系),它和我們LCD顯示屏的坐標(biāo)系(比如大點(diǎn)的1024768)是兩個(gè)概念。通過ADS控制器的SPI/I2C總線讀取到的觸摸屏的坐標(biāo)信息,是觸摸屏(貼在LCD上面很像包裝紙的一層薄膜)以它本身坐標(biāo)原點(diǎn)O(物理的固定的,4個(gè)邊角的某一個(gè))為參考的坐標(biāo)對(duì)(X,Y)原理是兩個(gè)電壓值(NX,NY),根據(jù)觸摸屏X,Y方向的參考電壓,做個(gè)線性比較,得到其坐標(biāo)值(X,Y),,項(xiàng)目進(jìn)度,觸摸屏坐標(biāo)確定實(shí)際使用過程中,唯一的參考定位是LCD屏的坐標(biāo)系(X,Y),TSLIB就是把兩個(gè)2維線性坐標(biāo)系通過幾個(gè)樣值的比較,對(duì)應(yīng)轉(zhuǎn)換,即(X,Y)X,Y(1)計(jì)算程序,調(diào)用LCD顯示驅(qū)動(dòng)程序,在LCD上打印幾個(gè)光標(biāo),選擇方便計(jì)算的,比如(X1,Y1),X2,Y22觸摸屏驅(qū)動(dòng)程序應(yīng)該還沒有設(shè)計(jì)完成,這里只需要做到其觸摸屏控制器初始化函數(shù)、坐標(biāo)數(shù)據(jù)讀取函數(shù)和相應(yīng)的點(diǎn)擊中斷程序工作就可以了。分別點(diǎn)擊這些點(diǎn),程序中讀出這些點(diǎn)對(duì)應(yīng)的觸摸屏坐標(biāo)值(X1,Y1),(X2,Y2)3這時(shí)候,就可以得到了兩個(gè)坐標(biāo)系的對(duì)應(yīng)關(guān)系,具體就是代入程序中讀到的采樣值求解下面對(duì)應(yīng)方程的6個(gè)系數(shù)A,B,C,D,E,F{XAXBYC,YEXFYG},,項(xiàng)目進(jìn)度,TSLIB校正原理觸摸動(dòng)作模擬鼠標(biāo)動(dòng)作傳統(tǒng)的鼠標(biāo)相對(duì)定位系統(tǒng),只和前一次鼠標(biāo)的位置坐標(biāo)有關(guān)觸摸屏絕對(duì)坐標(biāo)系統(tǒng)絕對(duì)坐標(biāo)系統(tǒng)的特點(diǎn)每一次定位坐標(biāo)與上一次定位坐標(biāo)沒有關(guān)系,每次觸摸的數(shù)據(jù)通過校準(zhǔn)轉(zhuǎn)為屏幕上的坐標(biāo),不管在什么情況下,觸摸屏這套坐標(biāo)在同一點(diǎn)的輸出數(shù)據(jù)是穩(wěn)定的。不過由于技術(shù)原理的原因,并不能保證同一點(diǎn)觸摸每一次采樣數(shù)據(jù)相同,不能保證絕對(duì)坐標(biāo)定位,點(diǎn)不準(zhǔn),這就是觸摸屏最怕出現(xiàn)的問題漂移。對(duì)于性能質(zhì)量好的觸摸屏來說,漂移的情況出現(xiàn)并不是很嚴(yán)重。所以很多應(yīng)用觸摸屏的系統(tǒng)啟動(dòng)后,進(jìn)入應(yīng)用程序前,先要執(zhí)行校準(zhǔn)程序。,,項(xiàng)目進(jìn)度,TSLIB校正原理LCD坐標(biāo)和觸摸屏的物理坐標(biāo)的比較從觸摸屏中讀出的是點(diǎn)的物理坐標(biāo),其坐標(biāo)軸的方向、XY值的比例因子、偏移量、縮放因子都與LCD坐標(biāo)不同,,項(xiàng)目進(jìn)度,TSLIB校正原理使觸摸屏坐標(biāo)和LCD坐標(biāo)一一對(duì)應(yīng),且以插件形式提供附加功能如濾波、防抖。TSLIB的API接口TSDEV表示觸摸屏設(shè)備FD打開觸摸屏設(shè)備的文件描述符LIST指針,依次存放指向TSLIB插件的指針,,項(xiàng)目進(jìn)度,TSLIB校正原理TSLIB的API接口TS_SAMPLE存放按鍵消息X,Y按鍵的坐標(biāo)位置(以LCD坐標(biāo)系為基準(zhǔn))PRESSURE按鍵的輕重程度TV按鍵發(fā)生的時(shí)間,,項(xiàng)目進(jìn)度,TSLIB校正原理TSLIB的函數(shù)TS_OPEN打開觸摸屏設(shè)備TS_CONFIG讀取觸摸屏配置文件并決定加載模塊VARIANCE限定點(diǎn)擊力度方差DEJITTER去除點(diǎn)擊抖動(dòng)LINEAR將觸摸屏上的坐標(biāo)轉(zhuǎn)換成LCD的坐標(biāo)TS_CLOSE釋放觸摸屏設(shè)備及相關(guān)資源TS_FD返回打開的觸摸屏設(shè)備的文件描述符TS_READ從觸摸屏設(shè)備讀取采樣點(diǎn)坐標(biāo)開發(fā)板上運(yùn)行CALIBRATE程序,觸摸屏上任何一點(diǎn)的坐標(biāo)就可以在主機(jī)LCD屏上回顯出來。于是,就采集到了4個(gè)角的物理坐標(biāo)假設(shè)是64英寸屏,640X480分辨率,則它們的像素坐標(biāo)分別是(20,20)、(20,460)、620,460和620,20。這樣,使用待定系數(shù)法就可以算出坐標(biāo)系之間的平移關(guān)系。比如VXXFACTORPXXOFFSETVYYFACTORPYYOFFSET,,QT/E、QTOPIA,QTE/QTOPIA在2410S上的移植使用TSLIBEXPORTTSLIB_CONSOLEDEVICENONETSLIB運(yùn)行需要的控制臺(tái),這里就是LCD屏幕,設(shè)定控制臺(tái)設(shè)備為NONE,否則默認(rèn)為/DEV/TTY,EXPORTTSLIB_FBDEVICE/DEV/FB0指定幀緩沖設(shè)備EXPORTTSLIB_TSDEVICE/DEV/TOUCHSCREEN/0RAW指定觸摸屏設(shè)備節(jié)點(diǎn)文件EXPORTTSLIB_CALIBFILE/ETC/POINTERCAL指定觸摸屏校準(zhǔn)文件PINTERCAL的存放位置EXPORTTSLIB_CONFFILE/ETC/TSCONF指定TSLIB配置文件的位置EXPORTTSLIB_PLUGINDIRQTDIR/LIB/TS指定觸摸屏插件所在路徑校準(zhǔn)屏幕(5點(diǎn)校準(zhǔn))/TS_CALIBRATE用戶點(diǎn)擊從TS驅(qū)動(dòng)獲得數(shù)據(jù)屏上坐標(biāo)位置運(yùn)行PDA/QPE,,
下載積分: 4 賞幣
上傳時(shí)間:2024-01-06
頁數(shù): 24
大?。?0.36(MB)
子文件數(shù):