触控数据的处理方法、装置、存储介质及电子设备

文档序号:641171 发布日期:2021-05-14 浏览:29次 >En<

阅读说明:本技术 触控数据的处理方法、装置、存储介质及电子设备 (Touch data processing method and device, storage medium and electronic equipment ) 是由 马迎斌 方攀 陈岩 于 2019-11-13 设计创作,主要内容包括:本申请实施例公开一种触控数据的处理方法、装置、存储介质及电子设备,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;检测摇杆坐标是否为预设坐标;当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。以此在摇杆坐标为预设坐标,且摇杆坐标对应的历史摇杆坐标不为预设坐标时,对摇杆坐标进行调整,以解决摇杆事件与目标组件的触控事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。(The embodiment of the application discloses a touch data processing method, a touch data processing device, a storage medium and electronic equipment, wherein when a movement event of a rocker of external equipment is detected, a rocker coordinate corresponding to the rocker is obtained; detecting whether the coordinates of the rocker are preset coordinates or not; when the rocker coordinate is detected to be a preset coordinate, acquiring a historical rocker coordinate corresponding to the rocker coordinate; and when the historical rocker coordinate is not the preset coordinate, adjusting the coordinate parameter of the rocker coordinate to obtain the target rocker coordinate. Therefore, when the rocker coordinate is the preset coordinate and the historical rocker coordinate corresponding to the rocker coordinate is not the preset coordinate, the rocker coordinate is adjusted, the problem that the rocker event does not correspond to the touch event of the target assembly is solved, and the matching accuracy between the electronic equipment and the external equipment is improved.)

触控数据的处理方法、装置、存储介质及电子设备

技术领域

本发明涉及电子技术领域,特别涉及一种触控数据的处理方法、装置、存储介质及电子设备。

背景技术

随着科技的发展进步,电子设备逐渐成为人们生活中不可或缺的一部分,用户可以通过电子设备进行各种娱乐活动如看视频或玩游戏等。但是用户在通过电子设备玩游戏时,常因为受限于电子设备触摸屏的尺寸大小,导致用户通过触摸屏操控游戏时操作不便,故目前越来越多的用户更愿意通过游戏手柄操作电子设备中的游戏。

其中,用户通过游戏手柄的摇杆来操作电子设备中的游戏时,由于摇杆的精度问题以及摇杆数据的处理方式问题,容易出现游戏手柄的摇杆无法准确控制电子设备的移动参数。

发明内容

本申请实施例提供了一种触控数据的处理方法、装置、存储介质及电子设备,可以提高电子设备与外接设备之间匹配的准确度。

第一方面,本申请实施例提供了一种触控数据的处理方法,包括:

当检测到外接设备的摇杆发生移动事件时,获取所述摇杆对应的摇杆坐标;

检测所述摇杆坐标是否为预设坐标;

当检测到所述摇杆坐标为预设坐标时,获取所述摇杆坐标对应的历史摇杆坐标;

当所述历史摇杆坐标不为预设坐标时,对所述摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

第二方面,本申请实施例提供了一种触控数据的处理装置,包括:

第一获取模块,用于当检测到外接设备的摇杆发生移动事件时,获取所述摇杆对应的摇杆坐标;

检测模块,用于检测所述摇杆坐标是否为预设坐标;

第二获取模块,用于当检测到所述摇杆坐标为预设坐标时,获取所述摇杆坐标对应的历史摇杆坐标;

调整模块,用于当所述历史摇杆坐标不为预设坐标时,对所述摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

第三方面,本申请实施例提供了的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的触控数据的处理方法。

第四方面,本申请实施例提供的电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的触控数据的处理方法。

由上可知,本申请实施例中,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;检测摇杆坐标是否为预设坐标;当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。以此在摇杆坐标为预设坐标,且摇杆坐标对应的历史摇杆坐标不为预设坐标时,对摇杆坐标进行调整,以解决摇杆事件与目标组件的触控事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的触控数据的处理方法的应用场景示意图。

图2为本申请实施例提供的触控数据的处理方法的流程示意图。

图3为本申请实施例提供的摇杆对应的摇杆方向示意图。

图4为本申请实施例提供的触控数据的处理方法的另一流程示意图。

图5为本申请实施例提供的触控数据的处理装置的结构示意图。

图6为本申请实施例提供的电子设备的结构示意图。

图7为本申请实施例提供的电子设备的另一结构示意图。

具体实施例

请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。

本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。

请参阅图1,图1为本申请实施例提供的触控数据的处理方法的应用场景示意图。

