大发快乐8_大发快乐8官网

基于Android系统的多点触摸屏(MultiTouchScreen)驱动

时间:2020-01-04 16:20:26 出处:大发快乐8_大发快乐8官网

底层硬件: 

鼠标 键盘 触摸屏等

继续搜索,看一些驱动是怎样设置你你这个bit的: 

set_bit(INPUT_PROP_DIRECT, input_dev->propbit); 

一些一些修改朋友的驱动,在设置input_dev社会形态体的之前 ,添加你你这个属性的设置即可。

在EventHub中去获取你你这个属性值。

应用空间: 

 open(“/dev/input/eventx”)

不难 是是否是都还后能 通过分析Android源码,找到不使用你你这个idc文件的最好的办法呢?

Android源码中搜索 touch.deviceType

内核空间: 

输入子系统设备驱动 

  向输入系统核心注册另两个具体类型的输入设备,检测输入事件的所处,并上报输入事件到输入子系统事件补救层。 

输入子系统核心 

  提供各个输入设备的注册接口,设备驱动上报事件到事件补救层的桥梁。 

输入子系统事件补救层 

  接收设备驱动上报的输入事件,提供应用层访问设备统一的接口(open, read等),将事件通过接口传递到用户空间。

Android官方文档: 

https://source.android.com/devices/input/touch-devices 

touch.deviceType: 

Definition: touch.deviceType = touchScreen | touchPad | pointer | default

通过输入系统的你你这个框架发现,朋友时要做的事情本来我对于不同的输入设备,写出对应的设备驱动,并向输入系统核心注册你你这个输入设备当检测到有输入事件所处,将输入事件上报到输入子系统事件补救层就OK了。

触摸设备的类型:

  在Linux中, 应用层对于输入设备(鼠标、键盘、触摸屏等)的操作无非前会 open、read、write、ioctl,一些调用驱动层的xxx_open、xxx_read、xxx_write、xxx_ioctl去操作具体的硬件输入设备。因为按照传统的思路,每个输入设备都按照你你这个套路写哪几种open、read等,是前会 太过于累赘了。一些一些Linux就定义了一套标准,来标准化哪几种输入设备驱动,你你这个标准就叫做输入子系统。通过你你这个标准,写驱动的人找不到重复的写xxx_open、xxx_read等通用代码,而只用完成各个输入设备不同的要素(注册不同的输入设备, 上报不同的输入事件,操作不同的硬件等)。

Linux输入子系统的社会形态体:

  在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件补救层(Event Handler)组成。其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转换为标准的输入事件,再通过核心层提交给事件补救层;而核心层对下提供了设备驱动层的编程接口,对上又提供了事件补救层的编程接口;而事件补救层就为朋友用户空间的守护进程提供了统一访问设备的接口和驱动层提交来的事件补救。一些一些这使得朋友输入设备的驱动要素找不到用关心对设备文件的操作,本来我要关心对各硬件寄存器的操作和提交的输入事件。下面用图形来描述一下这三者的关系吧!(转) 

去Linux内核中搜索EVIOCGPROP:

怎样让我朋友的触摸屏输入设备通过set_bit设置propbit属性值为INPUT_PROP_DIRECT,当不难 .idc配置文件时,不难 朋友的EventHub.cpp就会通过ioctl调用Linux中evdev.c去获取你你这个属性的值,进行判断,最终给InputReader.cpp中的deviceType赋值为DEVICE_TYPE_TOUCH_SCREEN,从而识别朋友的设备,达到了不需要创建idc配置文件的目的。

首先,对触摸屏数据的下发是采用i2c接口因为spi接口,本例子以i2c接口为例,不难 首不难 熟悉i2c驱动的框架。

经过分析发现,在文件的你你这个地方通过getEventHub获取设备的属性,根据设备属性同样也会更改deviceType的值。

热门

热门标签