个人技术分享

触摸事件查询

getevent -lrt

在这里插入图片描述
以上数据格式:时间,具体节点文件名,事件类型,事件值

input问题排查,如果数据能打印出来,则是framework 问题,如果没有数据打印出来,则要看驱动问题。

只监听某一个节点
在这里插入图片描述
代码如下

  nfds = 1;
614      ufds = calloc(1, sizeof(ufds[0]));
615      ufds[0].fd = inotify_init();
616      ufds[0].events = POLLIN;
617      if(device) {
618          if(!print_flags_set)
619              print_flags |= PRINT_DEVICE_ERRORS;
620          res = open_device(device, print_flags);
621          if(res < 0) {
622              return 1;
623          }

多指协议

1.EV_SYN
0004/0005:代表一个事件的开始
SYN_REPORT:代表一个事件的结束

2.EV_ABS
ABS_MT_SLOT ,其value 代表手指id,可以代表不同的手指

ABS_MT_TRACKING_ID
每个slot与一个id对应,一个非负数表一此接触,-1表示接触结束。

ABS_MT_POSITION_X , ABS_MT_POSITION_Y
相对于屏幕中心的x,y坐标。

3。EV_KEY
BTN_TOUCH
触碰按键,其值是DOWN或者UP。