1、簡述
觸摸屏是覆蓋在顯示屏表面的一層薄片,當(dāng)有觸摸筆接觸到觸摸屏?xí)r,系統(tǒng)中相應(yīng)的驅(qū)動(dòng)會(huì)得到觸摸筆點(diǎn)擊的位置,并可通知應(yīng)用程序,從而實(shí)現(xiàn)人機(jī)交互的功能。電阻式觸摸屏是比較常見的觸摸屏,EM9280提供對(duì)于4線制電阻式觸摸屏的支持,在定制的Linux內(nèi)核中已完全實(shí)現(xiàn)了該觸摸屏的驅(qū)動(dòng)支持。
在EM9280中,觸摸屏作為輸入設(shè)備其設(shè)備文件為:“/dev/input/event0”。
本文將介紹EM9280 Linux環(huán)境下應(yīng)用程序如何使用觸摸屏設(shè)備。
2、tslib移植
在采用觸摸屏的移動(dòng)終端中,觸摸屏性能的調(diào)試是個(gè)重要問題之一,因?yàn)殡姶旁肼暤木壒剩|摸屏容易存在點(diǎn)擊不準(zhǔn)確、有抖動(dòng)等問題。tslib是一個(gè)開源的程序,能夠?yàn)橛|摸屏驅(qū)動(dòng)獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動(dòng)的適配層,為上層的應(yīng)用提供了一個(gè)統(tǒng)一的接口。
tslib 為觸摸屏驅(qū)動(dòng)和應(yīng)用層之間的適配層,其從驅(qū)動(dòng)處獲得原始的設(shè)備坐標(biāo)數(shù)據(jù),通過一系列的去噪、去抖、坐標(biāo)變換等操作,來去除噪聲并將原始的設(shè)備坐標(biāo)轉(zhuǎn)換為相應(yīng)的屏幕坐標(biāo)。
tslib的移植過程:
1、下載源碼:git clone https://github.com/kergoth/tslib
2、轉(zhuǎn)入工作目錄:cd tslib
3、生成configure:./autogen.sh
4、配置,生成Makefile
./configure --host=arm-none-linux-gnueabi(平臺(tái)) --prefix=/(安裝目錄)
--enable-debug=no
5、編譯 make
6、安裝 make install
在指定的安裝目錄下生成/bin /etc /lib /include文件夾。然后將相應(yīng)目錄下的文件分別復(fù)制到EM9280的根文件系統(tǒng)中對(duì)應(yīng)目錄中。
還需要進(jìn)行一些參數(shù)的配置。
/etc目錄下的profile需要指定 tslib的設(shè)備及路徑:
export set TCLIB_TSDEVICE=/dev/input/event0
export set TCLIB_CALIBFILE=/etc/pointercal
export set TCLIB_CONFFILE=/etc/ts.conf
export set TCLIB_PLUGINDIR=/lib/ts
tslib中包括有觸摸屏測(cè)試程序ts_test ,運(yùn)行ts_test之前,需要先運(yùn)行ts_calibrate對(duì)觸摸屏進(jìn)行校準(zhǔn)。
3、觸摸屏的應(yīng)用程序開發(fā)
為了方便客戶觸摸屏應(yīng)用程序開發(fā),我們將tslib中的測(cè)試程序ts_test程序?qū)С?,利用tslib的動(dòng)態(tài)庫文件libts.so,可直接在英創(chuàng)公司提供的應(yīng)用開發(fā)工具 eclipse上進(jìn)行ts_test直接編譯,生成具有同樣功能的觸摸屏測(cè)試程序。這種方式的好處是應(yīng)用程序可直接利用tslib所提供的接口函數(shù),獲取到觸摸屏操作后所得到的x、y坐標(biāo)值,客戶可方便地在此基礎(chǔ)實(shí)現(xiàn)人機(jī)交互操作界面的需求。
在eclipse環(huán)境下建立一個(gè)c++ project:ts_test,該工程文件中需要導(dǎo)入以下文件:
ts_test.c //觸摸屏測(cè)試主程序
tslib.h //定義操作ts的接口函數(shù)
libts.so //動(dòng)態(tài)庫,即tslib.h文件各個(gè)接口函數(shù)的具體實(shí)現(xiàn)
fbutils.c fbutils.h //定義和屏幕顯示相關(guān)的接口函數(shù)
font.h font_8x16.c font_8x8.c //定義顯示字符的font
從上述說明可以看出,和ts接口相關(guān)的主要函數(shù)定義在tslib.h libts.so這個(gè)兩個(gè)文件中。
該工程文件中用到專用的動(dòng)態(tài)庫libts.so,在eclipse環(huán)境對(duì)此程序編譯時(shí),需要設(shè)置相應(yīng)的編譯屬性。在Project Explorer視窗下,選擇需要設(shè)置的工程文件,然后點(diǎn)擊鼠標(biāo)右鍵,選擇 Properties項(xiàng),在窗口中選擇C/C++ Build -> Settings -> Tool Settings -> Sourcery G++ C++ Linker -> Libraries,如下圖所示。其中的一個(gè)窗口用于指定庫文件的名稱,一個(gè)用于指定庫文件的路徑。
-
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207916 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6081瀏覽量
34942
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論