触摸屏分屏方法、系统、电子设备及可读存储介质与流程

文档序号:31540485发布日期:2022-09-16 23:44阅读:963来源:国知局
触摸屏分屏方法、系统、电子设备及可读存储介质与流程

1.本发明涉及触摸屏控制技术领域,特别是涉及一种触摸屏分屏方法、系统、电子设备及可读存储介质。


背景技术:

2.随着智能网联汽车智能座舱的发展,多显示屏已经成为一个主流趋势,相对于以前的单显示屏的导航或者车载娱乐功能;多屏幕显示不再是驾驶员的独享屏幕,副驾驶也可以有自己娱乐屏幕,后排乘客也可以有自己的娱乐屏幕,让乘车变得不再枯燥,乘客也可以通过车辆访问网络,观看自己喜爱的节目。另外车辆传统的控制按键也可以放在显示屏上处理,可以借助多屏显示的友好界面使汽车更具与吸引力,车内多屏显示互联互通科技感十足,更容易受到年轻一代青睐,已经成为汽车的主要卖点之一。
3.从现有汽车上使用的显示屏来看,显示屏必须是支持触摸的,可以手动操作界面,是一个集成图像显示,触摸功能,按键功能的复合设备。以上汽智己汽车前排显示屏为例,通常是一个整体长条形状的大屏幕,集成了汽车仪表,地图导航,车载娱乐功能于一体,这样就带来一个问题,一个屏幕需要显示多个界面,各个界面需要独立操控并且互不影响。图形界面可以通过软件合成或硬件图层技术加以处理,技术方案成熟且多样,但是物理触摸屏受现有技术条件限制,没有成熟的软件方案或硬件方案将触摸屏一分为多,原因是一个触摸屏物理上是一个整体,上报的触摸点信息也是按照实际尺寸上报,如果强行从物理上或者固件上进行划分,等同于使用多个物理触摸屏,会增加硬件成本,触摸坐标信息划分不能灵活配置。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种触摸屏分屏方法、系统、电子设备及可读存储介质,以解决上述技术问题。
5.为实现上述目的及其他相关目的,本发明提供一种触摸屏分屏方法,包括:
6.获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率;
7.获取与所述物理触摸屏名称相对应的物理触摸屏设备节点;
8.根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数;
9.获取所述物理触摸屏设备节点上报的触摸数据;
10.根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
11.在本发明的一可选实施例中,所述获取触摸屏分屏参数,包括:
12.获取预先配置的触摸屏分屏配置文件,所述触摸屏分屏配置文件中配置有触摸屏分屏参数;
13.对所述触摸屏分屏配置文件进行解析,以获取所述触摸屏分屏参数。
14.在本发明的一可选实施例中,所述获取与所述物理触摸屏名称相对应的物理触摸屏设备节点,包括:
15.读取物理设备节点信息,并与所述触摸屏分屏参数中的所述物理触摸屏名称进行匹配,以获取与所述物理触摸屏名称相对应的物理设备节点,作为所述物理触摸屏设备节点。
16.在本发明的一可选实施例中,所述根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,包括:
17.在用户空间使用内核虚拟输入设备功能标准接口创建虚拟设备节点。
18.在本发明的一可选实施例中,所述获取所述物理触摸屏设备节点上报的触摸数据包括:使用监控函数来获取所述物理触摸屏设备节点上报的触摸数据,所述监控函数包括poll函数或select函数。
19.在本发明的一可选实施例中,所述触摸数据包括触摸事件及对应的触摸点坐标;
20.所述根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,包括:
21.根据所述触摸数据的触摸点坐标、触摸事件及各所述虚拟触摸屏区间来对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点。
22.在本发明的一可选实施例中,所述根据所述触摸数据的触摸点坐标、触摸事件及各所述虚拟触摸屏区间范围来对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,包括:
23.根据各所述虚拟触摸屏区间范围及所述触摸数据的触摸点坐标来确定所述触摸数据对应的所述虚拟触摸屏;
24.将所述触摸数据的触摸点坐标转换为所述触摸数据对应的所述虚拟触摸屏上的触摸点相对坐标;
25.将所述触摸数据中的触摸事件及对应的触摸点相对坐标,转发给所述触摸数据对应的所述虚拟触摸屏的所述虚拟设备节点。
26.在本发明的一可选实施例中,所述根据所述触摸数据的触摸点坐标、触摸事件及各所述虚拟触摸屏区间范围来对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,还包括:
27.当所述触摸数据的所对应的手指动作类型为滑动动作,且滑动动作跨越相邻的所述虚拟触摸屏之间的虚拟分界线时,离开所述虚拟分界线时,向离开前的所述虚拟触摸屏的所述虚拟设备节点上报手指抬起事件及对应的触摸点相对坐标,向进入的所述虚拟触摸屏的所述虚拟设备节点上报手指按下事件及对应的触摸点相对坐标。
28.在本发明的一可选实施例中,在获取所述物理触摸屏设备节点上报的触摸数据之前,所述触摸屏分屏方法还包括:屏蔽所述物理触摸屏设备节点与上层应用之间的数据交流。
29.在本发明的一可选实施例中,在获取所述物理触摸屏设备节点上报的触摸数据之
前,所述触摸屏分屏方法还包括:建立所述虚拟触摸屏节点与显示界面之间的一一对应关系。
30.在本发明的一可选实施例中,所述触摸屏分屏方法还包括,将所述虚拟设备节点上报的拆分后的所述触摸数据与所述虚拟设备节点对应的所述显示界面的坐标进行融合,以实现所述显示界面的坐标与所述虚拟触摸屏的坐标一一对应。
31.为实现上述目的及其他相关目的,本发明还提供一种触摸屏分屏装置,包括:
32.分屏参数获取模块,用于获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率;
33.设备节点获取模块,用于获取与所述物理触摸屏名称相对应的物理触摸屏设备节点;
34.虚拟节点创建模块,用于根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数;
35.触摸数据监测模块,用于获取所述物理触摸屏设备节点上报的触摸数据;
36.触摸数据拆分模块,用于根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
37.为实现上述目的及其他相关目的,本发明还提供一种电子设备,包括:
38.一个或多个处理器;
39.存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述的方法。
40.为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述的方法。
41.本发明的有益效果:
42.本发明通过获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率,并根据所述物理触摸名称获取与所述物理触摸屏名称相对应的物理触摸屏设备节点,接着根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数,通过监控所述物理触摸屏设备节点上报的触摸数据,根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。利用本发明可以在软件层面实现对物理触摸屏拆分,能够使用一块整体的触摸显示幕显示多个界面功能,并且每个界面可以单独触控,不仅减少了结构件,同时还不会增加硬件成本。另外,利用本发明,可以使用了一块整体的显示屏幕替代多块显示屏幕,减少了硬件设计工作量,加快项目周期,芯片的使用量也会减少,降低了量产时芯片断供的风险。
43.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
45.图1为本技术的一示例性实施例示出的主控电脑的框图。
46.图2为本技术的一示例性实施例的触摸屏分屏方法的流程示意图。
47.图3为本技术的一示例性实施例的触摸屏分屏方法的技术方案的设计框图。
48.图4是本技术的一示例性实施例示出的触摸屏拆分示意图。
49.图5是本技术的一示例性实施例示出的触摸屏分屏装置的框图。
50.图6示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
51.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
52.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
53.在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
54.本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
55.除非另有说明,术语“多个”表示两个或两个以上。
56.本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
57.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
58.首先需要说明的是,触摸屏(touch panel)又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。故而触摸屏可广泛应用于手机、平板电脑、车载电脑的显示屏。
59.触摸屏通常由面板lens(面板)、tp sensor(接触性传感器)、fpc(柔性线路板)、ic(触控芯片)和其他辅料组成,现在汽车使用多是电容屏,电容屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂一层纳米铟锡金属氧化物,利用人体电流感应现象,在手指和屏幕之间形成一个电容,手指触摸时吸走一个微小电流,这个电流会导致触摸板上4个电极上发生电流流动,触控芯片通过计算这4个电流的比例就可以计算出触摸点的坐标。
60.图1是本技术的一示例性实施例示出的车载系统的示意图。所述车载系统包括主控电脑101和触控屏102。其中,所述主控电脑101是一种高科技的压缩技术集成化的车用多媒体娱乐信息中心,其主要功能包括汽车仪表、车载娱乐功能,地图导航,对汽车信息和故障专业诊断,移动性的办公与行业应用等;所述触控屏102作为人机交互界面,所述触控屏102与所述主控电脑101相连,所述触控屏102可以包括多个用于呈现主控电脑101的主要功能的显示界面,所述触控屏102可以将获取的触摸信号等其他信号发送给所述主控电脑101,并能接受所述主控电脑101发来的命令并加以执行,并且所述触控屏102能够获取用户在其上的触摸操作,并根据预先设定的程式驱动相应的连接装置,所述触控屏102既具有输入功能,还具有显示功能。
61.在现有的汽车领域,所述主控电脑101的主流soc(system on chip,系统级芯片)都是支持多显示屏的,一个显示屏对应一个系统界面。为了使车内设计更加简介美观,科技感十足,市场上更受欢迎,通常可以将多个显示接口的数据投射到一个显示屏上合成,使用一个整体显示屏,这样可以使车内设计更加简介美观,科技感十足,市场上更受欢迎,这既是目前市场主流设计方案,也有成本的考量,多几个屏幕意味着显示屏上使用的mcu芯片数量也是按照倍数增加,并且辅助芯片如电源芯片,加串解串芯片也是按照倍数增加,在国产芯片不能完全自主的当下无疑是一个优选方案。
62.当采用一个整体触摸屏102作为显示屏来实现多显示界面显示时,需要对触控屏102进行拆分,拆分后各个显示界面需要独立操控并且互不影响。但是触摸屏102通常是单个体形式,如从硬件上拆分,等同于多个触摸屏102,考虑到实际每个触摸屏102都需要单独的触控芯片处理数据,硬件拆分后需要多个触控芯片,这无疑会增加成本。从触摸屏102固件来实现分屏,算法更加复杂,故障率更高,需要触控芯片算力更强,成本也必然增加,每次改变分屏配置都需要重新烧录固件,不够灵活。
63.基于上述情况,本公开实施例公开一种基于软件触摸屏分屏方案,分屏个数可灵活配置。其中,图2示出了本技术的一示例性实施例的触摸屏分屏方法的流程示意图。
64.结合图2所示,本公开实施例的触摸屏分屏方法,至少包括:
65.步骤s210,获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率;
66.步骤s220,根据所述物理触摸名称获取与所述物理触摸屏名称相对应的物理触摸屏设备节点;
67.步骤s230,根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数;
68.步骤s240,监控所述物理触摸屏设备节点上报的触摸数据;
69.步骤s250,根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则
对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
70.采用本公开实施例提供的触摸屏分屏方法,通过获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率,并根据所述物理触摸名称获取与所述物理触摸屏名称相对应的物理触摸屏设备节点,接着根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数,通过监控所述物理触摸屏设备节点上报的触摸数据,根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。由于可以在软件层面实现对物理触摸屏拆分,能够使用一块整体的触摸显示幕显示多个界面功能,并且每个界面可以单独触控,不仅减少了结构件,同时还不会增加硬件成本。另外,由于可以使用了一块整体的显示屏幕替代多块显示屏幕,减少了硬件设计工作量,加快项目周期,芯片的使用量也会减少,降低了量产时芯片断供的风险。当将具有本公开实施例的触摸屏分屏功能的显示屏应用于车辆中时,由于可以减少结构件,使车内设计简洁大方,加上酷炫的界面设计可以增加汽车的卖点。
71.下面将结合附图2和3来详细介绍各步骤的实现过程:
72.如图3所示,在本实施例中,所述触摸屏分屏方案的核心代码命名为touch_hub,在用户空间使用c语言编写,核心代码touch_hub跟开源代码weston有部分交集,跟weston交集只涉及显示屏坐标和触摸屏坐标的融合,不涉及触摸分屏核心代码。
73.touch设备(物理触摸屏)供应商驱动代码基于目前主流linux内核input子系统实现,触摸屏驱动使用字符设备驱动框架实现,i2c总线进行数据读写,触摸屏硬件接口通常有5个引脚,vcc,int,rst,sda,scl,gnd。物理触摸屏驱动正常加载后会在内核空间生成设备节点/dev/input/eventx(图3中的物理设备节点),其中x代表数字,例如/dev/input/event0。
74.touch_hub核心代码编译后生成touch_hub可执行文件,需在系统中创建一个新的touch_hub.service,在系统开机时负责运行可执行文件touch_hub。其启动时序应该晚于触摸屏驱动模块加载时间,通常启动时将依赖关系放在systemd-modules-load.service后即可。debug工具可使用系统自带getevent,或者使用开源代码用交叉编译工具生成开发板可执行的getevent命令。
75.首先,执行步骤s210,获取触摸屏分屏参数,所述触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率。
76.所述触摸屏分屏参数例如可以是根据实际应用场景中的项目需求提前配置在触摸屏分屏配置文件(见图3中的触摸屏分屏配置文件tp_cfg.ini),该触摸屏分屏配置文件中需要配置有分屏所需的触摸屏分屏参数,所述获取触摸屏分屏参数例如可以包括可兼容的物理触摸屏名称(也称为触摸屏厂商设备驱动名)、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率等参数,所述触摸屏分屏配置文件中的触摸屏分屏参数可根据项目需求进行修改调整,其中,可兼容的物理触摸屏名称为一个或者多个。
77.需要获取触摸屏分屏参数时,可以从存储位置获取触摸屏分屏配置文件,并在用户空间对所述触摸屏分屏配置文件进行解析,以获取并缓存触摸屏分屏参数。
78.需要说明的是,所述物理触摸屏为支持多点触控的触摸屏。
79.作为示例,读取所述触摸屏分屏配置文件tp_cfg.ini,信息内容如下:
80.[stp]//标题
[0081]
//input[标号]="可兼容的物理触摸屏名称(触摸屏厂商设备驱动名)"@"屏幕[x]分辨率x[y]分辨率"空格[触摸屏拆分个数]
[0082]
input0=hi-max@2400x720 2;
[0083]
//output[标号]="需要拆分的物理触摸屏名称"@"屏幕[x]分辨率x[y]分辨率"
[0084]
output0=hi-max@1200x720;
[0085]
output1=hi-max@1200x720;
[0086]
其中,在该触摸屏分屏配置文件tp_cfg.ini中,可兼容的物理触摸屏名称为hi-max,其中,物理触摸屏hi-max的屏幕分辨率为2400x720,触摸屏拆分个数为2,也即物理触摸屏hi-max需要拆分成两个虚拟触摸屏,其中一个虚拟触摸屏的屏幕分辨率为1200x720,另一个虚拟触摸屏的屏幕分辨率为1200x720。
[0087]
当对触摸屏分屏配置文件tp_cfg.ini进行解析后,就可以获取上述触摸屏分屏配置文件tp_cfg.ini中的触摸屏分屏参数:物理触摸屏名称:hi-max;触摸屏拆分个数:2;拆分后各虚拟触摸屏的分辨率:hi-max@1200x720,hi-max@1200x720。
[0088]
接着,执行步骤s220,根据所述物理触摸名称获取与所述物理触摸屏名称相对应的物理触摸屏设备节点。
[0089]
在本实施例中,根据所述触摸屏分屏参数中所述物理触摸名称这个参数来获取与所述物理触摸屏名称相对应的物理触摸屏设备节点时,可以先读取内核空间物理设备节点信息/dev/input/eventx,接着与所述触摸屏分屏参数中的所述物理触摸屏名称进行匹配,以获取与所述物理触摸屏名称相对应的物理设备节点,作为所述物理触摸屏设备节点。
[0090]
接着,执行步骤s230,根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数。
[0091]
获取到与所述物理触摸屏名称相对应的物理触摸屏设备节点后,需要在用户空间创建虚拟设备节点,虚拟设备节点的个数由触摸屏分屏配置文件中已定义的触摸屏拆分个数决定,虚拟设备节点要设置有触摸屏属性,否则其上报的数据无法被获取,这样一个实际的物理触摸屏可以对应多个虚拟触摸屏,实现触摸屏软件意义上的拆分。
[0092]
作为示例,可以使用内核uinput(虚拟输入设备)功能标准接口实现在用户空间创建虚拟设备节点(可表示为/dev/input/vio_eventx),例如图3中的虚拟设备节点0(可表示为/dev/input/vio_event0)、虚拟设备节点1(可表示为/dev/input/vio_event1)、虚拟设备节点2(可表示为/dev/input/vio_event2)。
[0093]
接着,执行步骤s240,获取所述物理触摸屏设备节点上报的触摸数据。
[0094]
物理触摸屏在采集到触摸信息时,会向驱动层发出中断信号,驱动层接收触摸信息,按照物理触摸屏对应的事件形式进行封装,作为触摸数据,并利用物理触摸屏对应的接口(也即物理触摸屏设备节点)上报该触摸数据给用户空间。
[0095]
以用手指(也可以是其他触摸头)触摸物理触摸屏设备为例,驱动层的接收到的触摸信息,可以按照物理触摸屏设备节点的id、手指个数、手指编号及坐标信息换划分为,touch_frame事件,touch_cancel事件,touch_down事件,touch_up事件,touch_motion事件等不同的触摸事件,分别对应手指按下时数据帧数,触摸取消,手指按下,手指抬起,手指按下并且在滑动状态,将触摸事件与触摸点坐标作为触摸数据上报给用户空间。也即所述触摸数据至少包括触摸事件及触摸点坐标等信息。
[0096]
具体地,为了获取所述物理触摸屏设备节点上报的触摸数据,可通过使用监控函数来获取所述物理触摸屏设备节点上报的触摸数据,所述监控函数例如可以采用poll函数或select函数,譬如poll函数。
[0097]
需要说明的是,在使用监控函数来获取所述物理触摸屏设备节点上报的触摸数据之前,需要建立所述虚拟触摸屏节点与显示界面之间的对应关系,屏蔽所述物理触摸屏设备节点与用户空间中的上层应用之间的数据交流,比避免与虚拟触摸屏的虚拟设备节点上报的触摸数据发生冲突。
[0098]
作为示例,可通过编写配置设备管理规则(下文简称udev.rules),建立虚拟触摸屏和显示界面(图3中的显示界面1、显示界面2、显示界面3)的对应关系,通常是将显示界面id和虚拟触摸屏id一一对应。
[0099]
在本实施例中,应用层是由weston.service做图形处理服务,简称weston。故而可通过解除weston对实际物理触摸屏设备数据监控来屏蔽所述物理触摸屏设备节点与用户空间中的上层应用之间的数据交流,使物理触摸屏设备节点的数据走touch_hub。为了使物理触摸屏设备节点的数据走touch_hub,需要通过udev.rules屏蔽weston和物理触摸屏设备节点的数据交流,该步骤依赖linux系统服务systemd-udev-trigger.service,将物理触摸屏设备节点和虚拟设备节点信息填写到udev.rules中,可以在weston侧屏蔽获取touch数据源。
[0100]
udev.rules规则的配置文件内容如下:
[0101]
//wl_output为项目初期约定显示界面名字,也是按照物理端口命名,wl_input对应着触摸屏设备节点标号。这两个变量用来绑定显示界面和触摸屏的数据,在weston中解析;
[0102]
//物理设备配置参数,touch通常挂载在i2c总线下,由固定的设备地址,wl_outputwl_input此处配置空,表示屏蔽该设备
[0103]
action=="add",kernel=="event*",subsystem=="i2c",devpath=="设备路径",wl_output="",wl_input=;
[0104]
//虚拟设备节点配置参数,依靠名字匹配,名字固定不变,序号依次累加
[0105]
action=="add",subsystem=="i2c",name=="vio_event0",wl_output="dsi0",wl_input=0;
[0106]
action=="add",subsystem=="i2c",name=="vio_event1",wl_output="dsi1",wl_input=1。
[0107]
最后,执行步骤s250,根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
[0108]
在本实施例中,所述触摸数据包括触摸事件及对应的触摸点坐标。在根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点时,根据所述触摸数据的触摸点坐标、触摸事件及各所述虚拟触摸屏区间来对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点。
[0109]
具体地,根据所述触摸数据的触摸点坐标、触摸事件及各所述虚拟触摸屏区间范围来对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点时,首先根据各所述虚拟触摸屏区间范围及所述触摸数据的触摸点坐标来确定所述触摸数据对应的所述虚拟触摸屏;接着,将所述触摸数据的触摸点坐标转换为所述触摸数据对应的所述虚拟触摸屏上的触摸点相对坐标;最后,将所述触摸数据中的触摸事件及对应的触摸点相对坐标,转发给所述触摸数据对应的所述虚拟触摸屏的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
[0110]
需要说明的是,当所述触摸数据的所对应的手指动作类型为滑动动作,且滑动动作只发生在一个所述虚拟触摸屏内(也即滑动动作不跨越虚拟边界线),或者所述触摸数据的所对应的手指动作类型为点击动作时,只需将所述触摸数据中的触摸点坐标转换为对应的虚拟触摸屏中的相对坐标后,与所述触摸数据中的触摸事件一起发给对应的虚拟触摸屏的虚拟设备节点,作为虚拟设备节点的触摸数据既可。但当所述触摸数据的所对应的手指动作类型为滑动动作,且滑动动作跨越相邻的所述虚拟触摸屏之间的虚拟分界线时,离开所述虚拟分界线时,需要向离开前的所述虚拟触摸屏的所述虚拟设备节点上报手指抬起事件(touch_up事件)及对应的触摸点相对坐标,并向进入的所述虚拟触摸屏的所述虚拟设备节点上报手指按下事件(touch_down事件)及对应的触摸点相对坐标,这相当于把手指滑动轨迹以虚拟边界线分割成两段滑动轨迹。
[0111]
虚拟设备节点获取到拆分后的触摸数据后,会向用户空间的图像处理服务上报,获取到所述虚拟设备节点上报的拆分后的所述触摸数据后,需要将所述虚拟设备节点上报的拆分后的所述触摸数据与所述虚拟设备节点对应的所述显示界面的坐标进行融合,以实现所述显示界面的坐标与所述虚拟触摸屏的坐标一一对应。作为示例,从虚拟设备节点上报的触摸信息会在weston服务中按照udev.rules配置信息跟显示界面坐标融合,进而实现显示界面和虚拟触摸屏坐标一一对应。
[0112]
图4为本技术的一示例性实施例示出的触摸屏拆分示意图。下面将结合图4来示例性说明触摸数据的拆分方案。
[0113]
如图4所示,一整块物理触摸屏按照x轴拆分成a、b、c三个虚拟触摸屏。虚拟分界线x0、x1。点a1、b1、b2、c1分别代表物理触摸屏上的手指单击动作。箭头ab1、ab2、b12、bc1代表单个手指在物理触摸屏上的滑动,箭头ab1标识由虚拟触摸屏a滑到虚拟触摸屏b,bc1同理,b12则表示只在虚拟触摸屏b内滑动。
[0114]
touch_down,touch_up,touch_motion事件,分别对应手指按下,手指抬起,手指按下并且在滑动状态,touch_frame表示在一次滑动过程总上报每一帧数据,这个参数跟硬件数据上报频率相关。touch_down,touch_up是一对事件,要成对出现,如果丢失任何一个系统会认为当前屏幕有手指在一直按压没有抬起,触摸屏不响应手指任何滑动。手指个数,手指编号从0开始计数,依次累加。
[0115]
算法处理过程分解如下:
[0116]
只有a1点击时,物理触摸屏需要将touch_down事件,touch_up事件转发给虚拟触摸屏a对应的虚拟设备节点。
[0117]
只有b1和b2点击时,物理触摸屏需要将每个手指的touch_down事件,touch_up事件转发给虚拟触摸屏b的虚拟设备节点,同时需要计算触摸点在在虚拟触摸屏b的x坐标的偏移量(x0对应虚拟触摸屏b的x轴零点)。
[0118]
a1、b1、b2、c1同时点击时,物理触摸屏需要将每个手指的touch_down事件,touch_up事件转发给对应的虚拟触摸屏的虚拟设备节点,虚拟触摸屏内的点击手指有两个,手指编号需要重新排序,同时需要计算触摸点在虚拟触摸屏b、c的x坐标的偏移量。
[0119]
只有b12滑动时,物理触摸屏需要将touch_down事件,touch_motion事件,touch_up事件转发给对应的虚拟触摸屏b的虚拟设备节点,touch_frame报点率需与硬件设备保持一致,同时需要计算触摸点在虚拟触摸屏b的x坐标的偏移量。如果有多个手指滑动只在虚拟触摸屏b内同时滑动,虚拟触摸屏b内手指编号需要重新排序,上报的数据需要按照手指标号分组。
[0120]
只有bc1滑动时,手指由虚拟触摸屏b滑到虚拟触摸屏c时,离开虚拟触摸屏b需要向虚拟触摸屏b的虚拟设备节点上报对应手指的touch_up事件,进入虚拟触摸屏c需要重新计算手指在虚拟c设备上编号并向虚拟触摸屏c的虚拟设备节点上报touch_down事件,touch_motion事件坐标需要计算在相应虚拟触摸屏中的x轴偏移量,计算手指编号从0开始依次累加,1代表触摸屏上已有2个手指,手指全部离开屏幕时编号全部清零。相当于跨越分界线x1时,需要多报一组touch_up事件、touch_down事件。
[0121]
当bc1和b12滑动按照顺序先后发生,并在touch_motion时同时存在时,情况与只有bc1滑动时情况类似,但是虚拟触摸屏b内的手指编号计算会变得复杂,b12滑动时手指编号将一直按照1分配,作为第二个手指,手指全部离开屏幕时编号全部清零。同时需要计算触摸点在虚拟触摸屏b、c中x坐标的偏移量。
[0122]
当ab1、ab2、b12、bc1同时发生时,每个手指由一个虚拟触摸屏滑到另一个虚拟触摸屏时,离开前一个虚拟触摸屏需要对应手指上报touch_up事件,进入后一个虚拟触摸屏需要重新计算手指编号并上报touch_down事件,touch_motion事件坐标需要计算触摸点在虚拟触摸屏b、c中x坐标的偏移量,需要注意虚拟触摸屏b手指编号计算是复杂的,手指全部离开屏幕时编号全部清零。
[0123]
本技术的触摸屏分屏方法通过在软件层面将触摸屏上报的数据进行拆分,做一个抽象层出来,屏蔽掉硬件的差异,使其成为系统的核心能力,独立演进,后续项目皆可使用,只需简单的配置工作即可。
[0124]
需要说明的是,由于本技术的触摸屏分屏方法是纯软件实现,故而可以根据android分层经验,是可以在hal层以上通过其他算法实现触摸屏数据的拆分。
[0125]
图5是出了本技术的一示例性实施例示出的触摸屏分屏装置500的框图。所述触摸屏分屏装置500包括分屏参数获取模块501、设备节点获取模块502、虚拟节点创建模块503、触摸数据监测模块504以及触摸数据拆分模块505。所述分屏参数获取模块501用于获取触摸屏分屏参数,所述获取触摸屏分屏参数包括可兼容的物理触摸屏名称、触摸屏拆分个数、拆分后各虚拟触摸屏的分辨率;所述设备节点获取模块502用于获取与所述物理触摸屏名
称相对应的物理触摸屏设备节点;所述虚拟节点创建模块503用于根据所述触摸屏分屏个数及拆分后各虚拟触摸屏的分辨率创建虚拟设备节点,并为每个所述虚拟设备节点设置触摸屏属性,每个所述虚拟设备节点对应一虚拟触摸屏,其中,所述虚拟设备节点的个数等于所述触摸屏拆分个数;所述触摸数据监测模块504用于获取所述物理触摸屏设备节点上报的触摸数据;所述触摸数据拆分模块505用于用于根据所述物理触摸屏设备节点上报的触摸数据和预设的数据拆分规则对所述触摸数据进行拆分,并将拆分后的所述触摸数据转发给对应的所述虚拟设备节点,以使触摸屏根据拆分后的所述触摸数据执行分屏。
[0126]
需要说明的是,上述实施例所提供的触摸屏分屏装置500与上述实施例所提供的触摸屏分屏方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的触摸屏分屏装置500在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
[0127]
本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的触摸屏分屏方法。
[0128]
图6示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0129]
如图6所示,计算机系统600包括中央处理单元(central processing unit,cpu)601,其可以根据存储在只读存储器(read-only memory,rom)602中的程序或者从储存部分608加载到随机访问存储器(random access memory,ram)603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram 603中,还存储有系统操作所需的各种程序和数据。cpu 601、rom 602以及ram 603通过总线604彼此相连。输入/输出(input/output,i/o)接口605也连接至总线604。
[0130]
以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分607;包括硬盘等的储存部分608;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。
[0131]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本技术的系统中限定的各种功能。
[0132]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是
电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0133]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0134]
描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0135]
本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的触摸屏分屏方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1