掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法及相关装置

文献发布时间:2024-05-24 17:48:49


一种数据处理方法及相关装置

技术领域

本申请涉及图像处理技术领域,尤其涉及一种数据处理方法及相关装置。

背景技术

通过手柄对只支持触摸的游戏或者应用进行控制,可以增强用户体验,例如,对于某些类型的游戏,如动作游戏、赛车游戏等,手柄操作可以提供更流畅和逼真的游戏体验。

在部分只支持触摸的游戏中,可以通过滑动触摸点改变交互,通过手柄,可以将该滑动触摸点的操作转换为用过手柄的摇杆实现,但是由于手柄的摇杆位置受限,无法支持映射到所有需要滑动操作,导致在某些情况下,一些特定的滑动操作无法通过手柄的摇杆来准确实现,从而限制了手柄操作的完整性和灵活性,用户体验较差。

发明内容

本申请实施例提供了一种数据处理方法以及相关装置,通过陀螺仪映射与按键映射共同作用,实现了通过手柄对只支持触摸的游戏或者应用进行控制,提高了手柄操作完整性和灵活性,提高用户体验。

本申请的一方面提供一种数据处理方法,包括:

获取第一手柄数据及第一陀螺仪数据,其中,第一手柄数据包括第一事件,第一事件的事件类型为按键事件类型,第一事件的事件代码用于标识触发第一事件的按键,第一事件的取值用于标识触发第一事件的按键操作,第一陀螺仪数据用于标识设备的初始姿态;

确定第一事件的取值标识的按键操作在触摸屏中的第一映射点的第一位置信息;

获取第二陀螺仪数据,其中,第二陀螺仪数据用于标识设备旋转后的调整姿态;

根据第一陀螺仪数据及第二陀螺仪数据,对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息,其中,第二位置信息用于标识设备旋转后第一映射点的位置。

本申请的另一方面提供了一种数据处理装置,包括:第一数据获取模块、映射位置确定模块、数据获取模块及映射位置更新模块;具体的:

第一数据获取模块,用于获取第一手柄数据及第一陀螺仪数据,其中,第一手柄数据包括第一事件,第一事件的事件类型为按键事件类型,第一事件的事件代码用于标识触发第一事件的按键,第一事件的取值用于标识触发第一事件的按键操作,第一陀螺仪数据用于标识设备的初始姿态;

映射位置确定模块,用于确定第一事件的取值标识的按键操作在触摸屏中的第一映射点的第一位置信息;

第二数据获取模块,用于获取第二陀螺仪数据,其中,第二陀螺仪数据用于标识设备旋转后的调整姿态;

映射位置更新模块,根据第一陀螺仪数据及第二陀螺仪数据,对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息,其中,第二位置信息用于标识设备旋转后第一映射点的位置。

在本申请实施例的另一种实现方式中,映射位置更新模块,还用于:

根据第一陀螺仪数据生成初始姿态矩阵,以及,根据第二陀螺仪数据生成调整姿态矩阵;

根据初始姿态矩阵及整姿态矩阵,计算设备的调整姿态相对于初始姿态的旋转弧度,其中,旋转弧度包括设备的调整姿态相对于初始姿态在x轴的偏移值及y轴的偏移值;

根据旋转弧度对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息。

在本申请实施例的另一种实现方式中,映射位置更新模块,还用于:

计算初始姿态矩阵的逆矩阵;

将初始姿态矩阵的逆矩阵与调整姿态矩阵相乘,得到旋转矩阵;

通过转换旋转矩阵得到旋转向量,其中,旋转向量包括x轴的偏移值、y轴的偏移值及z轴的偏移值;

从旋转向量中确定x轴的偏移值及在y轴的偏移值,得到旋转弧度。

在本申请实施例的另一种实现方式中,映射位置更新模块,还用于:

从第一位置信息中确定x轴的初始值及y轴的初始值;

将x轴的初始值与x轴的偏移值相加,得到x轴的调整值,以及,将y轴的初始值与y轴的偏移值相加,得到y轴的调整值;

根据x轴的调整值及y轴的调整值,得到第一映射点的第二位置信息。

在本申请实施例的另一种实现方式中,映射位置确定模块,还用于:

在第一事件的取值标识的按键操作为按下操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

在本申请实施例的另一种实现方式中,第一事件的事件代码标识的按键为多功能按键时,第一事件的事件代码还用于标识多功能按键的操作模式;

映射位置确定模块,还用于:

在第一事件的取值标识的按键操作为开启操作模式的操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

在本申请实施例的另一种实现方式中,数据处理装置,还包括:第三数据获取模块、转换模块及触摸数据确定模块;具体的:

第三数据获取模块,用于获取第二手柄数据,其中,第二手柄数据包括第二事件,第二事件的事件类型为按键事件类型,第二事件的事件代码用于标识触发第二事件的按键,第二事件的取值用于标识触发第二事件的按键操作;

转换模块,用于通过转换第二事件的事件代码得到第三事件,其中,第三事件的事件代码用于标识第三事件为触摸事件,第三事件的取值等于第二事件的取值,第三事件的取值用于标识触发第三事件的触摸操作,第三事件的取值标识的触摸操作为与第二事件的取值标识的按键操作对应的操作;

触摸数据确定模块,用于基于第三事件确定第一触摸数据。

在本申请实施例的另一种实现方式中,数据处理装置,还包括:位置事件确定模块;位置事件确定模块,还用于:

确定第二事件的取值标识的按键操作在触摸屏中的第二映射点的第三位置信息;

在至少一个预设方向中任意一个预设方向上,将第三位置信息与触摸屏中参考点位置之间的距离,确定为第四事件的取值,其中,第四事件的事件类型为位置事件类型,第四事件的事件代码用于标识第四事件为用于标识预设方向上的坐标位置的事件,第四事件的取值用于标识触发第三事件的触摸操作在触摸屏中的触摸点位置在预设方向上的位置信息;

触摸数据确定模块,还用于在第三事件之后拼接第四事件,得到第一触摸数据。

在本申请实施例的另一种实现方式中,位置事件确定模块,还用于:

分配用于标识第三事件的触摸点的触摸点标识;

将触摸点标识,确定为第五事件的取值,其中,第五事件的事件类型为位置事件类型,第五事件的事件代码用于标识第五事件为用于标识触摸点的事件,第五事件的取值用于标识第三事件的触摸点;

触摸数据确定模块,还用于在第五事件之后拼接第三事件,得到第一触摸数据。

在本申请实施例的另一种实现方式中,位置事件确定模块,还用于:

分配用于标识第三事件的触摸点所属的槽位的槽位标识;

将槽位标识,确定为第六事件的取值,其中,第六事件的事件类型为位置事件类型,第六事件的事件代码用于标识第六事件为用于标识槽位的事件,第六事件的取值用于标识第二事件的触摸点所属的槽位;

触摸数据确定模块,还用于在第六事件之后拼接第三事件,得到第一触摸数据。

在本申请实施例的另一种实现方式中,第一数据获取模块,还用于从手柄输入设备节点中读取第一手柄数据,以及,从设备的陀螺仪中读取第一陀螺仪数据;

数据处理装置,还包括:数据写入模块;具体的,数据写入模块,用于将第二位置信息写入虚拟输入设备节点。

本申请的另一方面提供了一种计算机设备,包括:

存储器、收发器、处理器以及总线系统;

其中,存储器用于存储程序;

处理器用于执行存储器中的程序,包括执行上述各方面的方法;

总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。

本申请的另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请提供了一种数据处理方法以及相关装置,其方法包括:当获取到用于标识手柄按键按下的第一手柄数据时,获取当前设备的第一陀螺仪数据,通过第一手柄数据确定手柄按键对应的映射点的位置信息,通过第一陀螺仪数据确定当前设备的初始姿态,随着用户旋转设备,获取设备的第二陀螺仪数据,通过第二陀螺仪数据确定设备旋转后的调整姿态,基于初始姿态及调整姿态对手柄按键对应的映射点的位置信息进行调整,得到设备旋转后的手柄按键对应的映射点的位置信息,通过结合陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作,弥补了手柄摇杆位置受限的问题,提高了手柄操作的完整性和灵活性,能够更好地适应需要滑动操作的游戏或应用,提供更流畅和逼真的操作体验,使用户能够更自如地进行游戏或应用操作。

