__set_bit(EV_KEY, inputdev->evbit);/*设置事件类型,对应input_event.type*/__set_bit(EV_REP, inputdev->evbit);/*重复事件*/__set_bit(KEY_0, inputdev->keybit);/*设置哪个按键产生事件,对应input_event.code*/ 3、向内核注册输入设备 int__must_check input_register_device(structinput_dev ...
1staticinlinevoidinput_sync(structinput_dev *dev)2{3input_event(dev, EV_SYN, SYN_REPORT,0);4} 所以就会有第2行那个0000,对应的type就是EV_SYN。 第7列是code,对应我们定义的key_value,我们在初始化input_dev的时候定义的事件code是keybit,值为KEY_0,KEY_0是个宏 #defineKEY_0 11 十进制值为11,...
void input_event(struct input_dev *dev,unsigned int type, unsigned int code, int value) { unsigned long flags; /*调用 is_event_supported()函数检查输入设备是否支持该事件*/ if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags);//调用 spin_...
static inline void input_report_key(struct input_dev *dev, unsigned int code, int value) { input_event(dev, EV_KEY, code, !!value); } static inline void input_report_rel(struct input_dev *dev, unsigned int code, int value) { input_event(dev, EV_REL, code, value); } static inli...
button_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); //分别用来设置设备所产生的事件以及上报的按键值。Struct iput_dev中有两个成员,一个是evbit.一个是keybit.分别用 //表示设备所支持的动作和键值。 error =input_register_device(button_dev); /*注册一个输入设备*/ ...
。不同的事件,其上报事件的API函数不同,我们依次来看一下一些常用的事件上报API函数。 首先是input_event函数,此函数用于上报的事件以及对应的值,函数原型如下: void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) 函数参数和返回值含义: dev:需要上报...
dev:需要上报的input_dev type:上报的事件类型,如EV_KEY code:事件码,比如KEY_0 value:事件值,比如1表示按键按下 还有其他API函数: 2.3上报同步事件 三、input_event结构体 表示所有的输入事件,定义在include/uapi/linux/input.h中,用户程序通过input_event获取到具体的事件和相关值 ...
键盘事件的type字段一般为 EV_KEY (1),每次按键按下、抬起都有一个杂项类型EV_MSC(4),目前没什么用处; code字段取值可能是为1到255,表示各个按键值,定义在定义在input-event-codes.h value字段一般是 1 表示按下,0 表示抬起 3.3 触摸屏事件 触摸屏事件比较复杂,触摸屏协议A类协议、B类协议之分,具体的见之...
通过函数:input_free_device(),释放input_dev内存。 中断服务函数: 当按键按下时,进入中断服务程序,然后根据键值通过函数:input_event()上报事件类型,事件码,事件值。通过函数:input_sync()发出同步信号。 其中: 事件码(code):时间的代码,如果事件的类型是EV_KEY,该代码code为设备键盘代码。代码值0~127为键盘上...
struct input_event{struct timeval time;__u16 type;__u16 code;__s32 value;}; time:该变量用于记录事件产生的时间戳。 type:输入设备的事件类型。系统常用的默认类型有EV_KEY、 EV_REL和EV_ABS, 分别用 于表示按键状态改变事件、相对坐标改变事件及绝对坐标改变事件,特别地, EV_SYN用于分隔事件,无特别意义...