其中,外接设备10可以包括手柄、VR设备以及无线键盘等等,电子设备20包括电子设备可以是智能手机、平板电脑、掌上电脑(PDA,Personal Digital Assistant)等。该外接设备10与电子设备20之间可以通过无线网络、蓝牙或者USB接口进行连接,可以通过外接设备10控制电子设备20。

具体的,外接设备10包括摇杆12,且外接设备10的摇杆12与电子设备20的触摸屏210中212目标组件相对应。当外接设备10与电子设备20连接成功时,当检测到外接设备10中摇杆12的移动操作时,在摇杆的移动过程中,外接设备10会不断的采集摇杆12在移动过程中的摇杆坐标,并将采集到的摇杆坐标通过无线连接或者有线连接的方式发送至电子设备20。当电子设备20依次接收到摇杆坐标后,会将摇杆坐标转换为触摸屏210中目标组件212对应的触点坐标。并根据触点坐标生成目标组件212的触控操作,使得用户可以根据外接设备10中的摇杆12的移动操作来控制电子设备20。

进一步的,外接设备10还包括按键14,且外接设备10的按键14与电子设备20的触摸屏210中第一组件214相对应。当用户对外接设备10的按键14进行按压操作时,外接设备10生成该按压操作的按压数据,并将该按压数据实时传输至电子设备20,该电子设备20对按压数据进行处理并执行第一组件214相应的触控操作,使得用户可以通过外接设备10上的按键14的按压操作来控制电子设备20。

请参阅图2,图2为本申请实施例提供的触控数据的处理方法的流程示意图,该触控数据的处理方法可以包括以下步骤:

在步骤S101中,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标。

其中,在外接设备与电子设备处于正常连接关系时,检测外接设备中的摇杆是否发生移动事件。例如,当检测到电子设备获取的摇杆坐标不为预设坐标(0,0)时,则确定出外接设备的摇杆发生移动事件。其中,外接设备持续的监测摇杆的移动事件,并根据预设采样频率如20毫秒/次采集摇杆对应的摇杆坐标,并将摇杆坐标依次发送至电子设备,使得电子设备在获取到摇杆坐标后可以对摇杆坐标进行处理,将其转换为目标组件对应的触点坐标,进而电子设备可以基于触点坐标生成相应的目标组件的触控事件。

进一步的,电子设备在检测到外接设备的摇杆发生移动事件时,会获取摇杆对应的摇杆标识。并根据存储在电子设备中第一映射数据去确定与摇杆标识对应的组件标识,以根据组件标识确定出摇杆对应的目标组件。进而才能将摇杆的移动事件转换为对应的目标组件的触控事件,以实现通过摇杆控制电子设备。

需要说明的是,摇杆坐标(X,Y)与摇杆的移动方向相关。请参阅图3,图3为本申请实施例提供的摇杆对应的摇杆方向示意图。例如,当摇杆从预设坐标(0,0)开始沿正左方向移动时,对应的摇杆坐标的横坐标小于0;当摇杆从预设坐标(0,0)开始沿正右方向移动时,对应的摇杆坐标的横坐标大于0;当摇杆从预设坐标(0,0)开始沿正上方向移动时,对应的摇杆坐标的纵坐标大于0;当摇杆从预设坐标(0,0)开始沿正下方向移动时,对应的摇杆坐标的纵坐标小于0。因此,可以根据摇杆的移动方向以及摇杆偏移量去确定出摇杆坐标。例如,摇杆沿预设坐标(0,0)向右下方向移动时,摇杆距离横坐标的偏移量为1,距离纵坐标的偏移量为2时,此时可确定出摇杆坐标为(1,-2)。

在一些实施方式中,在当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标的步骤之前,还包括:

建立外接设备的摇杆与电子设备的目标组件之间的映射关系,生成相应的第一映射数据。

其中,在外接设备与电子设备成功连接时,接收用户选定的外接设备中的摇杆,获取摇杆对应的摇杆信息,如摇杆的摇杆标识以及摇杆的可移动范围。同时,获取用户在触摸屏上的触控操作对应的触点坐标,根据该触点坐标确定用户选定的目标组件。此时将外接设备的摇杆与电子设备的目标组件进行映射,以建立摇杆与目标组件之间的第一映射关系,生成相应的第一映射数据。其中,第一映射数据中可以包括摇杆的摇杆标识、摇杆的可移动范围[0,A]其中A为摇杆的最大移动值、目标组件的组件标识、目标组件的中心点坐标(x0,y0)以及目标组件的半径长度R。

在步骤S102中,检测摇杆坐标是否为预设坐标。