附图说明

图1为本申请某一实施例提供的掌机设备的示意图;

图2为本申请某一实施例提供的配置按键映射界面的快捷设置面板的示意图;

图3为本申请某一实施例提供的映射界面的示意图;

图4为本申请某一实施例提供的数据处理系统的一个架构示意图;

图5为本申请某一实施例提供的数据处理方法的流程图;

图6为本申请某一实施例提供的坐标轴的分布情况的示意图;

图7为本申请另一实施例提供的数据处理方法的流程图;

图8为本申请另一实施例提供的数据处理方法的流程图;

图9为本申请某一实施例提供的数据处理方法的适宜性流程图;

图10为本申请某一实施例提供的数据处理装置的结构示意图;

图11为本申请另一实施例提供的数据处理装置的结构示意图;

图12为本申请某一实施例提供的服务器结构示意图。

具体实施方式

本申请实施例提供了一种数据处理方法,通过结合陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作,弥补了手柄摇杆位置受限的问题,提高了手柄操作的完整性和灵活性,能够更好地适应需要滑动操作的游戏或应用,提供更流畅和逼真的操作体验,使用户能够更自如地进行游戏或应用操作。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。

为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:

掌机:有大量触摸类游戏和应用的硬件设施,其搭载了游戏手柄,能用游戏手柄操控游戏。例如,掌机可以是一种手持式便携式游戏机或多媒体设备,通常具有内置的屏幕、处理器、内存和操作系统等组件。掌机可以运行游戏、应用程序和媒体内容,用户可以通过掌机进行游戏、浏览互联网、观看视频等功能。

按键映射:一种把掌机手柄输入映射为屏幕触摸输入的通用技术名称。

输入设备节点:所有的输入设备,例如屏幕、手柄、传感器,都会在系统底层以输入设备节点(一种文件的形式)存在,输入设备会产生数据在文件中,系统会读取这些文件中的数据并提供给系统应用使用。

陀螺仪:一种用于测量和检测物体角速度、角度变化或旋转运动的传感器,可以用于测量和检测设备旋转和方向变化,通过陀螺仪可以检测物体在三个维度上的旋转和倾斜,并将这些信息转换为电信号或数据。在掌机中,陀螺仪通常是指陀螺仪传感器,它可以感知设备在三个轴(X、Y、Z)上的旋转速度和方向变化。

通过手柄对只支持触摸的游戏或者应用进行控制,可以增强用户体验,例如,对于某些类型的游戏,如动作游戏、赛车游戏等,手柄操作可以提供更流畅和逼真的游戏体验。

当前有市场上已有的按键映射工具,通过按键映射技术,可以把手柄输入映射为触摸数据,例如,对于支持触摸的游戏,可以将滑动触摸点的操作转换为通过手柄的摇杆实现,但是由于手柄的摇杆位置受限,无法支持映射到所有需要滑动操作,导致在某些情况下,一些特定的滑动操作无法通过手柄的摇杆来准确实现,从而限制了手柄操作的完整性和灵活性,用户体验较差。

本申请实施例提供了一种数据处理方法,通过陀螺仪映射与按键映射共同作用,实现了通过手柄对只支持触摸的游戏或者应用进行控制。陀螺仪映射是一种将陀螺仪传感器的数据映射触摸屏的触摸数据的方法,以游戏控制为例,陀螺仪映射可以将设备的旋转动作映射到游戏角色的方向控制上。当玩家转动设备时,陀螺仪数据会被映射为角色在游戏中的转向或移动,这样可以提供更加直观和自然的游戏操作体验。

本申请提供的方案应用于任意具有手柄的便携式设备,例如该便携式设备可以是各种掌机。本申请提供的方案可应用于对各类触摸游戏(如手机游戏)中,包括但不限于射击类游戏、moba类游戏、休闲派对类游戏、角色扮演类游戏、格斗类游戏等等。

图1是本申请实施例提供的掌机的示例。如图1所示,掌机可包括手柄。手柄指掌机或游戏主机外接的操控器件。手柄用于用户对游戏、应用程序或掌机界面进行操作。手柄通过连接到掌机或主机,将用户的输入转换成相应的信号传递给系统。此外,掌机也可包括触摸屏、处理器、内存、存储器以及操作系统。其中,触摸屏为掌机上的显示装置,通常使用液晶或有机发光二极管(OLED)技术。它用于显示游戏、应用程序和媒体内容的图像信息。掌机屏幕的大小、分辨率和显示技术可能会有所不同。处理器用于执行各种计算任务和指令。处理器负责掌机的运算和数据处理,对游戏和应用程序的运行速度和性能起着重要的作用。内存用于存储数据和临时计算的内存组件,例如随机访问存储器(RAM)。内存储存掌机正在执行的游戏、应用程序和系统数据,对掌机的多任务处理和性能优化起着重要作用。存储器用于存储游戏、应用程序、媒体内容和用户数据的存储设备,例如固态硬盘或闪存卡。存储器是掌机上长期存储数据的地方,用户可以将游戏、应用程序和其他文件保存在其中。操作系统可以是掌机使用的软件系统,用于管理硬件资源、运行应用程序和提供用户界面。操作系统通常具有图形用户界面、应用程序管理存储管理等功能,以使用户可以方便地操作掌机。

通过长时间按压手柄的起始(home)键,调起快捷设置面板,可以如图2所示的设置界面,其包括“开启(或关闭)按键映射”按钮、“显示映射按键”按钮以及“配置映射按键”按钮。通过点击“开启(或关闭)按键映射”按钮可以开启或关闭按键映射功能,按键映射功能可用于将手柄数据转换为触摸数据。通过点击“显示映射按键”按钮可在配置按键映射界面中显示手柄的各个按键。配置按键映射界面可以浮在游戏/应用界面之上,方便用户看到。用户可通过拖动映射位置、开启/关闭映射按钮、调整大小、调整模式等方法进行按键映射的调整。例如,用户可以配置左摇杆控制人物移动、A键控制人物出腿、B键控制人物出拳,其它的按钮处于未启用的状态。保存配置之后,用户便可以通过手柄操控游戏/应用,游戏/应用的显示界而可以是如图3所示的界面。

掌机设备还具有陀螺仪传感器,通过陀螺仪传感器可以读取陀螺仪数据,在某一手柄上的按键设置了映射触摸点的情况下,当检测到该按键按下时,即当获取到用于标识手柄按键按下的第一手柄数据时,获取当前设备的第一陀螺仪数据,通过第一手柄数据确定手柄按键对应的映射点的位置信息,通过第一陀螺仪数据确定当前设备的初始姿态,随着用户旋转设备,获取设备的第二陀螺仪数据,通过第二陀螺仪数据确定设备旋转后的调整姿态,基于初始姿态及调整姿态对手柄按键对应的映射点的位置信息进行调整,得到设备旋转后的手柄按键对应的映射点的位置信息。当检测到该按键抬起时,结束该映射点的移动,使得该映射点在结束位置抬起。如图3所示,用户使用手柄操作角色射击,按下手柄上的A键后,可以通过晃动掌机,调整瞄准点。通过结合陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作,弥补了手柄摇杆位置受限的问题,提高了手柄操作的完整性和灵活性,能够更好地适应需要滑动操作的游戏或应用,提供更流畅和逼真的操作体验,使用户能够更自如地进行游戏或应用操作。

为了便于理解,请参阅图4,图4为本申请实施例中数据处理方法的应用环境图,如图4所示,本申请实施例中数据处理方法应用于数据处理系统。数据处理系统包括:服务器和终端设备;其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。

服务器首先获取第一手柄数据及第一陀螺仪数据,其中,第一手柄数据包括第一事件,第一事件的事件类型为按键事件类型,第一事件的事件代码用于标识触发第一事件的按键,第一事件的取值用于标识触发第一事件的按键操作,第一陀螺仪数据用于标识设备的初始姿态;其次,服务器确定第一事件的取值标识的按键操作在触摸屏中的第一映射点的第一位置信息;接着,服务器获取第二陀螺仪数据,其中,第二陀螺仪数据用于标识设备旋转后的调整姿态;然后,服务器根据第一陀螺仪数据及第二陀螺仪数据,对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息,其中,第二位置信息用于标识设备旋转后第一映射点的位置。

