1、簡述
觸摸屏是覆蓋在顯示屏表面的一層薄片,當(dāng)有觸摸筆接觸到觸摸屏?xí)r,系統(tǒng)中相應(yīng)的驅(qū)動會得到觸摸筆點擊的位置,并可通知應(yīng)用程序,從而實現(xiàn)人機(jī)交互的功能。電阻式觸摸屏是比較常見的觸摸屏,EM9280提供對于4線制電阻式觸摸屏的支持,在定制的Linux內(nèi)核中已完全實現(xiàn)了該觸摸屏的驅(qū)動支持。
在EM9280中,觸摸屏作為輸入設(shè)備其設(shè)備文件為:“/dev/input/event0”。
本文將介紹EM9280 Linux環(huán)境下應(yīng)用程序如何使用觸摸屏設(shè)備。
2、tslib移植
在采用觸摸屏的移動終端中,觸摸屏性能的調(diào)試是個重要問題之一,因為電磁噪聲的緣故,觸摸屏容易存在點擊不準(zhǔn)確、有抖動等問題。tslib是一個開源的程序,能夠為觸摸屏驅(qū)動獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動的適配層,為上層的應(yīng)用提供了一個統(tǒng)一的接口。
tslib 為觸摸屏驅(qū)動和應(yīng)用層之間的適配層,其從驅(qū)動處獲得原始的設(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(平臺) --prefix=/(安裝目錄)
--enable-debug=no
5、編譯 make
6、安裝 make install
在指定的安裝目錄下生成/bin /etc /lib /include文件夾。然后將相應(yīng)目錄下的文件分別復(fù)制到EM9280的根文件系統(tǒng)中對應(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中包括有觸摸屏測試程序ts_test ,運行ts_test之前,需要先運行ts_calibrate對觸摸屏進(jìn)行校準(zhǔn)。
3、觸摸屏的應(yīng)用程序開發(fā)
為了方便客戶觸摸屏應(yīng)用程序開發(fā),我們將tslib中的測試程序ts_test程序?qū)С觯胻slib的動態(tài)庫文件libts.so,可直接在英創(chuàng)公司提供的應(yīng)用開發(fā)工具 eclipse上進(jìn)行ts_test直接編譯,生成具有同樣功能的觸摸屏測試程序。這種方式的好處是應(yīng)用程序可直接利用tslib所提供的接口函數(shù),獲取到觸摸屏操作后所得到的x、y坐標(biāo)值,客戶可方便地在此基礎(chǔ)實現(xiàn)人機(jī)交互操作界面的需求。
在eclipse環(huán)境下建立一個c++ project:ts_test,該工程文件中需要導(dǎo)入以下文件:
ts_test.c //觸摸屏測試主程序
tslib.h //定義操作ts的接口函數(shù)
libts.so //動態(tài)庫,即tslib.h文件各個接口函數(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這個兩個文件中。
該工程文件中用到專用的動態(tài)庫libts.so,在eclipse環(huán)境對此程序編譯時,需要設(shè)置相應(yīng)的編譯屬性。在Project Explorer視窗下,選擇需要設(shè)置的工程文件,然后點擊鼠標(biāo)右鍵,選擇 Properties項,在窗口中選擇C/C++ Build -> Settings -> Tool Settings -> Sourcery G++ C++ Linker -> Libraries,如下圖所示。其中的一個窗口用于指定庫文件的名稱,一個用于指定庫文件的路徑。
-
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213796 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6101瀏覽量
36305
發(fā)布評論請先 登錄
工業(yè)智能網(wǎng)關(guān):PLC觸摸屏數(shù)據(jù)采集場景覆蓋指南

工業(yè)智能網(wǎng)關(guān)能夠采集PLC觸摸屏嗎


OBOO鷗柏觸摸屏一體查詢機(jī)結(jié)合AI人工智能DeepSeek應(yīng)用開發(fā)文檔

案例解說PLC、觸摸屏及變頻器綜合應(yīng)用
Maxtouch觸摸屏:多場景觸控解決方案

4線電阻式觸摸屏是如何工作的

深度應(yīng)用在智能冰箱觸摸屏中的電容式觸摸芯片-GT301L

觸摸屏與傳統(tǒng)顯示器比較
開發(fā)觸摸屏驅(qū)動板需要考慮哪些因素
電容屏和觸摸屏的區(qū)別
LCD屏和觸摸屏的PCB設(shè)計

評論