其中,预设坐标为摇杆的中心坐标(0,0),电子设备在获取到摇杆坐标后,会检测摇杆坐标是否为预设坐标(0,0)。当检测到摇杆坐标为预设坐标(0,0)时,执行步骤S103的操作。当检测到摇杆坐标不为预设坐标(0,0)时,电子设备直接将摇杆坐标转换为目标组件对应的触点坐标,并基于触点坐标生成目标组件的触控操作。

需要说明的是,现有技术中当检测到摇杆坐标为预设坐标(0,0)时,电子设备也会直接的将为预设坐标(0,0)的摇杆坐标转换为目标组件对应的中心点坐标即触点坐标(0,0)。并且在系统上报触点坐标为(0,0)的事件后,会基于触点坐标为预设坐标(0,0)生成目标组件的抬起事件,系统会根据抬起事件控制目标组件中触点坐标(0,0)抬起,即结束触点坐标(0,0)的触控操作,此时目标组件也便处于抬起状态。直至系统上报的下一触点坐标不为(0,0)时基于不为(0,0)下一触点坐标生成目标组件的触控事件,系统控制该不为(0,0)下一触点坐标执行相应的触控操作,以再次实现目标组件的触控操作。

可以理解的是,当获取的摇杆坐标为预设坐标(0,0)时,表明摇杆当前处于摇杆移动区域的中心位置。但是,当摇杆当前处于摇杆移动区域的中心位置时摇杆可能至少存在以下两种不同的工作状态。第一,摇杆处于归中状态,即摇杆处于松开不工作的状态,此时当摇杆处于归中状态时,获取的摇杆坐标必定为预设坐标。第二,摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标,从而使得当前获取的摇杆坐标为预设坐标(0,0),此时摇杆处于工作状态且只是短时间的经过中心坐标。

对于第二种情况,摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标时,若电子设备依旧将为预设坐标(0,0)的摇杆坐标转换为(0,0)的触点坐标时,当系统上报触点坐标为(0,0)的事件后,系统控制目标组件中触点坐标(0,0)抬起,即控制目标组件抬起。

但是,当目标组件抬起时,用户操作外接设备的真实情况却是外接设备的摇杆会并未发生摇杆抬起事件,反而用户操作摇杆一直处于移动状态。此时,目标组件的触控事件便与摇杆事件无法对应。可见,在摇杆在移动过程恰巧经过摇杆中心位置时,会大概率出现摇杆的事件与目标组件的事件不对应的情况,使得电子设备与外接设备之间匹配的准确度不高。

基于此问题,本实施例中的步骤S104将摇杆坐标中与预设坐标一致的摇杆坐标调整为目标摇杆坐标,从而改变摇杆坐标对应的触点坐标。例如,目标摇杆坐标对应的触点坐标为(2,2),使得该触点坐标不为(0,0)。因此在摇杆快速经过摇杆中心位置时,电子设备的系统上报的触点坐标为(2,2),系统根据触点坐标(2,2)继续执行目标组件的滑动触控操作,不会生成触点坐标(0,0)的抬起事件,提高了电子设备与外接设备之间匹配的准确度。

在步骤S102中,获取摇杆坐标对应的历史摇杆坐标。

其中,由上可知,当获取的摇杆坐标为预设坐标(0,0)时,摇杆可能至少存在以下两种不同的工作状态。第一,摇杆处于归中状态,即摇杆处于松开不工作的状态,此时当摇杆处于归中状态时,获取的摇杆坐标必定为预设坐标。第二,摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标,从而使得当前获取的摇杆坐标为预设坐标(0,0),此时摇杆处于工作状态且只是短时间的经过中心坐标。

但,单凭一个为预设坐标的摇杆坐标是无法准确的确定出当前摇杆真实的工作状态的。因此,需要获取摇杆坐标对应的历史摇杆坐标,通过历史摇杆坐标进而来确定出当前摇杆真实的工作状态。

其中,历史摇杆坐标可以为预设时间段内的一个或多个历史摇杆坐标。例如,历史摇杆坐标可以为摇杆坐标对应的前一个摇杆坐标,历史摇杆坐标也可以为摇杆坐标对应的前两个摇杆坐标。例如,获取摇杆坐标对应前两个摇杆坐标,当前两个摇杆坐标均不为预设坐标时,表明摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标的工作状态,此时执行步骤S104的操作,使得将为预设坐标的摇杆坐标调整为目标摇杆坐标后,目标摇杆坐标对应的触点坐标不为(0,0)。因此,在摇杆快速经过中心坐标时,电子设备也不会生成目标组件的抬起事件,解决了现有技术中当摇杆快速经过中心坐标时,摇杆的真实事件与目标组件的实际事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