下面将从服务器的角度,对本申请中数据处理方法进行介绍。请参阅图5,本申请实施例提供的数据处理方法包括:步骤S110至步骤S140。具体的:

S110、获取第一手柄数据及第一陀螺仪数据。

其中,第一手柄数据包括第一事件,第一事件的事件类型为按键事件类型,第一事件的事件代码用于标识触发第一事件的按键,第一事件的取值用于标识触发第一事件的按键操作,第一陀螺仪数据用于标识设备的初始姿态。

可以理解的是,手柄数据是指通过操作手柄或控制器产生的数据。手柄数据可以包括起始按键、摇杆、方向键、扳机等各种按键的操作信息。示例性的,以第一手柄数据为按键的操作信息为例,当手柄上某一的按键被设置“开启按键映射”功能,当用户按下手柄上的该按键后,可以从手柄输入设备节点中获取得到第一手柄数据。值得注意的是,在计算机编程和交互设计的领域,数据通常通过用于表示交互行为的事件表示,而事件类型和事件代码是用于描述和处理事件的重要概念。

事件类型(Event Type):事件类型指的是用户在应用程序或系统中执行的交互动作或触发的行为。它可以是按键按下、鼠标移动、触摸屏操作、手柄操作等。不同的事件类型对应不同的操作行为,开发人员可以根据事件类型来识别并处理相应的用户输入。

事件代码(Event Code):事件代码是用于标识特定事件类型的数字或宇符串代码。每个事件类型通常都会有一组特定的事件代码,用于表示不同的用户交互行为。例如,鼠标左键点击事件的事件代码可能是1,键盘按键事件的事件代码可能按照键盘上按键的布局进行编码。通过事件代码,开发人员可以识别和处理特定的用户输入,以执行相应的操作或触发相应的函数。事件类型和事件代码是在软件开发中用于捕获和响应用户的交互行为的术语。通过获取和处理不同的事件类型和事件代码,开发人员可以实现与用户的交互,使应用程序能够根据用户的输入改变行为或呈现相应的结果。这种交互性可以应用于各种应用程序,包括游戏、用户界面、网页和移动应用等。

示例性地,事件类型可以包括以下三种类型:

1、EV_KEY:表示按键事件。当用户按下或释放手柄、键盘、鼠标或其他输入设备上的按键时,会生成EV_KEY 事件。每个按键都有一个唯一的键码(key code)与之对应,通过EV_KEY事件可以获取按键的状态(按下或释放)以及对应的键码。

2、EV_ABS:表示位置事件(其也可称为绝对位置事件、绝对输入事件、绝对坐标事件等)。当使用绝对位置输入设备(如触摸屏)时,会生成EV_ABS事件。EV_ABS事件提供了输入设备上的绝对位置信息,如触摸点的坐标、触摸压力等。

3、EV_SYN:表示同步事件。EV_SYN事件用于同步输入事件流,它在输入事件序列的不同部分之间插入一个同步点,以确保事件的顺序和同步。EV_SYN事件通常用于标识输入事件序列的开始和结束。

综上,EV_KEY 用于表示按键事件,EV_ABS用于表示绝对位置事件,而EV_SYN用于同步输入事件流。它们分别用于不同类型的输入设备和事件。

示例性地,对于触摸操作来说,按键事件的事件代码可包括以下两种:

1、BTN_TOUCH:表示触摸设备的触摸状态。当手指触摸到触摸设备时,BTN_TOUCH事件会被触发,指示设备正在被触摸。当手指离开触摸设备时,BTN_TOUCH 事件会被释放,指示设备不再被触摸。

2、BTN_TOOL_FINGER:表示触摸设备的工具类型。当触摸设备被手指触摸时,BTN_TOOL_FINGER 事件会被触发,指示工具类型为手指。其他工具类型,如触摸笔或手掌等,可能会有不同的BTN_TOOL来表示。

示例性地,对于手柄操作来说,按键事件的事件代码可包括以下:

1、与方向按键相关的事件代码,其包括但不限于:BTN DPAD_UP:上方向按键。

BTN_DPAD_DOWN:下方向按键。

BTN DPAD_LEFT:左方向按键。

BTN DPAD_RIGHT:右方向按键。

2、与摇杆按键相关的事件代码,其包括但不限于:

BTN_THUMBL:左摇杆按键。BTN_THUMBR:右摇杆按键。

3、与功能按键相关的事件代码,其包括但不限于:

BTN_START:开始按键。

BTN SELECT:选择按键。

BTN_A:A按键。

BTN_B:B按键。

BTN_X:X按键。

BTN_Y:Y按键。

BTN_TRIGGER:扳机按键。

应当理解,对于手柄操作来说,按键事件的事件代码用于标识手柄上的不同按键。具体使用哪些事件代码取决于手柄设备和驱动程序的支持,因此在实际使用中可能会有所差异,本申请对此不作具体限定。例如,在其他可替代实施例中,对于游戏手柄操作来说,按键事件的事件代码可包括BTN_GAMEPAD,BTN_GAMEPAD是指游戏手柄上的一个按钮,它是游戏手柄上的一个固定功能键,通常用于操控游戏中的不同操作,比如开始游戏、暂停、选择、确认等。BTN_GAMEPAD 在不同的游戏平台和手柄上可能有不同的命名和位置,但它通常是一个用来控制游戏的重要按钮之一。

示例性地,位置事件的事件代码可包括以下六种:

1、ABS_MT_SLOT:表示触摸点的槽位(slot),其可用于区分控制触摸点的手指,每个触摸点所属的槽位都会被分配一个唯一的标识。通过该事件类型,可以获取当前触摸点所在的槽位的标识。

2、ABS_MT_TRACKING_ID:表示触摸点的检测ID(tracking ID),每个触摸点都会被分配一个唯一的检测ID。通过该事件代码的取值可以获取当前触摸点的检测ID。例如,一个非负数表示一次接触,ffffffff 表示一次接触结束,即手指抬起。

3、ABS_MT_POSITION_X:表示触摸点在X轴上的位置,其提供了触摸点相对于屏幕左上角的水平位置。

4、ABS_MT_POSITION_Y:表示触摸点在Y轴上的位置,其提供了触摸点相对于屏幕左上角的垂直位置。

5、ABS_MT_TOUCH_MAJOR:表示触摸点的主要接触面积,其提供了触摸点与屏幕接触的主要面积大小。

6、ABS_MT_TOUCH_MINOR:表示触摸点的次要接触面积,其提供了触摸点与屏幕接触的次要面积大小。

其中,ABS_MT_SLOT 用于标识触摸点所在的槽位,可以用于多点触摸设备中同时检测多个触摸点的状态。ABS_MT_TRACKING_ID用于标识触摸点的检测ID,可以用于检测触摸点的移动、持续性操作等。在多点触摸设备中,每个触摸点都会有一个检测ID和所在的槽位的标识,通过这两个事件代码可以对多个触摸点进行准确的检测和处理。而ABS_MT_POSITION_X和ABS_MT_POSITION_Y提供了触摸点在屏幕的X轴和Y轴上的位置信息。ABS_MT_TOUCH_MAJOR 和 ABS_MT_TOUCH_MINOR提供了触摸点的接触面积信息。

示例性地,同步事件的事件代码可以是SYN_REPORT,其代表一个事件结束。当然,在其他可替代实施例中,同步事件的事件代码也可以包括代表一个时间的开始的事件代码,本申请对此不作具体限定。就算只有事件的结束,也可以实现对事件进行区分。

值得注意的是,上面涉及的事件类型和事件代码仅为本申请的示例,不应理解为对本申请的限制。例如,在其他可替代实施例中,事件类型和事件代码也可以通过其他形式表示,或者也可以包括其他事件类型,或者也可以包括其他事件代码。

示例性地,该手柄数据的一个示例如下所示:

/dev/input/event5:EV_KEY BTN TL DOWN

/dev/input/event5:EV_SYN SYN REPORT00000000

/dev/input/event5:EV_KEY BTN_TL UP

/dev/input/event5:EV_SYN SYN_REPORT 00000000。

