1:首先input_allocate_device()申请一个input_dev结构体
2:struct input_dev{
const char *name; 设置input设备的名称
unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; 设置input事件的类型,基于数组bitmap表
unsigned long keybit[BITS_TO_LONGS(KEY_CNT)]; 设置这个类型的行为,基于数组的bitmap表
};
初始化struct input_dev结构体,input_register_device(),如果要删掉则使用input_unregister_device()
并且初始化好中断处理函数
3:在中断处理函数里进行上传event时间,使用input_report_key(); //进行提交数据
input_sync();//进行同步,说明一个时间已经完成
4:观察/proc/bus/input/device查看设备对应的event文件
找到event文件之后,通过open和read函数的到input_event结构体
struct input_event {
struct timeval time; 时间爱你
__u16 type; 大的类型,是key还是别的
__u16 code; 小类型,key是up还是down
__s32 value; 这个时间对应的值
};
然后根据这些行为来写应用程序。
总结:
首先分配input_device结构体,然后初始化,最后进行注册。在终端处理函数里使用input_report_key进行上报数据,上报结束后
产生input_sync同步表示一个时间完成。
用户可以通过/proc/bus/input/device里的信息找到对应的event设备,然后将里面的信息转成input_event结构体,应用程序根据这些信息
进行控制。
阅读(4282) | 评论(0) | 转发(0) |