本发明涉及操作系统领域,尤其涉及一种配置触摸屏的方法、模块及操作系统。
背景技术:
目前市场上android设备中,对于使用外界显示器和触摸屏的android设备而言,需要适配多种多样的触摸屏,而每增加一种新的接口或者协议的触摸屏,就有可能需要在android的linux内核中增加一种新的驱动。
对于长期使用外接显示器和触摸屏的android设备而言,每适配一个新的触摸屏,则需要对androidlinux内核进行一次修改来增加新的驱动,而设备也因此要进行内核固件升级,过程非常复杂。
技术实现要素:
本发明实施例提供一种配置触摸屏的方法、模块及操作系统,以实现在不新增任何触摸屏协议驱动的情况下,适配多种协议的触摸屏。
一方面,本实施例提供一种配置触摸屏的方法,包括:
获取触摸信息编码;
将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;
将该触摸事件信息写入虚拟输入uinput设备;
根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作。
可选的,所述获取触摸信息编码包括:
轮询多个不同协议类型的设备接口;
当发现接入触摸输入设备的接口时,从该接入触摸输入设备的接口获取所述触摸信息编码。
可选的,所述将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息之前还包括:
读取触摸屏协议配置文件;
该触摸屏协议配置文件中包括与所述多个不同协议类型的设备接口对应的多个触摸屏配置协议。
可选的,所述根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作之前,还包括:
读取输入配置文件;该输入配置文件用于反馈触摸事件信息。
可选的,当发现接入触摸输入设备的接口,却无法从该接入触摸输入设备的接口获取所述触摸信息编码时,识别该触摸输入设备,并在所述读取触摸屏配置协议文件中添加匹配该触摸输入设备的触摸配置协议。
另一方面,本实施例提供一种配置触摸屏的模块,包括:
获取单元,用于获取触摸信息编码;
协议转换单元,用于将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;
写入单元,用于将该触摸事件信息写入虚拟输入uinput设备;
反馈单元,用于根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作。
可选的,所述获取单元包括:
轮询子单元,用于轮询多个不同协议类型的设备接口;
获取子单元,用于当发现接入触摸输入设备的接口时,从该接入触摸输入设备的接口获取所述触摸信息编码。
可选的,还包括协议读取单元,与所述协议转换单元连接,用于读取触摸屏协议配置文件;该触摸屏协议配置文件中包括与所述多个不同协议类型的设备接口对应的多个触摸屏配置协议。
可选的,还包括配置读取单元,与所述反馈单元连接,用于读取输入配置文件;该输入配置文件用于反馈触摸事件信息。
另一方面,本发明实施例提供一种操作系统,包括以上所述的配置触摸屏的模块。
上述技术方案具有如下有益效果:本方案包括:获取触摸信息编码;将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;将该触摸事件信息写入虚拟输入uinput设备;根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作;通过以上方法,实现了在不新增任何触摸屏协议驱动的情况下,也可以适配多种协议的触摸屏的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的配置触摸屏的方法流程图;
图2是根据本发明实施例的配置触摸屏的方法中,步骤101的流程图;
图3是根据本发明实施例的配置触摸屏的模块结构框图;
图4是根据本发明实施例的配置触摸屏的模块的获取单元301的结构框图;
图5是根据本发明实施例一种用于android系统的配置触摸屏的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本专利提出了一种通过在android系统中增加一个系统服务的方式,通过该服务从uart,i2c或usb-hid设备上读取触摸屏发送的编码,并根据配置文件来解析编码为androidlinux输入事件,最终将该事件通过linuxuinput设备写入以使的android系统可以响应触摸屏事件进行操作的方法;这种方法既不需要增加新的触摸屏协议驱动,又可以同时适配多种协议的触摸屏。
以下将通过具体实例对本发明进行进一步说明:
为实现上述目的,本实施例提供一种配置触摸屏的方法,如图1所示,包括:
步骤101,获取触摸信息编码;
步骤102,将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;
步骤103,将该触摸事件信息写入虚拟输入uinput设备;
步骤104,根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作。
可选的,如图2所示,所述步骤101包括:
步骤1011,轮询多个不同协议类型的设备接口;
步骤1012,当发现接入触摸输入设备的接口时,从该接入触摸输入设备的接口获取所述触摸信息编码。
常见的触摸屏有3种硬件接口连接,uart(universalasynchronousreceiver/transmitter,通用异步收发传输器,常用于串口通讯接口),usb-hid(usb-humaninterfacedevice,usb人机交互设备)和i2c(双向二线制同步串行总线);而除了多样性的硬件接口之外,在相同的硬件接口上,不同的触摸屏也有很多不同的协议。
可选的,步骤102之前还包括:
读取触摸屏协议配置文件;
该触摸屏协议配置文件中包括与所述多个不同协议类型的设备接口对应的多个触摸屏配置协议。
例如,本实施例中该协议配置文件中至少包括uart、usb-hid以及i2c三种接口对应的触摸屏协议。
可选的,步骤104之前,还包括:
读取输入配置文件;该输入配置文件用于反馈触摸事件信息。
现有技术中,针对androids设备中增加一种新协议的触摸屏,以usb-hid类型的触摸屏为例,就需要在android的linux内核源代码drivers/hid/hid-multitouch中增加新的触摸屏设备,在协议复杂的情况下则需要在drivers/hid/中增加专门的协议解析驱动源代码;而相对usb-hid触摸屏而言,uart和i2c的触摸屏驱动还要更加复杂。然而在本实施例中,触摸屏协议配置文件中包括与所述多个不同协议类型的设备接口对应的多个触摸屏配置协议,即使没有相应的协议,也只需要在触摸屏协议配置文件中增加一个相应的协议,即:
可选的,当发现接入触摸输入设备的接口,却无法从该接入触摸输入设备的接口获取所述触摸信息编码时,识别该触摸输入设备,并在所述读取触摸屏配置协议文件中添加匹配该触摸输入设备的触摸配置协议。
这里需要再次说明的是,除了多样性的硬件接口之外,在相同的硬件接口上,不同的触摸屏也有很多不同的协议。因而,上述添加的匹配协议是与接入的接口对应的,且匹配该触摸输入设备的触摸配置协议。另一方面,本实施例提供一种配置触摸屏的模块,如图3所示,为本例配置触摸屏的模块的结构框图,包括:
获取单元301,用于获取触摸信息编码;
协议转换单元302,用于将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;
写入单元303,用于将该触摸事件信息写入虚拟输入uinput设备;
反馈单元304,用于根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作。
可选的,如图4所示,为所述获取单元301包括:
轮询子单元3011,用于轮询多个不同协议类型的设备接口;
获取子单元3012,用于当发现接入触摸输入设备的接口时,从该接入触摸输入设备的接口获取所述触摸信息编码。
可选的,还包括协议读取单元,与所述协议转换单元连接,用于读取触摸屏协议配置文件;该触摸屏协议配置文件中包括与所述多个不同协议类型的设备接口对应的多个触摸屏配置协议。
可选的,还包括配置读取单元,与所述反馈单元连接,用于读取输入配置文件;该输入配置文件用于反馈触摸事件信息。
另一方面,本发明实施例提供一种操作系统,包括以上所述的配置触摸屏的模块。
为了更清楚的阐释本发明,以下通过一具体实例进行说明。
图5是本发明实施例一种用于android系统的配置触摸屏的方法的流程图。如图所示:
在androidsystem中增加了两个文件:
1.在android设备中的system/etc/下加入mytouchscreen.config,可以存储多个不同接口、不同协议的触摸屏协议配置文件;
2.在android设备中system/usr/idc下加入mytouchscreen.idc文件,该位置为存放android输入配置文件,将此文件的内容修改为android触摸屏配置;
另外,建立一个新的linuxuinput设备,并命名为mytouchscreen与mytouchscreen.idc输入配置文件匹配,这样android系统就会根据新增的输入配置文件和uinput设备,识别到系统加入了一个新的触摸屏设备;
如图5所示,跟实施例示例性的示出了3个设备接口:uart、i2c和usb-hid。
该配置方法的流程为:
通过该3个接口,根据mytouchscreen.config协议配置文件,逐个接口按照协议寻找触摸屏设备;当找到匹配的设备时,则从该接口不断地获取触摸屏输入信息的编码,并将该编码根据配置文件的协议转换为linuxuinput触摸事件信息并写入本服务创建的uinput设备内。
android系统的触摸屏输入事件可以自动识别linuxuinput输入的事件信息,并响应该信息进行对应的屏幕操作。
如果需要适配新的触摸屏,则只需要在/system/etc/mytouchscreen.config配置文件中增加新的接口协议即可。
上述技术方案具有如下有益效果:本方案包括:获取触摸信息编码;将该触摸信息编码根据触摸屏配置协议转换为触摸事件信息;将该触摸事件信息写入虚拟输入uinput设备;根据所述写入uinput设备的触摸事件信息反馈对应的屏幕操作;通过以上方法,实现了在不新增任何触摸屏协议驱动的情况下,也可以适配多种协议的触摸屏的技术效果。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。