另外,当前两个摇杆坐标均为预设坐标时,表明摇杆持续一定时间处于中心坐标,此时摇杆必然处于归中状态。因此,当检测到摇杆处于归中状态时,便不对为预设坐标的摇杆坐标进行调整,使得电子设备根据该为预设坐标(0,0)的摇杆坐标在系统上上报为(0,0)的触点坐标,进而生成目标组件的抬起事件,提高了电子设备与外接设备之间匹配的准确度。

在步骤S104中,当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

其中,当历史摇杆坐标不为预设坐标时,表明当前摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标的工作状态。此时需要将摇杆坐标的坐标参数进行调整,得到不为预设坐标(0,0)的目标摇杆坐标。相应的目标摇杆坐标对应的触点坐标也不为(0,0),在系统中上报不为(0,0)的触点坐标时,系统会控制该触点坐标生成目标组件的触控事件。因此,在摇杆快速经过中心坐标时,电子设备也不会生成目标组件的抬起事件,解决了现有技术中当摇杆快速经过中心坐标时,摇杆的真实事件与目标组件的实际事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

在一些实施方式中,当检测到摇杆坐标不为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标为预设坐标时,确定摇杆坐标与预设坐标之间的距离参数;当距离参数大于预设值时,对摇杆坐标对应前一摇杆坐标的坐标参数进行调整,以得到前一目标摇杆坐标。

其中,由于当摇杆停止移动时,电子设备在系统上报触点坐标(0,0)后会生成目标组件的抬起事件。随后,当检测到外接设备的摇杆发生移动事件时,在获取到摇杆坐标为预设坐标时,电子设备也会将摇杆坐标(0,0)转换为触点坐标(0,0)。故,摇杆开始移动时产生的触点坐标(0,0)与摇杆停止移动时产生的触点坐标(0,0)一致。需要说明的是,由于电子设备inputreader从电子设备节点中读出的事件存在缓冲机制,即同一个输入设备的前一个事件和当前事件时一致的,当前事件不会重复上报。也就是说,由于摇杆开始移动时产生的触点坐标(0,0)与摇杆停止移动时产生的触点坐标(0,0)一致,电子设备无法区分出触点坐标(0,0)处于摇杆归中状态还是处于开始移动状态。因此,在获取到第一个摇杆坐标为预设坐标(0,0)且转换后的触点坐标为(0,0)时,电子设备的设备节点缓冲机制认为事件未发生变化,则此次开始移动的触点坐标(0,0)不会被inputreader读取到,同样也不会将触点坐标(0,0)进行上报。

进而,确定摇杆坐标与预设坐标之间的距离参数,当距离参数大于预设值时,表明当前的摇杆坐标超过了摇杆可移动范围的最大值,即该摇杆坐标为无效的摇杆坐标。此时,该摇杆坐标对应的触点坐标也将超过目标组件的最大触控范围,在系统上报后同样无法基于该触点坐标触发目标组件的触控操作。并且,由于摇杆开始移动时的摇杆坐标对应的触点坐标(x,y)并不会进行上报,使得电子设备无法单单根据超过目标组件的最大触控范围的触点坐标(x,y)去生成目标组件的触控事件,使得此时无法通过摇杆去控制电子设备。

基于此问题,摇杆坐标与预设坐标之间的距离参数大于预设值时对摇杆坐标对应前一摇杆坐标的坐标参数进行调整,以得到前一目标摇杆坐标。此时,前一目标摇杆坐标不为预设坐标(0,0),相应在将前一目标摇杆坐标转换为触点坐标时也不会为预设坐标。故,可以根据不为预设坐标的触点坐标生成基于触点坐标的目标组件的触控操作,即目标组件开始移动。并在接收到当前摇杆坐标对应的触点坐标时,再次生成基于该触点坐标的触控操作,此时目标组件继续移动。因此,可以在当检测到摇杆坐标不为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标为预设坐标时,确定摇杆坐标与预设坐标之间的距离参数;当距离参数大于预设值时,对摇杆坐标对应前一摇杆坐标的坐标参数进行调整,以得到前一目标摇杆坐标。从而解决摇杆移动过快时,摇杆无法控制电子设备的问题。

在一些实施方式中,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标的步骤之后,还包括:确定目标摇杆坐标对应的目标组件中的触点坐标;响应触点坐标,生成目标组件的触控事件。

其中,可以根据第一映射数据确定目标摇杆坐标在目标组件中对应的触点坐标。具体的,可根据如下公式确定摇杆坐标对应的触点坐标:

x=x0+(X/A)*R;

y=y0+(X/A)*R;

