input设备中driver上报和上层读到的不一致
月光宝盒 2012-09-21 09:05:43 DOWN时上报顺序如下:
513 input_report_abs(tp->input, ABS_X, xd);
514 input_report_abs(tp->input, ABS_Y, yd);
521 input_report_abs(tp->input, ABS_PRESSURE,1); EV_ABS, code, value);
522 input_report_key(tp->input, BTN_TOUCH, 1); EV_KEY ,code ,value
523 input_sync(tp->input); EV_SYN, SYN_REPORT, 0);
不是应该完全按照driver中的上报序列,依次读到如下event吗:
ABS_X-->ABS_Y --> ABS_PRESSURE --> BTN_TOUCH-->SYN_REPORT
但是在应用层去读这个input设备的event时为什么会有如下现象,打log发现:
ABS_X--> ABS_PRESSURE --> ABS_Y -->SYN_REPORT
event有些混乱,但使用是没有问题的,打过tp,sensor的log,都有类似的情况。
很是不解,请达人解惑。。。。
上层读取方法:
//waiting for touch
n = select(dev_fd+1, &rfds, NULL, NULL, &timeout);