其中,/dev/input/event5是该手柄数据的读取路径,EV_KEY表示按键事件,BTN_TL表示左上方的按键(或扳机),DOWN表示按下,UP表示释放。EV_SYN是一个同步事件,用于同步多个事件的状态。00000000是一个时间戳或计数器。通过上述数据可知:用户按下了左上方的按键(或扳机)。例如,该左上方的按键可以是L1按键。

示例性地,该手柄数据的另一个示例如下所示:

/dev/input/event5:EV_KEYBTN_GAMEPADDOWN

/dev/input/event5:EV_SYNSYN_REPORT00000000

/dev/input/event5:EV_KEYBTN_GAMEPADUP

/dev/input/event5:EV_SYN SYN_REPORT00000000。

其中,/dev/input/event5是输入设备的路径,EV_KEY表示按键事件,BTN_GAMEPAD表示游戏手柄按键,DOWN表示按下,UP表示释放。EV_SYN是一个同步事件,用于同步多个事件的状态。00000000是一个时间戳或计数器。通过上述数据可知:用户按下了游戏手柄按键。例如,该按键可以是按键A。

陀螺仪数据是通过旋转掌机设备产生的数据,或者是通过掌机设备在三维空间的方向状态产生的。陀螺仪数据是从掌机设备中的陀螺仪传感器中读取得到的。示例性的,当手柄上某一的按键被设置“开启按键映射”功能,当用户按下手柄上的该按键后,从设备的陀螺仪中获取得到第一陀螺仪数据。

陀螺仪数据用于表征设备的角度旋转信息,如图6所示,坐标轴的分布情况为:垂直于触摸屏的方向为z轴,由触摸屏底部指向顶部的方向为y轴,由触摸屏左部指向右部的方向为x轴。

陀螺仪数据包括掌机设备绕x轴的旋转角度、y轴的旋转角度以及z轴的旋转角度,陀螺仪数据可以通过四元数表示。第一陀螺仪数据是指,当检测到用户按下手柄上的该按键后,当前掌机设备的绕x轴的旋转角度、y轴的旋转角度以及z轴的旋转角度,即掌机设备的初始姿态。示例性的,通过四元数表示第一陀螺仪数据:event1=[event.data[3],event.data[0],event.data[1],event.data[2]]。

S120、确定第一事件的取值标识的按键操作在触摸屏中的第一映射点的第一位置信息。

可以理解的是,将手柄上的按键操作与触摸屏上的特定位置建立映射关系。具体来说,根据第一事件的取值,确定与该按键操作相对应的在触摸屏上的第一映射点。第一映射点是指在触摸屏上的一个特定位置,它与手柄上的按键操作相关联。通过确定第一映射点的第一位置信息,系统能够知道在触摸屏上应该显示或响应手柄按键操作的具体位置。这个过程涉及到将手柄的输入信号与触摸屏的显示进行关联,以便用户可以通过手柄上的按键操作在触摸屏上进行交互。第一位置信息的确定可能基于事先定义的映射规则或配置,它确保了手柄按键操作在触摸屏上的准确对应关系。这样,当用户按下手柄上的某个按键时,系统可以根据第一位置信息在触摸屏上显示相应的反馈或执行相应的操作,使用户能够通过手柄对触摸屏上的游戏或应用进行控制。这个映射过程的准确性和合理性对于提供良好的用户体验至关重要。

进一步地,根据预设的配置关系,可以获取得到第一事件的取值标识的按键操作映射到触摸屏中的第一映射点,进而确定该第一映射点的第一位置信息,位置信息可以通过坐标数据表示。示例性的,当用户按下了手柄上的按键A后,可以获取得到按键A映射到触摸屏中第一映射点的坐标数据为(0x72,0x693)。

S130、获取第二陀螺仪数据。

其中,第二陀螺仪数据用于标识设备旋转后的调整姿态。

可以理解的是,第二陀螺仪数据指的是在设备旋转之后获取到的陀螺仪数据。第二陀螺仪数据用于标识设备旋转后的调整姿态,即设备在空间中的方向和角度变化。通过获取第二陀螺仪数据,可以了解到设备在经过旋转后的当前姿态。这一步骤的重要性在于,它允许系统根据设备的实际旋转情况对映射点的位置进行动态调整。由于手柄操作可能涉及到设备的旋转,了解设备的调整姿态可以更准确地模拟滑动操作或其他与设备姿态相关的操作。

例如,在游戏中,当玩家旋转设备时,系统可以根据第二陀螺仪数据来调整映射点的位置,使其更符合玩家的实际操作意图。这样可以提供更自然和直观的游戏体验,使用户感觉到手柄操作与游戏中的动作更加一致。

第二陀螺仪数据的获取使得系统能够实时响应设备的姿态变化,从而提高手柄操作的灵活性和准确性。它为后续的位置调整提供了关键的输入信息。

示例性的,当用户旋转掌机设备后,读取旋转后的掌机设备的第二陀螺仪数据,第二陀螺仪数据可以表示为event2。

S140、根据第一陀螺仪数据及第二陀螺仪数据,对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息。

其中,第二位置信息用于标识设备旋转后第一映射点的位置。

可以理解的是,根据第一陀螺仪数据及第二陀螺仪数据确定掌机设备的旋转前后的旋转弧度,根据旋转弧度对第一映射点的第一位置信息进行调整,得到掌机设备旋转后的第一映射点的第二位置信息。

第一陀螺仪数据用于标识设备的初始姿态,而第二陀螺仪数据用于标识设备旋转后的调整姿态。通过结合这两个数据,系统可以计算出设备在旋转后的位置变化。具体来说,根据陀螺仪数据的变化,可以确定设备在空间中的旋转角度和方向。然后,根据这些信息,对第一映射点的第一位置信息进行相应的调整,以得到旋转后第一映射点的新位置,即第二位置信息。第二位置信息用于标识设备旋转后第一映射点的位置。这意味着,即使设备发生了旋转,系统仍然能够准确地确定第一映射点在触摸屏上的新位置。这种位置调整的目的是为了保持手柄操作与触摸屏显示之间的一致性和准确性。无论设备如何旋转,系统都能够根据陀螺仪数据动态地调整第一映射点的位置,使用户在触摸屏上的交互更加自然和流畅。通过这种方式,即使玩家在使用手柄时旋转了设备,系统仍能够准确地知道和响应第一映射点的位置变化,提供更好的用户体验和交互效果。

进一步的,将第二位置信息发送至应用程序(例如游戏程序),应用程序根据该第二位置信息渲染图像,将渲染后的图像在触摸屏中进行显示。

第二位置信息可用于确定屏幕数据,该屏幕数据可用于生成渲染图像。该屏幕数据指掌机显示屏上的图像数据,其包括用于显示游戏、应用程序或操作系统界面的像素信息。该屏幕数据可以表示为图像的二维数组,每个元素代表一个像素的颜色或亮度值。根据前面步骤中确定的第二位置信息,系统会在此基础上生成第一渲染图像。第一渲染图像是根据第二位置信息进行计算和绘制的,它反映了设备旋转后第一映射点在触摸屏上的新位置。生成第一渲染图像的过程可能涉及到图形处理和渲染技术。系统会根据第二位置信息以及其他相关的参数和数据,使用图形库或渲染引擎来创建图像。展示第一渲染图像意味着将生成的图像显示在触摸屏上,使用户能够看到与设备旋转后的位置相对应的内容。这可以通过图形用户界面(GUI)或其他显示技术来实现。这样,用户就可以在触摸屏上看到根据第二位置信息生成的第一渲染图像,从而获得与设备旋转相应的视觉反馈。这种实时的渲染和展示使得用户能够直观地了解到手柄操作在触摸屏上的效果。例如,在游戏中,第一渲染图像可能显示角色或物体的移动、操作反馈等,使用户能够清晰地看到自己的操作对游戏场景的影响。通过基于第二位置信息生成并展示第一渲染图像,系统提供了一种直观的方式,将手柄操作与触摸屏上的视觉呈现相结合,使用户能够更好地与应用或游戏进行交互,并获得更真实和令人满意的体验。

