[問題] input report 資料會掉??

看板LinuxDev作者 (藍星)時間10年前 (2013/08/30 11:15), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
我使用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值,但卻發現傳超過卻 也不會有什麼問題,請問這些設定是否有效果呢? 感謝! -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.190.7

09/02 01:06, , 1F
用input_report_abs話 若是與前一筆相同就會被略過
09/02 01:06, 1F

09/02 01:07, , 2F
可以使用看看input_report_rel
09/02 01:07, 2F

09/02 01:09, , 3F
這三個問題看一下drivers/input/input.c吧
09/02 01:09, 3F
文章代碼(AID): #1I80urhI (LinuxDev)