其中,(X,Y)为目标摇杆坐标,(x0,y0)为目标组件的中心点坐标,A为摇杆的最大移动值,R为目标组件的半径长度,(x,y)为触点坐标。其中,每一触点坐标均需要符合多点触摸协议(Multi-touch Protocol,MTP),且电子设备为多点触控设备。

需要说明的是,多点触摸协议可以让内核驱动程序向用户层上报任意多指的数据信息。具体的,多点触摸信息则是以ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X、ABS_MT_POSITION_Y,再通过调用input_mt_sync产生一个SYN_REPORT来标记一个点的结束,告诉接收方接收当前手指的信息并准备接收其它手指的触控数据。最后调用input_sync函数上报触点坐标开始动作并告诉接收方开始接收下一系列多点触摸信息。

MTP协议定义了一系列ABS_MT事件,例如,ABS_MT_TOUCH_MAJOR、ABS_MT_POSITION_X以及ABS_MT_POSITION_Y等,以此来实现多点触摸。当电子设备需要获取触点坐标对应的横坐标时,会生成ABS_MT_POSITION_X事件,并根据ABS_MT_POSITION_X事件获取触点坐标对应的横坐标,即根据上述公式和摇杆坐标的横坐标可获取触点坐标对应的横坐标;同理,当电子设备需要获取触点坐标对应的纵坐标时,会生成ABS_MT_POSITION_Y事件,并根据ABS_MT_POSITION_Y事件获取触点坐标对应的纵坐标,即根据上述公式和摇杆坐标的纵坐标可获取触点坐标对应的纵坐标。在获取到触点坐标后调用input_sync函数生成SYN_REPORT事件,并在系统上报相应的触点坐标,并将触点坐标事件交由input_dispatcher系统分发处理,以实现目标组件的触控事件。

由上可知,本申请实施例提供的触控数据的处理方法,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;检测摇杆坐标是否为预设坐标;当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。以此在摇杆坐标为预设坐标,且摇杆坐标对应的历史摇杆坐标不为预设坐标时,对摇杆坐标进行调整,以解决摇杆事件与目标组件的触控事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

请继续参阅图4,图4为本申请实施例提供的触控数据的处理方法的另一流程示意图。具体而言,触控数据的处理方法可以包括以下步骤:

在步骤S201中,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标。

其中,在外接设备与电子设备处于正常连接关系时,检测外接设备中的摇杆是否发生移动事件。例如当检测到电子设备获取的摇杆坐标不为预设坐标(0,0)时,则确定出外接设备的摇杆发生移动事件。其中,外接设备持续的监测摇杆的移动事件,并根据预设采样频率如20毫秒/次采集摇杆对应的摇杆坐标,并将摇杆坐标依次发送至电子设备,使得电子设备在获取到摇杆坐标后可以对摇杆坐标进行处理,将其转换为电子设备中目标组件对应的触点坐标,并基于触点坐标生成相应的目标组件的触控事件。

进一步的,电子设备在检测到外接设备的摇杆发生移动事件时,会获取摇杆对应的摇杆标识。并根据存储在电子设备中第一映射数据去确定与摇杆标识对应的组件标识,以根据组件标识确定出摇杆对应的目标组件。进而才能将摇杆的移动事件转换为对应的目标组件的触控事件,以实现通过摇杆控制电子设备。

在步骤S202中,检测摇杆坐标是否位于预设区域内。

其中,预设区域为摇杆死区,摇杆死区是由外接设备的厂商完成设置的,当摇杆在摇杆死区内移动时,将均属于无效移动,是无法产生相应的摇杆移动事件的。可以理解的是,摇杆死区设置是为了防止由于摇杆的精度问题造成的摇杆无法完全归中,从而生成一系列的不为预设坐标的摇杆坐标,从而使得目标组件失控。因此,需要检测摇杆坐标是否在预设区域内,以将位于预设区域内的摇杆坐标进行调整,以提高电子设备与外接设备之间匹配的准确度。

需要说明的是,本申请的电子设备中可以存储有现有的外接设备的多个摇杆死区数据。或者当外接设备与电子设备连接时,电子设备会自动获取外接设备的摇杆死区数据,并将摇杆死区数据进行存储。又或者,当外接设备与电子设备连接时,电子设备还可以接收用户手动输入的摇杆死区数据,并将摇杆死区数据进行存储。因此,电子设备在与外接设备连接后,可以获取外接设备的摇杆死区数据,并根据摇杆死区数据判断是否需要对摇杆坐标进行调整。具体的,当摇杆坐标位于预设区域内时,执行步骤S203的操作,即将摇杆坐标调整为预设坐标(0,0)。当摇杆坐标不位于预设区域内时,直接将该摇杆坐标作为目标摇杆坐标,并执行步骤S208的操作。

