我使用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值,但却发现传超过却
也不会有什么问题,请问这些设定是否有效果呢?
感谢!