[问题] input report 资料会掉??

楼主: bluestar8783 (蓝星)   2013-08-30 11:14:58
我使用input device的机制来传送资料到上层的daemon程式
大概是这样写
data->input_dev_compass = input_allocate_device();
set_bit(EV_ABS, data->input_dev_compass->evbit);
input_set_abs_params(data->input_dev_compass, ABS_HAT0X,-3000,3000,0,0);
input_set_abs_params(data->input_dev_compass, ABS_HAT0Y,-3000,3000,0,0);
input_set_abs_params(data->input_dev_compass, ABS_BRAKE,-3000,3000,0,0);
input_set_abs_params(data->input_dev_compass, ABS_WHEEL,0,5,0,0);
data->input_dev_compass->name = "mycompass";
input_register_device(data->input_dev_compass);
input_report_abs(data->input_dev_compass, ABS_HAT0X, nm.x);
input_report_abs(data->input_dev_compass, ABS_HAT0Y, nm.y);
input_report_abs(data->input_dev_compass, ABS_BRAKE, nm.z);
input_report_abs(data->input_dev_compass, ABS_WHEEL, nm.status);
input_event(data->input_dev_compass, EV_SYN, SYN_REPORT, 1);
input_sync(data->input_dev_compass);
目前会发现传送10笔,会有很大的机率会掉3~4笔
想请问(1) input subsystem是否原本就有掉资料的可能性呢?
(2) API中的参数:code,能够使用自己所定义的,而不是内建的呢?
(例如将ABS_HAT0X改为ABS_MYDATA1,或KEY_1改为KEY_MYDATA1)
(3) 用input_set_abs_params设定了max和min值,但却发现传超过却
也不会有什么问题,请问这些设定是否有效果呢?
感谢!
作者: explora26   2013-09-02 01:06:00
用input_report_abs话 若是与前一笔相同就会被略过可以使用看看input_report_rel这三个问题看一下drivers/input/input.c吧

Links booklink

Contact Us: admin [ a t ] ucptt.com