永发信息网

input 子系统应该理解到什么层次

答案:1  悬赏:40  手机版
解决时间 2021-04-07 16:39
input 子系统应该理解到什么层次
最佳答案
在linux下,按键、触摸屏、鼠标等都可以利用input接口函数来实现设备驱动。

从上图可知:
输入子系统由三部分构成:
1 驱动
2 输入子系统
3 处理函数
其中2,3都是内核已经完成,我们要完成的就是1驱动
设备用input_dev结构体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过input_event结构体描述),不再需要关心文件操作接口,因为input子系统已经完成了文件操作接口。驱动报告的事件经过InputCore和Eventhandler最终到达用户空间。
Input_dev 结构中比较重要的域有:
Name:名字
Evbit:设备所支持的事件类型
Keybit:按键类型
注册输入设备的函数为:
int input_register_device(struct input_dev *dev)
注销输入设备的函数为:
void input_unregister_device(struct input_dev *dev)
设备所支持的事件类型有:
EV_RST Reset EV_KEY 按键
EV_REL 相对坐标EV_ABS绝对坐标
EV_MSC 其它EV_LED LED
EV_SND 声音EV_REP Repeat
EV_FF 力反馈
并使用set_bit(EV_KEY, button_dev.evbit)告知结构体支持哪种设备类型
用于报告EV_KEY、EV_REL和EV_ABS事件的函数分别为:
void input_report_key(struct input_dev *dev,unsigned int code, int value)
void input_report_rel(struct input_dev *dev,unsigned int code, int value)
void input_report_abs(struct input_dev *dev,unsigned int code, int value)
code:
事件的代码。如果事件的类型是EV_KEY,该代码code为设备键盘代码。代码值0~127为键盘上的按键代码,0x110~0x116为鼠标上按键代码,其中0x110(BTN_LEFT)为鼠标左键,0x111(BTN_RIGHT)为鼠标右键,0x112(BTN_ MIDDLE)为鼠标中键。其它代码含义请参看include/linux/input.h文件
value
事件的值。如果事件的类型是EV_KEY,当按键按下时值为1,松开时值为0。
input_sync()用于事件同步,它告知事件的接收者:驱动已经发出了一个完整的报告。
在中断中,使用input_report_key等函数想用户空间报告,在应用程序中直接读取状态。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
显卡1070ti索泰和技嘉哪个好一点
姓取名辈份旭字男孩,2015年农历二月十二下午
部落冲突从刚升八本到八本满防可以升九本需要
卫生间中,门槛石与挡水石有什么区别
本金8万,存半年,利率是百分之3.05,有多少
怎样由火车运输东西?
柳字去木字可以加什么偏旁
JAVA源文件需要先解释成字节码文件,在编译成
Don’t put your hand out of the car window
今晚2017湖南卫视元宵喜乐会有没有tfboys
比亚迪那些车可以跑滴滴
北京自考有哪些专业,自考最简单最好考最好过
辽宁省教育厅我想知道这个在什么地方
千门万户曈曈日,总把新桃换旧符中桃和符指什
武林门码头到杭州西湖风景名胜区怎么走
推荐资讯
凯荣都国际大酒店-洗手间我想知道这个在什么
单选题获取方便、开发和利用不会给环境带来污
某物体经凸透镜在光屏上得到一个清晰的像,现
求解签关圣帝君灵签第31首
气温零下3度,红薯在地里怕冻吗?
0.888是循环小数吗?
三国杀原来的配音就蛮好的很有意思 为什么要
Do you know who invented tea? It is said t
2012年3月17日,四头鲸鱼在江苏盐城市滨海县
花下两度见君颜 浅草茫茫酣春霖是什么花的种
图漫画及其观点表明①价值判断和价值选择因人
平安保险的待遇怎么样,谁知道安邦保险公司的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?