看板 LinuxDev 關於我們 聯絡資訊
我使用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
explora26:用input_report_abs話 若是與前一筆相同就會被略過 09/02 01:06
explora26:可以使用看看input_report_rel 09/02 01:07
explora26:這三個問題看一下drivers/input/input.c吧 09/02 01:09