[問題] 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