在步骤S203中,将摇杆坐标调整为预设坐标。

其中,当摇杆坐标位于预设区域内时,将摇杆坐标调整为预设坐标(0,0),使得获取的对应触点坐标也为(0,0)。因此,当摇杆坐标位于预设区域内时摇杆的移动操作是无效操作,此时并不会根据摇杆的无效操作去生成目标组件的触控操作。

在步骤S204中,检测摇杆坐标是否为预设坐标。

其中,预设坐标为摇杆的中心坐标(0,0),电子设备在获取到摇杆坐标后,会检测摇杆坐标是否为预设坐标(0,0)。当检测到摇杆坐标为预设坐标(0,0)时,执行步骤S205的操作。当检测到摇杆坐标不为预设坐标(0,0)时,直接将该摇杆坐标作为目标摇杆坐标,并执行步骤S208的操作,即电子设备直接将摇杆坐标转换为目标组件对应的触点坐标,并基于触点坐标生成目标组件的触控操作。

需要说明的是,现有技术中当检测到摇杆坐标为预设坐标(0,0)时,电子设备也会直接的将为预设坐标(0,0)的摇杆坐标转换为目标组件对应的中心点坐标即触点坐标(0,0)。并且当系统上报触点坐标为(0,0)的事件后,系统控制目标组件中触点坐标(0,0)抬起,即结束触点坐标(0,0)的触控操作,此时目标组件也便处于抬起状态。当系统上报的下一触点坐标不为(0,0)时,系统控制该不为(0,0)下一触点坐标执行触控操作,以再次实现目标组件的触控操作。

可以理解的是,当获取的摇杆坐标为预设坐标(0,0)时,表明摇杆当前处于摇杆移动区域的中心位置。但是,当摇杆当前处于摇杆移动区域的中心位置时摇杆可能至少存在以下两种不同的工作状态。第一,摇杆处于归中状态,即摇杆处于松开不工作的状态,此时当摇杆处于归中状态时,获取的摇杆坐标必定为预设坐标。第二,摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标,从而使得当前获取的摇杆坐标为预设坐标(0,0),此时摇杆处于工作状态且只是短暂的经过中心坐标。

对于第二种情况,摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标时,若电子设备依旧将为预设坐标(0,0)的摇杆坐标转换为(0,0)的触点坐标时,系统上报触点坐标为(0,0)的事件后,系统控制目标组件中触点坐标(0,0)抬起,即控制目标组件抬起。

但是,外接设备的真实情况却是外接设备会并未发生摇杆抬起事件,反而摇杆却一直处于移动状态。可见,在摇杆在移动过程恰巧经过摇杆中心位置时,会大概率出现摇杆的事件与目标组件的事件不对应的情况,使得电子设备与外接设备之间匹配的准确度不高。

基于此问题,本实施例中的步骤S207将摇杆坐标中与预设坐标一致的摇杆坐标调整为目标摇杆坐标,从而改变摇杆坐标对应的触点坐标。例如,目标摇杆坐标对应的触点坐标为(2,2),使得该触点坐标不为(0,0)。因此在摇杆快速经过摇杆中心位置时,电子设备的系统上报的触点坐标为(2,2),系统根据触点坐标(2,2)继续执行目标组件的滑动触控操作,不会生成触点坐标(0,0)的抬起事件,提高了电子设备与外接设备之间匹配的准确度。在步骤S205中,获取摇杆坐标对应的历史摇杆坐标。

其中,历史摇杆坐标可以为预设时间段内的一个或多个历史摇杆坐标。例如,历史摇杆坐标可以为摇杆坐标对应的前一个摇杆坐标,历史摇杆坐标也可以为摇杆坐标对应的前两个摇杆坐标。例如,获取摇杆坐标对应前两个摇杆坐标,当前两个摇杆坐标均不为预设坐标时,表明摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标的工作状态,此时执行步骤S104的操作,使得将为预设坐标的摇杆坐标调整为目标摇杆坐标后,目标摇杆坐标对应的触点坐标不为(0,0)。因此,在摇杆快速经过中心坐标时,电子设备也不会生成目标组件的抬起事件,解决了现有技术中当摇杆快速经过中心坐标时,摇杆的真实事件与目标组件的实际事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

另外,当前两个摇杆坐标均为预设坐标时,表明摇杆持续一定时间处于中心坐标,此时摇杆必然处于归中状态。因此,当检测到摇杆处于归中状态时,便不对为预设坐标的摇杆坐标进行调整,使得电子设备根据该为预设坐标(0,0)的摇杆坐标在系统上上报为(0,0)的触点坐标,进而生成目标组件的抬起事件,提高了电子设备与外接设备之间匹配的准确度。