本申请实施例提供的方法,通过结合陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作,弥补了手柄摇杆位置受限的问题,提高了手柄操作的完整性和灵活性,能够更好地适应需要滑动操作的游戏或应用,提供更流畅和逼真的操作体验,使用户能够更自如地进行游戏或应用操作。

在本申请的图5对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图7,步骤S140进一步包括子步骤S141至子步骤S143。具体的:

S141、根据第一陀螺仪数据生成初始姿态矩阵,以及,根据第二陀螺仪数据生成调整姿态矩阵。

可以理解的是,当陀螺仪数据为四元数时,通过四元数到矩阵的转换公式,将第一陀螺仪数据与第二陀螺仪数据转换为对应的矩阵,得到初始姿态矩阵及调整姿态矩阵。将陀螺仪数据转换为姿态矩阵的过程包括:

1)将陀螺仪数据的四元数转换为单位四元数。为了确保四元数是规范化的,即其模为1,可以通过除以四元数的模来实现。

2)计算旋转轴(轴向量):从四元数中提取出旋转轴的信息。可以通过将四元数的实部设置为 0,并将虚部作为旋转轴的向量。

3)计算旋转角度:根据四元数的参数,可以确定旋转的角度。通常,这个角度可以通过四元数的模计算来获得。

4)构建姿态矩阵:使用旋转轴和旋转角度,根据特定的矩阵计算公式来构建姿态矩阵。常见的计算方法包括使用罗德里格斯旋转公式(Rodrigues' rotation formula)或其他相关的矩阵变换公式。

示例性的,使用罗德里格斯旋转公式计算姿态矩阵:

假设有一个单位四元数q=[w,x,y,z],其中w是实部,x、y、z是虚部。旋转轴为n=[x,y,z],旋转角度为θ。姿态矩阵可以通过以下公式计算:

R=I+2n×n+2n×n×n其中,I是单位矩阵,n×n表示向量n的叉积,×表示叉积运算符。

S142、根据初始姿态矩阵及整姿态矩阵,计算设备的调整姿态相对于初始姿态的旋转弧度。

其中,旋转弧度包括设备的调整姿态相对于初始姿态在x轴的偏移值及y轴的偏移值。

可以理解的是,根据初始姿态矩阵及整姿态矩阵,计算设备的调整姿态相对于初始姿态的旋转弧度的过程包括:

1)计算初始姿态矩阵的逆矩阵。

2)将初始姿态矩阵的逆矩阵与调整姿态矩阵相乘,得到旋转矩阵。

3)通过转换旋转矩阵得到旋转向量。

其中,旋转向量包括x轴的偏移值、y轴的偏移值及z轴的偏移值。

4)从旋转向量中确定x轴的偏移值及在y轴的偏移值,得到旋转弧度。

示例性的,假设由第一陀螺仪数据event1计算得到的初始姿态矩阵为R1,由第二陀螺仪数据event2计算得到的调整姿态矩阵为R2。首先,对初始姿态矩阵为R1进行逆矩阵计算,得到初始姿态矩阵的逆矩阵R1_inverse。接着,将初始姿态矩阵的逆矩阵R1_inverse与调整姿态矩阵为R2相乘,得到旋转矩阵R_rel,R_rel=R1_inverse×R2。最后,将旋转矩阵R_rel转换为旋转向量angle_rel,从旋转向量angle_rel中可以读取到掌机设备相对于初始姿态在x轴、y轴及z轴上的偏移值,将x轴的偏移值angleX_rel与y轴的偏移值angleY_rel作为旋转弧度。

S143、根据旋转弧度对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息。

可以理解的是,根据旋转弧度对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息的过程包括:

1)从第一位置信息中确定x轴的初始值及y轴的初始值。

2)将x轴的初始值与x轴的偏移值相加,得到x轴的调整值,以及,将y轴的初始值与y轴的偏移值相加,得到y轴的调整值。

3)根据x轴的调整值及y轴的调整值,得到第一映射点的第二位置信息。

示例性的,从第一位置信息中确定x轴的初始值及y轴的初始值,得到x轴的初始值originX及y轴的初始值originY。将x轴的初始值originX与x轴的偏移值angleX_rel相加,得到x轴的调整值;以及,将y轴的初始值originY与y轴的偏移值angleY_rel相加,得到y轴的调整值。根据x轴的调整值及y轴的调整值,得到第一映射点的第二位置信息。

本申请实施例提供的方法,通过将陀螺仪数据转换为姿态矩阵,并进一步计算旋转弧度,能够更准确地描述设备的姿态变化;计算设备的调整姿态相对于初始姿态的旋转弧度,可以实现对设备姿态的调整和补偿,这有助于保持设备的稳定性和准确性;根据旋转弧度对第一映射点的位置信息进行调整,确保了位置信息的准确性和实时性;通过使用陀螺仪数据进行姿态计算和调整,系统能够适应不同的环境和任务需求,提高系统的适应性和灵活性,通过旋转变换前后的陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作。

在本申请的图5对应的实施例提供的数据处理方法的一个可选实施例中,步骤S120进一步包括:

在第一事件的取值标识的按键操作为按下操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

可以理解的是,该至少一个按键可以包括手柄的所有按键。示例性地,该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是预先配置的信息。例如,该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是通过在配置按键映射界面上执行的配置操作获取的信息。该配置按键映射界面可以浮在游戏/应用界面之上,方便用户看到。例如该配置按键映射界面可以是如图3所示的界面。

通过引入该至少一个按键和该触摸屏中的至少一个位置之间的对应关系,可以实现按键与某一个屏幕坐标点之间的映射,比如按下手柄上的A按键,对应的能按下用户设置的触摸屏上特征的UI元素位置,比如是开火,进而实现了将第一事件的取值标识的按键操作映射为触摸屏中的第一映射点的第一位置信息的准确性。

本申请实施例提供的方法,将按键操作映射到触摸屏中的特定位置,提高了操作的准确性和用户体验,同时增加了交互方式的多样性和设备的兼容性,有助于提升设备的整体性能和功能。

在本申请的图5对应的实施例提供的数据处理方法的一个可选实施例中,第一事件的事件代码标识的按键为多功能按键时,第一事件的事件代码还用于标识多功能按键的操作模式;

步骤S120进一步包括:

在第一事件的取值标识的按键操作为开启操作模式的操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

可以理解的是,该多功能按键可以是摇杆或可以进行多种操作的功能按键。该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是预先配置的信息,具体可参考上文描述,为避免重复,此处不再赘述。

本申请实施例提供的方法,将多功能按键与触摸屏位置映射,并根据操作模式确定第一映射点的位置信息,使用户能够更高效地利用按键功能,适应不同场景需求,提升了设备的实用性和用户体验。

在本申请的图5对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图8,数据处理方法还包括步骤S210至步骤S230。具体的:

S210、获取第二手柄数据。

其中,第二手柄数据包括第二事件,第二事件的事件类型为按键事件类型,第二事件的事件代码用于标识触发第二事件的按键,第二事件的取值用于标识触发第二事件的按键操作。

S220、通过转换第二事件的事件代码得到第三事件。

其中,第三事件的事件代码用于标识第三事件为触摸事件,第三事件的取值等于第二事件的取值,第三事件的取值用于标识触发第三事件的触摸操作,第三事件的取值标识的触摸操作为与第二事件的取值标识的按键操作对应的操作。

可以理解的是,假设该第二事件如下所示:

/dev/input/event5:EV_KEY BTN_GAMEPAD DOWN。

其中,/dev/input/event5是输入设备的路径,EV_KEY表示按键事件,BTN_GAMEPAD表示游戏手柄按键,DOWN表示按下操作。

则该第三事件为:

/dev/input/event6:EV_KEY BTN_TOUCH DOWN。

其中,/dev/input/event6是输入设备的路径,EV_ABS表示绝对事件,ABS_MT_TRACKING_ID表示多点触控的ID,DOWN表示按下操作。

类似的,假设该第二事件如下所示:

/dev/input/event5:EV_KEY BTN_GAMEPAD UP。

其中,/dev/input/event5是输入设备的路径,EV_KEY表示按键事件,BTN_GAMEPAD表示游戏手柄按键,UP表示释放操作。

则该第三事件为:

/dev/input/event6:EV_KEYBTN_TOUCH UP。

