Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439062
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: LINUX

2013-10-14 14:42:45

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结构体,应用程序根据这些信息
进行控制。

阅读(4292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~