在步骤S206中,当历史摇杆坐标不为预设坐标时,获取历史摇杆坐标对应的第一坐标参数。

其中,当历史摇杆坐标不为预设坐标时,表明当前摇杆处于快速移动状态,恰巧在采样时间点时经过摇杆的中心坐标的工作状态。此时需要将摇杆坐标的坐标参数进行调整,得到不为预设坐标(0,0)的目标摇杆坐标。相应的目标摇杆坐标对应的触点坐标也不为(0,0),在系统中上报不为(0,0)的触点坐标时,系统会控制该触点坐标生成目标组件的触控事件。因此,在摇杆快速经过中心坐标时,电子设备也不会生成目标组件的抬起事件,解决了现有技术中当摇杆快速经过中心坐标时,摇杆的真实事件与目标组件的实际事件不对应的问题,提高了外接设备中的摇杆对电子设备控制的准确率。

其中,可以获取历史摇杆坐标对应的第一坐标参数,通过第一坐标参数对摇杆坐标进行调整。例如历史摇杆坐标为(-3,1)时,确定出该摇杆坐标的第一坐标参数为-3和1。

在步骤S207中,根据第一坐标参数对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

其中,可以根据第一坐标参数-3和1获取摇杆坐标对应的调整参数如-1和1,根据调整参数对摇杆坐标进行调整,得到目标摇杆坐标(-1,1)。以通过摇杆坐标对应的历史摇杆坐标的坐标参数去预测目标摇杆坐标,使得目标摇杆坐标符合摇杆当前的移动轨迹。

在一些实施方式中,根据第一坐标参数对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标的步骤,包括:根据第一坐标参数以及摇杆坐标的坐标参数确定摇杆的移动方向;根据移动方向获取摇杆坐标对应的调整参数;基于调整参数对摇杆坐标的坐标参数进行调整。

其中,根据历史摇杆坐标的第一坐标参数和摇杆坐标的坐标参数确定出摇杆的移动方向。即用历史摇杆坐标与摇杆坐标相减来确定移动方向。例如历史摇杆坐标为(-3,1),摇杆坐标为(0,0),此时相减计算得到为(3,-1),可见此时摇杆的移动方向为右下方向。可以根据摇杆的移动方向来,摇杆坐标进行调整,得到目标摇杆坐标(1,-1)。

在步骤S208中,确定目标摇杆坐标或摇杆坐标对应的目标组件中的触点坐标。

其中,可以根据第一映射数据确定目标摇杆坐标在目标组件中对应的触点坐标。具体的,可根据如下公式确定摇杆坐标对应的触点坐标:

x=x0+(X/A)*R;

y=y0+(X/A)*R;

其中,(X,Y)为目标摇杆坐标,(x0,y0)为目标组件的中心点坐标,A为摇杆的最大移动值,R为目标组件的半径长度,(x,y)为触点坐标。其中,每一触点坐标均需要符合多点触摸协议(Multi-touch Protocol,MTP),且电子设备为多点触控设备。

需要说明的是,多点触摸协议可以让内核驱动程序向用户层上报任意多指的数据信息。具体的,多点触摸信息则是以ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X、ABS_MT_POSITION_Y,再通过调用input_mt_sync产生一个SYN_REPORT来标记一个点的结束,告诉接收方接收当前手指的信息并准备接收其它手指的触控数据。最后调用input_sync函数上报触点坐标开始动作并告诉接收方开始接收下一系列多点触摸信息。

MTP协议定义了一系列ABS_MT事件,例如,ABS_MT_TOUCH_MAJOR、ABS_MT_POSITION_X以及ABS_MT_POSITION_Y等,以此来实现多点触摸。当电子设备需要获取触点坐标对应的横坐标时,会生成ABS_MT_POSITION_X事件,并根据ABS_MT_POSITION_X事件获取触点坐标对应的横坐标,即根据上述公式和摇杆坐标的横坐标可获取触点坐标对应的横坐标;同理,当电子设备需要获取触点坐标对应的纵坐标时,会生成ABS_MT_POSITION_Y事件,并根据ABS_MT_POSITION_Y事件获取触点坐标对应的纵坐标,即根据上述公式和摇杆坐标的纵坐标可获取触点坐标对应的纵坐标。

在步骤S209中,响应触点坐标,生成目标组件的触控事件。

其中,在获取到触点坐标后调用input_sync函数生成SYN_REPORT事件,并在系统上报相应的触点坐标,并将触点坐标事件交由input_dispatcher系统分发处理,以实现目标组件的触控事件。

