发明内容
本发明的目的在于提供一种触摸屏报点补偿方法及装置,使得在丢点发生时,可通过修正当前上报的坐标点来补偿,减少因丢点而致使最终反馈的坐标点出现大范围跳跃的情况,提升用户的体验。
为解决上述技术问题,本发明的实施方式提供了一种触摸屏报点补偿方法。该方法包含以下步骤:在本次触摸屏产生中断后,判断在本次触摸屏产生中断前是否存在未被中央处理器处理的由触摸屏产生的中断;若存在,则根据触摸屏之前上报的坐标点,对本次上报的坐标点进行修正;若不存在,则保持本次上报的坐标点不变。
本发明的实施方式还提供了一种触摸屏报点补偿装置。该触摸屏报点补偿装置包括判断模块和修正模块;判断模块用于在本次触摸屏产生中断后,判断在本次触摸屏产生中断前是否存在未被中央处理器处理的由触摸屏产生的中断;修正模块用于在判断模块判定存在未被中央处理器处理的由触摸屏产生的中断后,对本次上报的坐标点进行修正;修正模块还用于在判断模块判定不存在未被中央处理器处理的由触摸屏产生的中断后,保持本次上报的坐标点不变。
本发明实施方式相对于现有技术而言,在每次产生中断后,判断是否丢点(即是否存在未被中央处理器处理的中断),并在判定丢点后从当前上报的坐标点开始修正,从而使最终反馈的坐标点的变化趋于平顺,有利于减少因丢点而致使最终反馈的坐标点出现大范围跳跃的情况,提升用户的体验。
进一步地,在根据触摸屏之前上报的坐标点,对本次上报的坐标点进行修正的步骤中,包括以下子步骤:获取本次上报的坐标点相对于上次上报的坐标点所移动的距离;在获取的距离大于最小补偿距离时,判断获取的距离是否大于预设的最大移动距离;若是,则根据上次上报的坐标点及预设的最大移动距离,获取修正后的本次上报的坐标点;若不是,则保持本次上报的坐标点不变。
进一步地,预设的最大移动距离为上次上报的坐标点所移动距离的K倍;K的取值范围在1.2至1.8之间。
进一步地,在根据触摸屏之前上报的坐标点,对本次上报的坐标点进行修正的步骤中,包括以下子步骤:根据上次上报的坐标点所移动的轨迹,预测本次的坐标点;根据预测的坐标点及本次上报的坐标点,获取修正后的本次上报的坐标点。
进一步地,触摸屏在产生中断后,还包括以下步骤:控制计数器在触摸屏产生中断后加1,在中央处理器处理中断后减1;在判断本次触摸屏产生中断前是否存在未被中央处理器处理的由触摸屏产生的中断的步骤中,通过判断计数器是否大于1来判断是否存在未被中央处理器处理的由触摸屏产生的中断。
进一步地,触摸屏在产生中断后,还包括以下步骤:记录每次中央处理器处理中断的时间点;在判断本次触摸屏产生中断前是否存在未被中央处理器处理的由触摸屏产生的中断的步骤中,通过比较本次中央处理器处理中断的时间点与上次中央处理器处理中断的时间点之间的时间间隔是否超过正常范围,来判断是否存在未被中央处理器处理的由触摸屏产生的中断。
进一步地,修正模块包括:获取子模块、比较子模块、修正子模块;获取子模块用于获取本次上报的坐标点相对于上次上报的坐标点所移动的距离;比较子模块用于在获取的距离大于最小补偿距离时,判断获取子模块获取的距离是否大于预设的最大移动距离;修正子模块用于在比较子模块判定所述获取的距离大于预设的最大移动距离时,根据上次上报的坐标点及预设的最大移动距离,获取修正后的本次上报的坐标点;修正子模块还用于在比较子模块判定获取的距离小于或等于预设的最大移动距离时,保持本次上报的坐标点不变。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明的第一实施方式涉及一种触摸屏报点补偿方法。本实施方式在每次触摸屏产生中断后,判断在此之前是否存在未被中央处理器处理的由触摸屏产生的中断(即是否丢点),并在判定有丢点时,从当前上报的点开始进行修正,直到触摸屏某次上报的点所移动的距离小于最小补偿距离为止。
具体地说,本实施方式可在每次触摸屏产生中断后控制计数器的计数值加1,在每次中央处理器处理中断后控制计数器的计数值减1,使得可根据计数器的计数值来判断是否存在未被处理的中断(即是否丢点),并在判定有丢点时,从当前上报的点开始进行修正。
其流程如图2所示,具体如下:
步骤201,触摸屏在本次产生中断后,控制计数器的计数值加1。
具体地说,在本实施方式中,触摸屏在每次产生中断后都要控制计数器的计数值加1,中央处理器在每次处理中断后控制计数器的计数值减1,也就是说,每次触摸屏产生的中断被中央处理器处理后,计数器的计数值应为0,若触摸屏产生的中断未被中央处理器处理,计数器的计数值应为1。
步骤202,判断计数器的计数值是否大于1。
由步骤201可知,若触摸屏本次之前产生的中断已经被中央处理器处理,那么在本次触摸屏产生中断前,计数器的计数值应为0,在本次触摸屏产生中断计数器加1后,计数器的计数值应为1;若触摸屏本次之前产生的中断未被中央处理器处理,那么在本次触摸屏产生中断前,计数器的计数值应为1,在本次触摸屏产生中断计数器加1后,计数器的计数值应为2。由此可见,若有丢点,此时计数器的计数值应为2;若没有丢点,此时计数器的计数值应为1,因此,本实施方式可通过判断计数器的计数值是否大于1来判断是否有丢点。若是,则进入步骤203;若不是,则直接进入步骤208,保持本次上报的坐标点不变,并在本次中央处理器处理中断后,进入步骤209,对计数器进行清零。
步骤203,获取触摸屏本次上报的坐标点相对于上次上报的坐标点所移动的距离。
一般来说,中央处理器在接收到触摸屏产生的中断后,会主动查询触摸屏上报的坐标点,在本步骤中,中央处理器可通过查询触摸屏本次上报的坐标点及上次上报的坐标点,来获取触摸屏本次上报的坐标点相对于上次上报的坐标点所移动的距离。
值的一提的是,本实施方式所说的“上次”,是指丢点之前的那一次,例如,本次是触摸屏第N次产生中断,按照之前的分析,触摸屏第N-1次产生的中断未被中央处理器处理,即触摸屏第N-1次上报的坐标点丢失,“上次上报的坐标点”是指触摸屏第N-2次上报的坐标点。在本实施方式中,可通过查询触摸屏第N次上报的坐标点及第N-2次上报的坐标点,来获取触摸屏第N次上报的坐标点所移动的距离(即触摸屏第N次上报的坐标点相对于第N-2次上报的坐标点所移动的距离)。
获取到触摸屏本次上报的坐标点相对于上次上报的坐标点所移动的距离后,则进入步骤204。
步骤204,判断本次上报的坐标点相对于上次上报的坐标点所移动的距离是否大于最小补偿距离。
该最小补偿距离可根据相邻两次报点之间手指滑动的距离设置,一般来说,可设置为5毫米。若本次上报的坐标点所移动的距离大于该最小补偿距离,则说明需要进行补尝,进入步骤205;否则的话,则说明不需要进行补偿,进入步骤208。
步骤205,判断本次上报的坐标点相对于上次上报的坐标点所移动的距离是否大于预设的最大移动距离。
在本实施方式中,该最大移动距离可根据经验值设置为:人手指极限移动速度*触摸屏采样频率*DPI/2.54;其中,人手指极限移动速度一般为3m/s,触摸屏采样频率一般为100Hz,DPI(触摸屏分辨率)由当前的触摸屏决定,2.54为英寸转换成厘米的转换系数,由于DPI一般以英寸为单位,因此需要用2.54这个转换系数转换成厘米,但如果DPI已经进行了转换,就不需要再除以2.54。
若本次上报的坐标点所移动的距离大于该预设的最大移动距离,则进入步骤206;否则的话,则进入步骤208,保持本次上报的坐标点不变。
步骤206,根据上次上报的坐标点及预设的最大移动距离,获取修正后的本次上报的坐标点。
例如,如图3所示,A点为上次上报的坐标点,C点为本次上报的坐标点,不难发现,本次上报的坐标点C相对于上次上报的坐标点A所移动的距离LAC大于预设的最大移动距离LAB,因此,本实施方式将把B点作为修正后的本次上报的坐标。
步骤207,控制计数器减1。
如步骤202所说,由于有丢点,在本次触摸屏产生中断后,计数器的计数值应为2,而在本步骤中控制计器减1后,计数器的计数值变为1,在下次产生中断后,计数器的计数值仍会变为2,会重新经步骤202进入步骤204。若在步骤204中,判定当前上报的坐标点所移动的距离仍大于最小补偿距离,且在步骤205中,判定当前上报的坐标点所移动的距离仍大于预设的最大距离时,则需要再次修正当前上报的坐标点进行补偿。直到在步骤204中,判定当前上报的坐标点所移动的距离不大于最小补偿距离为止,才会停止补偿。
也就是说,若触摸屏第N-1次产生的中断未被中央处理器处理,即触摸屏第N-1次上报的坐标点丢失,则可能需要修正触摸屏第N次、第N+1、第N+2次……等多次上报的坐标点进行补偿,直到当前上报的坐标点所移动的距离不大于最小补偿距离为止。
通过修正,本实施方式中央处理器处理中断后反馈的坐标点的效果图如图4所示,其中图4中的第一行为触摸屏实际上报的坐标点,第二行是未补偿时中央处理器实际反馈的坐标点,第三行则是本实施方式补偿后中央处理器实际反馈的坐标点。
不难发现,本实施方式相对于现有技术而言,在每次触摸屏产生中断后控制计数器示数加1,在每次中央处理器处理中断后控制计数器示数减1,使得终端可根据计数器的计数值来判断是否存在未被处理的中断(即是否丢点),并在判定有丢点时,从当前上报的坐标点开始修正,直到触摸屏某次上报的点所移动的距离小于最小补偿距离为止,从而使最终反馈的坐标点的变化趋于平顺,有利于减少因丢点而致使最终反馈的坐标点出现大范围跳跃的情况,提升用户的体验。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施方式涉及一种触摸屏报点补偿方法。第二实施方式与第一实施方式大致相同,其主要区别之处在于:第一实施方式中预设的最大移动距离根据经验值设置为:人手指极限移动速度*触摸屏采样频率*DPI/2.54;而在第二实施方式中,预设的最大移动距离则是根据上次上报的坐标点所移动的距离来设置的。
具体地说,在本实施方式中,可参照上次上报的坐标点所移动的距离来设置本次上报的坐标点所能移动的最大距离,在实际应用中,本发明的发明人发现:因人手指的移动是一个连续的物理过程,单位时间内的速度变化是存在上限的,当发生丢点时(通过大量的实验数据总结观察可得到本次上报点移动距离为上次移动距离的1.2-3倍),为了实现在有限次的补偿次数内将补偿坐标与实际上报坐标补偿至一定范围内,同时尽可能的使补偿数据平滑,可将该预设的最大移动距离设置为上次上报的坐标点所移动距离的K倍;其中K可取1.2至1.8之间的任何值。
以K取1.2为例,如图5所示,H点为触摸屏第N次产生中断所上报的坐标点,按照第一实施方式的分析,触摸屏第N-1次产生的中断未被中央处理器处理,即触摸屏第N-1次上报的坐标点丢失,F点为第N-2次上报的坐标点,E点为第N-3次上报的坐标点。本实施方式中所说的“上次上报的坐标点所移动的距离”即是触摸屏第N-2次上报的坐标点F相对于第N-3次上报的坐标点E所移动的距离LEF,不难发现,本次上报的坐标点H相对于第N-2次上报的坐标点F所移动的距离LFH大于LEF的1.2倍,因此,本实施方式将把G点作为本次上报的坐标,其中,LFG为LEF的1.2倍。
本发明第三实施方式涉及一种触摸屏报点补偿方法。第三实施方式与第一实施方式大致相同,其主要区别之处在于:第一实施方式是在本次上报的坐标点相对于上次上报的坐标点所移动的距离大于预设的最大移动距离时,根据上次上报的坐标点及预设的最大移动距离来修正本次上报的坐标点进行补偿的;而第三实施方式是根据之前上报的坐标点的移动轨迹预测本次的坐标点,并根据预测的坐标点及本次上报的坐标点来修正本次上报的坐标点进行补偿的。
在实际应用中,正如第二实施方式所述,发明人通过大量的实验数据总结观察得知,丢点时本次上报点移动距离为上次移动距离的1.2-3倍,为了实现在有限次的补偿次数内将补偿坐标与实际上报坐标补偿至一定范围内,同时尽可能的使补偿数据平滑,在本实施方式中,如图6所示,可先根据上次上报的坐标点K所移动的距离LJK及移动的方向,来预测本次上报的坐标点,预测的坐标点M所移动的距离LKM与LJK相同、移动的方向与上次上报的坐标点移动的方向相同,可选择预测的坐标点M及本次上报的坐标点N之间的中点O作为补偿点。
本发明的第四实施方式涉及一种触摸屏报点补偿方法。第四实施方式与第一实施方式大致相同,其主要区别之处在于:第一实施方式根据计数器的计数值来判断是否丢点;而第四实施方式则是通过比较两次中央处理器处理中断的间隔是否超过正常范围来判断否丢点。
具体地说,本实施方式可以记录每次中央处理器处理中断的时间点,并比较两次处理中断的时间点之间的时间间隔,若某次中断处理的时间点与上一次中断处理的时间点之间的时间间隔超过正常范围(考虑到人手的移动速度及屏幕的采样率,本实施方式可以将两次处理中断之间的时间间隔不超过采样周期*1.2作为正常范围),则判定有丢点,需要进行补偿。
如表一(采样率为100Hz,采样周期为为0.01s)所示,表一中的第一行为触摸屏进行中断上报的时间点,第二行为中央处理器进行中断处理的时间点,不难发现,中央处理器在时间点0.04处理中断后,间隔了0.02s,到了时间点0.06才再次处理中断,这次时间间隔显然超过了正常范围,所以可以认为时间点0.06之前有丢点,需要进行补偿。
表一:
另外,在实际应用中,也可以在每次触摸屏产生中断后为该中断分配一个计时器为其计时,并在中央处理器处理该中断后释放该计时器,也就是说,每次触摸屏产生的中断被中央处理器处理后,为该中断计时的计时器应被释放;而若触摸屏产生的中断未被中央处理器处理,则为该中断计时的计时器应还在继续计时。因此,本实施方式也可通过判断计时器是否还存在来判断是否有丢点,值得一提的是,利用这种方法来判断时,若判定有丢点,则在补偿后,需要释放由于丢点导致的还在计时的计时器。
本发明第五实施方式涉及一种触摸屏报点补偿装置。如图7所示,该装置包括判断模块和修正模块;其中,判断模块用于在本次触摸屏产生中断后,判断在本次触摸屏产生中断前是否存在未被中央处理器处理的由触摸屏产生的中断;修正模块用于在判断模块判定存在未被中央处理器处理的由触摸屏产生的中断后,对本次上报的坐标点进行修正;修正模块还用于在判断模块判定不存在未被中央处理器处理的由触摸屏产生的中断后,保持本次上报的坐标点不变。
在本实施方式中,修正模块包括:获取子模块、比较子模块及修正子模块;其中,获取子模块用于获取本次上报的坐标点相对于上次上报的坐标点所移动的距离;比较子模块用于在获取的距离大于最小补偿距离时,判断所述获取子模块获取的距离是否大于预设的最大移动距离;修正子模块用于在比较子模块判定获取的距离大于预设的最大移动距离时,根据上次上报的坐标点及预设的最大移动距离,获取修正后的本次上报的坐标点;修正子模块还用于在所述比较子模块判定获取的距离小于或等于预设的最大移动距离时,保持本次上报的坐标点不变。
在本实施方式,该预设的最大移动距离根据经验值可设为:人手指极限移动速度*触摸屏采样频率*DPI/2.54。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第六实施方式涉及一种触摸屏报点补偿装置。第六实施方式与第五实施方式大致相同,主要区别之处在于:第五实施方式中预设的最大移动距离是根据经验值设置为:人手指极限移动速度*触摸屏采样频率*DPI/2.54;而在第六实施方式中,预设的最大移动距离可根据上次上报的坐标点所移动的距离来设置为上次上报的坐标点所移动距离的K倍。
不难发现,本实施方式为与第二实施方式相对应的系统实施例,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。