其中,/dev/input/event6是输入设备的路径,EV_ABS表示绝对事件,ABS_MT_TRACKING_ID表示多点触控的ID,UP表示释放操作。

S230、基于第三事件确定第一触摸数据。

可以理解的是,该第一触摸数据是通过将手柄数据转换为模拟触摸屏上的触摸数据而生成的数据。该第一触摸数据包括该第三事件,即该第一触摸数据用于模拟手指在触摸屏上的操作,例如点击、滑动、缩放等操作。此外,该第一触摸数据还可以包括触摸点标识、触摸点位置、触摸压力等信息。

进一步的,将第一触摸数据与第二位置信息发送至应用程序(例如游戏),应用程序根据第一触摸数据与第二位置信息生成渲染图像,并将渲染图像在触摸屏中进行展示。

应用程序基于第一触摸数据与第二位置信息生成融合数据,该融合数据可用于确定屏幕数据,该屏幕数据可用于生成渲染图像。该屏幕数据指掌机显示屏上的图像数据,其包括用于显示游戏、应用程序或操作系统界面的像素信息。该屏幕数据可以表示为图像的二维数组,每个元素代表一个像素的颜色或亮度值。本申请实施例提供的方法,通过转换手柄数据中第二事件的事件代码得到第三事件,然后基于该第三事件确定第一触摸数据,能够提升手柄和触摸屏的兼容性以及手柄的使用性能。

在本申请的图8对应的实施例提供的数据处理方法的一个可选实施例中,步骤S230之前还包括:

确定第二事件的取值标识的按键操作在触摸屏中的第二映射点的第三位置信息;

在至少一个预设方向中任意一个预设方向上,将第三位置信息与触摸屏中参考点位置之间的距离,确定为第四事件的取值,其中,第四事件的事件类型为位置事件类型,第四事件的事件代码用于标识第四事件为用于标识预设方向上的坐标位置的事件,第四事件的取值用于标识触发第三事件的触摸操作在触摸屏中的触摸点位置在预设方向上的位置信息;

步骤S230进一步包括:

在第三事件之后拼接第四事件,得到第一触摸数据。

可以理解的是,假设该映射位置为(0x72,0x693),且预设方向包括x轴方向和y轴方向,则该第四事件包括:

/dev/input/event6:EV_ABSABS_MT_POSITION_X 00000072

/dev/input/event6:EV_ABS ABS_MT_POSITION_Y 00000693。

这种情况下,如果该第三事件为:

/dev/input/event6:EV_KEY BTN_TOUCH DOWN。

则该第一触摸数据可包括:

/dev/input/event6:EV_KEYBTN_TOUCHDOWN

/dev/input/event6:EV_ABSABS_MT_POSITION_X 00000072

/dev/input/event6:EV_ABS ABS_MT_POSITION_Y 00000693。

在一些实施例中,在该第二事件的取值标识的按键操作为按下操作的情况下,基于至少一个按键和该触摸屏中的至少一个位置之间的对应关系,将该至少一个位置中与该第二事件的事件代码标识的按键对应的位置,确定为该映射位置。

可以理解的是,该至少一个按键可以包括手柄的所有按键。该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是预先配置的信息。例如,该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是通过在配置按键映射界面上执行的配置操作获取的信息。该配置按键映射界面可以浮在游戏/应用界面之上,方便用户看到。例如该配置按键映射界面可以是如图3所示的界面。

本申请实施例提供的方法,通过引入该至少一个按键和该触摸屏中的至少一个位置之间的对应关系,可以实现按键与某一个屏幕坐标点之间的映射,比如按下手柄上的A按键,对应的能按下用户设置的触摸屏上特征的UI 元素位置,比如是开火,进而实现了将第二事件转换为第三事件的目的并保证了第三事件的准确性。

在一些实施例中,该第二事件的事件代码标识的按键为多功能按键时,该第二事件的事件代码还用于标识该多功能按键的操作模式;在该第二事件的取值标识的按键操作为开启该操作模式的操作的情况下,基于至少一个按键和该触摸屏中的至少一个位置之间的对应关系,将该至少一个位置中与该第二事件的事件代码标识的按键对应的位置,确定为该映射位置。

可以理解的是,该多功能按键可以是摇杆或可以进行多种操作的功能按键。该至少一个按键和该触摸屏中的至少一个位置之间的对应关系可以是预先配置的信息,具体可参考上文描述,为避免重复,此处不再赘述。

在一些实施例中,该方法还可包括:在该第二事件的取值为用于标识关闭该操作模式的操作的情况下,基于至少一个模式和至少一个移动方向之间的对应关系,基于该至少一个移动方向中与该操作模式对应的移动方向,确定该映射位置。

示例性地,该至少一个模式可以包括上、下、左、右方向的操作。

示例性地,该至少一个移动方向可以包括上、下、左、右方向。

示例性地,该至少一个模式和该至少一个移动方向之间的对应关系可以是预先配置的信息。例如,该至少一个模式和该至少一个移动方向之间的对应关系可以是通过在配置按键映射界面上执行的配置操作获取的信息。该配置按键映射界面可以浮在游戏/应用界面之上,方便用户看到。例如该配置按键映射界面可以是如图2所示的界面。

本申请实施例提供的方法,通过引入该至少一个按键和该触摸屏中的至少一个位置之间的对应关系,可以实现摇杆与屏幕移动坐标之间的映射,如操作左摇杆往上推,对应的能控制游戏中人物或操作的物体往前走,即摇杆映射为屏幕按下->滑动->抬起,进而实现了将第二事件转换为第三事件的目的并保证了第三事件的准确性。

在本申请的图8对应的实施例提供的数据处理方法的一个可选实施例中,步骤S230之前还包括:

分配用于标识第三事件的触摸点的触摸点标识;

将触摸点标识,确定为第五事件的取值,其中,第五事件的事件类型为位置事件类型,第五事件的事件代码用于标识第五事件为用于标识触摸点的事件,第五事件的取值用于标识第三事件的触摸点;

步骤S230进一步包括:

在第五事件之后拼接第三事件,得到第一触摸数据。

示例性地,该第五事件为:

/dev/input/event6:EV ABS ABS_MT_TRACKING_ID 00000007。

这种情况下,如果该第三事件为:

/dev/input/event6:EV_KEY BTN_TOUCH DOWN。

则该第一触摸数据可包括:

/dev/input/event6:EV ABS ABS_MT_TRACKING_ID 00000007

/dev/input/event6:EV_KEY BTN_TOUCHDOWN。

在本申请的图8对应的实施例提供的数据处理方法的一个可选实施例中,步骤S230之前还包括:

分配用于标识第三事件的触摸点所属的槽位的槽位标识;

将槽位标识,确定为第六事件的取值,其中,第六事件的事件类型为位置事件类型,第六事件的事件代码用于标识第六事件为用于标识槽位的事件,第六事件的取值用于标识第三事件的触摸点所属的槽位;

步骤S230进一步包括:

在第六事件之后拼接第三事件,得到第一触摸数据。

示例性地,在该触摸屏的触摸点包括多个触摸点的情况下,将将该槽位标识,确定为第六事件的取值。

示例性地,该第六事件为:

/dev/input/event6:EV_ABS ABS_MT_SL OT00000000。

这种情况下,如果该第二事件为:

/dev/input/event6:EV_KEY BTN_TOUCHDOWN。

则该第一触摸数据可包括:

/dev/input/event6:EV_ABSABS_MT_SLOT 00000000

/dev/input/event6:EV_KEY BTN_TOUCHDOWN。

可以理解的是,该第一触摸数据可包括上文涉及的第四事件至第六事件以及同步事件中的至少一项。

举例来说,假设该手柄数据如下所示:

/dev/input/event5:EV_KEY BTN_GAMEPADDOWN

/dev/input/event5:EV_SYN SYN_REPORT00000000

/dev/input/event5:EV_KEY BTN_GAMEPADUP

/dev/input/event5:EV_SYN SYN_REPORT00000000。

其中,/dev/input/event5是输入设备的路径,EV_KEY表示按键事件,BTN_GAMEPAD表示游戏手柄按键,DOWN表示按下操作,UP表示释放操作。EV_SYN是一个同步事件,用于同步多个事件的状态。00000000是一个时间戳或计数器。通过上述数据可知:用户按下了游戏手柄按键。例如,该案件可以是按键A。