请参阅图5,图5为本申请实施例提供的触控数据的处理装置的结构示意图。具体而言,该触控数据的处理装置包括:第一获取模块31、检测模块32、第二获取模块33和调整模块34。

第一获取模块31,用于当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标。

检测模块32,用于检测摇杆坐标是否为预设坐标。

第二获取模块33,用于当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标。

调整模块34,用于当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

在一些实施方式中,调整模块34包括:获取子模块和调整子模块。

获取子模块,用于当历史摇杆坐标不为预设坐标时,获取历史摇杆坐标对应的第一坐标参数。

调整子模块,用于根据第一坐标参数对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

在一些实施方式中,调整模块34还用于根据第一坐标参数以及摇杆坐标的坐标参数确定摇杆的移动方向;根据移动方向获取摇杆坐标对应的调整参数;基于调整参数对摇杆坐标的坐标参数进行调整。

在一些实施方式中,第一获取模块31在获取摇杆对应的摇杆坐标之后,还用于检测摇杆坐标是否位于预设区域内;当检测到摇杆坐标位于预设区域内时,将摇杆坐标调整为预设坐标。

本申请实施例还提供一种电子设备。请参阅图6,电子设备500包括处理器501以及存储器502。其中,处理器501与存储器502电性连接。

该处理器500是电子设备500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器502内的计算机程序,以及调用存储在存储器502内的数据,执行电子设备500的各种功能并处理数据,从而对电子设备500进行整体监控。

该存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。

在本申请实施例中,电子设备500中的处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:

当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;

检测摇杆坐标是否为预设坐标;

当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;

当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

在一些实施方式中,当将摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标时,处理器501可以具体执行以下步骤:

获取历史摇杆坐标对应的第一坐标参数;

根据第一坐标参数对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

在一些实施方式中,当根据第一坐标参数对摇杆坐标的坐标参数进行调整时,处理器501可以具体执行以下步骤:

根据第一坐标参数以及摇杆坐标的坐标参数确定摇杆的移动方向;

根据移动方向获取摇杆坐标对应的调整参数;

基于调整参数对摇杆坐标的坐标参数进行调整。

在一些实施方式中,当获取摇杆对应的摇杆坐标之后,处理器501可以具体执行以下步骤:

检测摇杆坐标是否位于预设区域内;

当检测到摇杆坐标位于预设区域内时,将摇杆坐标调整为预设坐标。

处理器501还可以具体执行以下步骤:

当检测到摇杆坐标不为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;

当历史摇杆坐标为预设坐标时,确定摇杆坐标与预设坐标之间的距离参数;

当距离参数大于预设值时,对摇杆坐标对应前一摇杆坐标的坐标参数进行调整,以得到前一目标摇杆坐标。

在一些实施方式中,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标之后,处理器501还可以具体执行以下步骤:

确定目标摇杆坐标对应的目标组件中的触点坐标;

响应触点坐标,生成目标组件的触控事件。

由上可知,本申请实施例提供的电子设备,当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;检测摇杆坐标是否为预设坐标;当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。以此在摇杆坐标为预设坐标,且摇杆坐标对应的历史摇杆坐标不为预设坐标时,对摇杆坐标进行调整,以解决摇杆事件与目标组件的触控事件不对应的问题,提高了电子设备与外接设备之间匹配的准确度。

请一并参阅图7,在某些实施方式中,电子设备500还可以包括:显示器503、射频电路504、音频电路505以及电源506。其中,其中,显示器503、射频电路504、音频电路505以及电源506分别与处理器501电性连接。

该显示器503可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示器503可以包括显示面板,在某些实施方式中,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、或者有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。

该射频电路504可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。

该音频电路505可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。

该电源506可以用于给电子设备500的各个部件供电。在一些实施例中,电源506可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管图7中未示出,电子设备500还可以包括摄像头、蓝牙模块等,在此不再赘述。

本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的触控数据的处理方法,比如:当检测到外接设备的摇杆发生移动事件时,获取摇杆对应的摇杆坐标;检测摇杆坐标是否为预设坐标;当检测到摇杆坐标为预设坐标时,获取摇杆坐标对应的历史摇杆坐标;当历史摇杆坐标不为预设坐标时,对摇杆坐标的坐标参数进行调整,以得到目标摇杆坐标。

在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)、或者随机存取记忆体(Random Access Memory,RAM)等。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

需要说明的是,对本申请实施例的触控数据的处理方法而言,本领域普通测试人员可以理解实现本申请实施例的触控数据的处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如触控数据的处理方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。

对本申请实施例的触控数据的处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。

以上对本申请实施例所提供的一种触控数据的处理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在

具体实施方式

及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种信息处理方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类