1.調(diào)試新的觸摸屏
1.1 確定設(shè)備信息
輸入設(shè)備的設(shè)備節(jié)點名為/dev/input/eventX(也可能是/dev/eventX, X 表示 0、 1、 2 等數(shù)字)。查看設(shè)備節(jié)點, 可以執(zhí)行以下命令:
ls /dev/input/* -l
可以看到類似下面的信息:
怎么知道這些設(shè)備節(jié)點對應什么硬件呢?可以在板子上執(zhí)行以下命令:
cat /proc/bus/input/devices
這條指令的含義就是獲取與event對應的相關(guān)設(shè)備信息,可以看到類似以下的結(jié)果:
1.2 使用命令讀取數(shù)據(jù)
調(diào)試觸摸屏時, 執(zhí)行下面的命令, 然后操作觸摸屏設(shè)備即可讀出數(shù)據(jù):
hexdump /dev/input/event1
在開發(fā)板上執(zhí)行上述命令之后, 點擊觸摸屏, 就會打印以下信息:
type:type 用于描述發(fā)生了哪一種類型的事件(對事件的分類),Linux 系統(tǒng)所支持的輸入事件類型如下所示:
#define EV_SYN 0x00 //同步類事件,用于同步事件 #define EV_KEY 0x01 //按鍵類事件 #define EV_REL 0x02 //相對位移類事件(譬如鼠標) #define EV_ABS 0x03 //絕對位移類事件(譬如觸摸屏) #define EV_MSC 0x04 //其它雜類事件 .....
code:code 表示該類事件中的哪一個具體事件,觸摸點的信息通過一系列的 ABS_MT 事件(有的資料也叫消息)上報給 linux 內(nèi)核,只有ABS_MT 事件是用于多點觸摸
#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ #define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ ......
value:內(nèi)核每次上報事件都會向應用層發(fā)送一個數(shù)據(jù) value, 對 value 值的解釋隨著 code 的變化而變化。
上圖中第三行的type 為3 ,對應EV_ABS ,即絕對位移類事件;code為0x39 ,對應ABS_MT_TRACKING_ID , value=0x51=81 說明給SLOT0分配的ID為81 。
上圖中的第六行type為3,對應EV_ABS ,即絕對位移類事件;code為0x36,對應ABS_MT_POSITION_Y,即上報觸摸點 的 Y軸 坐標信息。value=0x0145=325,說明觸摸點 Y 軸坐標為 325。
-
觸摸控制
+關(guān)注
關(guān)注
0文章
35瀏覽量
19179 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97456 -
全志T113
+關(guān)注
關(guān)注
0文章
54瀏覽量
264
發(fā)布評論請先 登錄
相關(guān)推薦
評論