本实施例中,假设GAMEPAD按键的映射屏幕坐标配置为(0x72,0x693),则可以根据系统输入数据标准,将用户按下 GAMEPAD按键的手柄数据转换为第一触摸数据,该第一触摸数据可包括:

/dev/input/event6:EV ABSABS_MT_TRACKING_ID 00000007

/dev/input/event6:EV_KEYBTN_TOUCH DOWN

/dev/input/event6:EV_ABSABS_MT_POSITION_X00000072

/dev/input/event6:EV_ABSABS_MT_POSITION_Y00000693

/dev/input/event6:EV_SYNSYN_REPORT 00000000

/dev/input/event6:EV_ABSABS_MT_TRACKING_IDffffffff

/dev/input/event6:EV_KEYBTN_TOUCH UP

/dev/input/event6:EV_SYN SYN_REPORT 00000000。

其中,/dev/input/event6是输入设备的路径,EV_ABS表示绝对事件,ABS_MT_TRACKING_ID表示多点触控的ID,DOWN表示按下操作,UP表示释放操作,ABS_MT_POSITION_X和ABS_MT_POSITION_Y表示触摸的x和y坐标。EV_SYN是一个同步事件,用于同步多个事件的状态。00000000是一个时间戳或计数器。

在本申请的图5对应的实施例提供的数据处理方法的一个可选实施例中,步骤S110进一步包括:

从手柄输入设备节点中读取第一手柄数据,以及,从设备的陀螺仪中读取第一陀螺仪数据。

可以理解的是,响应于针对映射功能控件执行的开启操作,从该手柄输入设备节点中读取该第一手柄数据;该映射功能控件用于控制开启或者关闭电子设备将从该手柄输入设备节点获取的数据转换为触摸数据的功能。示例性地,响应于针对映射功能控件执行的开启操作,在该手柄输入设备节点存在该第一手柄数据时,从该手柄输入设备节点中读取该第一手柄数据。

示例性地,该开启操作可以是在快捷设置面板上针对“开启(或关闭)按键映射”按钮执行的点击操作。该快捷设置面板可以是如图2所示的设置界面,其包括“开启(或关闭)按键映射”按钮、“显示映射按键”按钮以及“配置映射按键”按钮。

步骤S110进一步还包括:

响应于该开启操作,将数据的读取路径从该屏幕输入设备节点切换至该虚拟输入设备节点。

本申请实施例提供的方法,响应于针对映射功能控件执行的开启操作,将用于进行图像渲染的数据的读取路径从该屏幕输入设备节点切换至该虚拟输入设备节点,能够避免图像渲染装置从屏幕输入设备节点读取用于进行图像渲染的数据,进而能够保证图像渲染的准确性。此外,该开启操作不仅触发图像渲染装置从该手柄输入设备节点中读取该手柄数据,还用于切换用于进行图像渲染的数据的读取路径,能够降低数据融合过程中用户的操作复杂度。

步骤S140之后还包括:

将第二位置信息写入虚拟输入设备节点。

可以理解的是,虚拟输入设备节点是指在计算机系统中模拟的一个输入设备节点,其并非真实的物理设备,而是一个虚拟设备,用于接收人机交互的输入信号。在操作系统中,可以为每个输入设备分配一个节点,用于接收设备发送的输入数据。这些节点可以是硬件设备,例如手柄、键盘、鼠标、触摸板等,也可以是虚拟设备,如虚拟键盘、虚拟鼠标、触摸屏模拟器等。虚拟输入设备节点在系统中的作用类似于真实的输入设备节点,它可以接收应用程序发送的输入数据,并模拟相应的用户操作。通过虚拟输入设备节点,应用程序可以向系统发送模拟的键盘按键、鼠标点击、触摸事件等,以实现自动化操作、游戏控制、应用程序测试等功能。总之,虚拟输入设备节点是一种模拟的输入设备接口,通过将该融合数据写入虚拟输入设备节点,可以模拟用户对计算机系统的输入操作。

应用程序从虚拟输入设备节点读取第二位置信息,并基于第二位置信息生成并展示第一渲染图像。

为便于理解,请参阅图9,图9是本申请实施例提供的数据处理方法的适宜性流程图。如图9所示,该数据处理方法包括:

1)读取手柄数据,以及,读取陀螺仪数据。

可以理解的是,通过检测器检测手柄输入设备节点的状态,当手柄输入设备节点的状态发生变化时,通过调用与数据获取关联的回调函数,获取手柄数据。例如,通过创建epoll/poll 来检测手柄输入设备节点的文件描述符(fd)(例如,通过输入设备节点的名称来选中手柄输入设备节点)并设置数据获取回调,当用户操作手柄时,手柄输入设备节点的状态发生变化,通过调用设置的回调函数,获取手柄数据。

通过接口ASensorManager、ASensorEventQueue以及ALooper可以开启陀螺仪,通过往应用创建的队列中塞数据的形式让应用不断地读取到当前的陀螺仪数据。

2)映射进程,包括手柄数据转换过程和陀螺仪数据转换过程。

可以理解的是,对于手柄数据转换,手柄输入数据符合系统输入数据标准,分为按键抬起、按下、摇杆在方向轴(包括X轴和Y轴)位置、trigger 行程大小,这种数据映射到屏幕上需要为触摸抬起、按下、触摸移动等,触摸数据也需要符合系统输入数据标准,按照标准转换即可。

对于陀螺仪数据转换,陀螺仪数据用于表征设备的角度旋转信息,如图6所示,坐标轴的分布情况为:垂直于触摸屏的方向为z轴,由触摸屏底部指向顶部的方向为y轴,由触摸屏左部指向右部的方向为x轴。陀螺仪数据包括掌机设备绕x轴的旋转角度、y轴的旋转角度以及z轴的旋转角度,陀螺仪数据可以通过四元数表示。

当检测到手柄按键按下时,记录当前按键的标识信息以及当前按键映射到触摸屏中映射点的第一位置信息,第一位置信息通过坐标形式表示,包括x轴的初始值及y轴的初始值。记录当前设备的第一陀螺仪数据为掌机设备的初始姿态。

当用户旋转掌机设备后,读取旋转后的掌机设备的第二陀螺仪数据,第二陀螺仪数据为掌机设备的调整姿态。

根据第一陀螺仪数据生成初始姿态矩阵,以及,根据第二陀螺仪数据生成调整姿态矩阵;计算初始姿态矩阵的逆矩阵;将初始姿态矩阵的逆矩阵与调整姿态矩阵相乘,得到旋转矩阵;通过转换旋转矩阵得到包括x轴的偏移值、y轴的偏移值及z轴的偏移值的旋转向量;从旋转向量中确定x轴的偏移值及在y轴的偏移值;将x轴的初始值与x轴的偏移值相加,得到x轴的调整值,以及,将y轴的初始值与y轴的偏移值相加,得到y轴的调整值;根据x轴的调整值及y轴的调整值,得到映射点的第二位置信息。

3)数据写入虚拟输入设备节点。

可以理解的是,将第二位置信息写入虚拟输入设备节点,虚拟输入设备节点是指在计算机系统中模拟的一个输入设备节点,其并非真实的物理设备,而是一个虚拟设备,用于接收人机交互的输入信号。系统会其当作是真实的输入设备,读取输入并进行分发处理。

虚拟输入设备节点的创建方式可以通过打开“/dev/uinput”文件目录,并创建一个结构为uinput_user_dev的device,并配置为触摸设备,然后通过ioctl接口创建出来。虚拟输入设备节点的创建完成后,直接往虚拟输入设备节点文件中写入数据即可,后续由系统负责处理。

4)读取数据。

可以理解的是,输入读取器从虚拟输入设备节点读取第二位置信息。应用程序(例如游戏)基于第二位置信息生成并展示渲染图像。

本申请实施例提供的方法,用户可以使用陀螺仪控制手柄按键映射点的移动,在一些射击类的游戏中,体验感方便感大大增强。

下面对本申请中的数据处理装置进行详细描述,请参阅图10。图10为本申请实施例中数据处理装置10的一个实施例示意图,数据处理装置10包括:第一数据获取模块110、映射位置确定模块120、第二数据获取模块130及映射位置更新模块140;具体的:

第一数据获取模块110,用于获取第一手柄数据及第一陀螺仪数据,其中,第一手柄数据包括第一事件,第一事件的事件类型为按键事件类型,第一事件的事件代码用于标识触发第一事件的按键,第一事件的取值用于标识触发第一事件的按键操作,第一陀螺仪数据用于标识设备的初始姿态;

映射位置确定模块120,用于确定第一事件的取值标识的按键操作在触摸屏中的第一映射点的第一位置信息;

第二数据获取模块130,用于获取第二陀螺仪数据,其中,第二陀螺仪数据用于标识设备旋转后的调整姿态;

映射位置更新模块140,根据第一陀螺仪数据及第二陀螺仪数据,对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息,其中,第二位置信息用于标识设备旋转后第一映射点的位置。

本申请实施例提供的装置,通过结合陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作,弥补了手柄摇杆位置受限的问题,提高了手柄操作的完整性和灵活性,能够更好地适应需要滑动操作的游戏或应用,提供更流畅和逼真的操作体验,使用户能够更自如地进行游戏或应用操作。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,映射位置更新模块140,还用于:

根据第一陀螺仪数据生成初始姿态矩阵,以及,根据第二陀螺仪数据生成调整姿态矩阵;

根据初始姿态矩阵及整姿态矩阵,计算设备的调整姿态相对于初始姿态的旋转弧度,其中,旋转弧度包括设备的调整姿态相对于初始姿态在x轴的偏移值及y轴的偏移值;

根据旋转弧度对第一映射点的第一位置信息进行调整,得到第一映射点的第二位置信息。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,映射位置更新模块140,还用于:

计算初始姿态矩阵的逆矩阵;

将初始姿态矩阵的逆矩阵与调整姿态矩阵相乘,得到旋转矩阵;

通过转换旋转矩阵得到旋转向量,其中,旋转向量包括x轴的偏移值、y轴的偏移值及z轴的偏移值;

从旋转向量中确定x轴的偏移值及在y轴的偏移值,得到旋转弧度。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,映射位置更新模块140,还用于:

从第一位置信息中确定x轴的初始值及y轴的初始值;

将x轴的初始值与x轴的偏移值相加,得到x轴的调整值,以及,将y轴的初始值与y轴的偏移值相加,得到y轴的调整值;

根据x轴的调整值及y轴的调整值,得到第一映射点的第二位置信息。

本申请实施例提供的装置,通过将陀螺仪数据转换为姿态矩阵,并进一步计算旋转弧度,能够更准确地描述设备的姿态变化;计算设备的调整姿态相对于初始姿态的旋转弧度,可以实现对设备姿态的调整和补偿,这有助于保持设备的稳定性和准确性;根据旋转弧度对第一映射点的位置信息进行调整,确保了位置信息的准确性和实时性;通过使用陀螺仪数据进行姿态计算和调整,系统能够适应不同的环境和任务需求,提高系统的适应性和灵活性,通过旋转变换前后的陀螺仪数据对映射点的位置进行调整,使得手柄能够更准确地模拟滑动操作。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,映射位置确定模块120,还用于:

在第一事件的取值标识的按键操作为按下操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

本申请实施例提供的装置,将按键操作映射到触摸屏中的特定位置,提高了操作的准确性和用户体验,同时增加了交互方式的多样性和设备的兼容性,有助于提升设备的整体性能和功能。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,第一事件的事件代码标识的按键为多功能按键时,第一事件的事件代码还用于标识多功能按键的操作模式;

映射位置确定模块120,还用于:

在第一事件的取值标识的按键操作为开启操作模式的操作的情况下,基于至少一个按键和触摸屏中的至少一个位置之间的对应关系,将至少一个位置中与第一事件的事件代码标识的按键对应的位置,确定为第一映射点的第一位置信息。

本申请实施例提供的装置,将多功能按键与触摸屏位置映射,并根据操作模式确定第一映射点的位置信息,使用户能够更高效地利用按键功能,适应不同场景需求,提升了设备的实用性和用户体验。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,请参阅图11,数据处理装置,还包括:第三数据获取模块210、转换模块220及触摸数据确定模块230;具体的:

第三数据获取模块210,用于获取第二手柄数据,其中,第二手柄数据包括第二事件,第二事件的事件类型为按键事件类型,第二事件的事件代码用于标识触发第二事件的按键,第二事件的取值用于标识触发第二事件的按键操作;

转换模块220,用于通过转换第二事件的事件代码得到第三事件,其中,第三事件的事件代码用于标识第三事件为触摸事件,第三事件的取值等于第二事件的取值,第三事件的取值用于标识触发第三事件的触摸操作,第三事件的取值标识的触摸操作为与第二事件的取值标识的按键操作对应的操作;

触摸数据确定模块230,用于基于第三事件确定第一触摸数据。

本申请实施例提供的装置,通过转换手柄数据中第二事件的事件代码得到第三事件,然后基于该第三事件确定第一触摸数据,能够提升手柄和触摸屏的兼容性以及手柄的使用性能。

在本申请实施例提供的数据处理装置的一个可选实施例中,数据处理装置,还包括:位置事件确定模块;位置事件确定模块,还用于:

确定第二事件的取值标识的按键操作在触摸屏中的第二映射点的第三位置信息;

在至少一个预设方向中任意一个预设方向上,将第三位置信息与触摸屏中参考点位置之间的距离,确定为第四事件的取值,其中,第四事件的事件类型为位置事件类型,第四事件的事件代码用于标识第四事件为用于标识预设方向上的坐标位置的事件,第四事件的取值用于标识触发第三事件的触摸操作在触摸屏中的触摸点位置在预设方向上的位置信息;

触摸数据确定模块,还用于在第三事件之后拼接第四事件,得到第一触摸数据。

在本申请的图11对应的实施例提供的数据处理装置的一个可选实施例中,位置事件确定模块,还用于:

分配用于标识第三事件的触摸点的触摸点标识;

将触摸点标识,确定为第五事件的取值,其中,第五事件的事件类型为位置事件类型,第五事件的事件代码用于标识第五事件为用于标识触摸点的事件,第五事件的取值用于标识第三事件的触摸点;

触摸数据确定模块,还用于在第五事件之后拼接第三事件,得到第一触摸数据。

在本申请的图11对应的实施例提供的数据处理装置的一个可选实施例中,位置事件确定模块,还用于:

分配用于标识第三事件的触摸点所属的槽位的槽位标识;

将槽位标识,确定为第六事件的取值,其中,第六事件的事件类型为位置事件类型,第六事件的事件代码用于标识第六事件为用于标识槽位的事件,第六事件的取值用于标识第二事件的触摸点所属的槽位;

触摸数据确定模块,还用于在第六事件之后拼接第三事件,得到第一触摸数据。

本申请实施例提供的装置,通过引入该至少一个按键和该触摸屏中的至少一个位置之间的对应关系,可以实现按键与某一个屏幕坐标点之间的映射,比如按下手柄上的A按键,对应的能按下用户设置的触摸屏上特征的UI 元素位置,比如是开火,进而实现了将第二事件转换为第三事件的目的并保证了第三事件的准确性。

在本申请的图10对应的实施例提供的数据处理装置的一个可选实施例中,第一数据获取模块,还用于从手柄输入设备节点中读取第一手柄数据,以及,从设备的陀螺仪中读取第一陀螺仪数据;

数据处理装置,还包括:数据写入模块;具体的,数据写入模块,用于将第二位置信息写入虚拟输入设备节点。

图12是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。

服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows Server

上述实施例中由服务器所执行的步骤可以基于该图12所示的服务器结构。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 一种SDH数据处理方法、系统及相关装置
  • 一种技术评审数据处理方法及相关装置
  • 一种数据库的审计日志处理方法及相关装置
  • 一种数据处理方法以及相关装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 通过显示接口传送/接收压缩相关指示信息的数据处理装置与相关数据处理方法
  • 发送/接收图片的压缩的像素数据组和像素数据分组设定的指示信息的数据处理装置以及相关数据处理方法
技术分类

06120116620404