基于计步器消息的数据输出方法及装置与流程

文档序号:12155443阅读:359来源:国知局
基于计步器消息的数据输出方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于计步器消息的数据输出方法及装置。



背景技术:

现有技术中,越来越多的软件包含了计步的功能,例如,微信计步,QQ运动等,对于这些软件来讲,其对应的步数是由终端中内置的计步器检测到步伐之后,在驱动层将步伐数据上报,应用层的微信应用、QQ应用等应用程序监听计步器上报的相关消息,然后将相应的步数更新在微信计步页面或QQ运动的计步页面。

一般来讲,计步器统计的步伐数据是存储在相应的芯片内部的寄存器中,而该寄存器存在存储的数值的最大值,例如,对于一个16位的寄存器来讲,能存储的步数的最大值为65535。在计步器统计的数据超过上述寄存器的最大值时,相应的数值会被直接归零,这就是常见的溢出现象。

在计步器将统计到的数据进行上报的过程中,若发生了数据的溢出,则本次上报的数据会明显小于上一次上报的数据,也就是说,寄存器中存储的步数从一个较大的值跳变到一个较小的值。在发生数据溢出的情况下,相应的应用例如微信运动等,在检测到计步器上报的步数之后,会直接上本次较小的步数值进行统计,但是因为数据发生了溢出,而在统计的过程中并没有考虑数据溢出对步数的实际值产生的影响,从而导致了统计的步数不能真实的反应用户实际的运动量,存在数据统计的准确性不足的问题。



技术实现要素:

基于此,为解决传统技术中的因计步器的寄存器可存储的数据的大小限制导致计步器中统计的数据产生的溢出从而导致的步数统计的准确性不足的技术问题,特提出了一种基于计步器消息的数据输出方法。

一种基于计步器消息的数据输出方法,包括:

检测计步器由驱动层上报的计步器消息,获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值;

在所述第一数值小于第二数值时,判定所述第一数值发生溢出;

在所述第一数值发生溢出时,获取所述计步器的溢出门限值,根据所述第二数值和所述溢出门限值生成溢出数值;

将所述溢出数值与所述第一数值的和作为第一数值输出。

可选的,在一个实施例中,所述判定所述第一数值发生溢出的步骤之前还包括:

判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过重启,若否,则判定所述第一数值发生溢出。

可选的,在一个实施例中,所述判定所述第一数值发生溢出的步骤之前还包括:

判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过计步器重置,若否,则判定所述第一数值发生溢出。

可选的,在一个实施例中,所述判定所述第一数值发生溢出的步骤之前还包括:

判断所述第一数值是否小于预设的第一阈值以及所述第二数值是否大于预设的第二阈值,若是,则判定所述第一数值发生溢出,若否,则生成计步器数据异常的提示消息。

可选的,在一个实施例中,所述获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值的步骤之后还包括:

获取所述获取目标次检测到的计步器消息包含的第一时间戳和所述目标次的上一次检测到的计步器消息包含的第二时间戳,根据所述第一时间戳和所述第二时间戳确定所述目标次对应的时间间隔;

获取所述溢出数值与所述第一数值的和与所述时间间隔的比值,在所述比值大于预设的第三阈值时,判定所述第一数值异常,并生成计步器数据异常的提示信息;

在所述比值不大于预设的第三阈值时,执行所述将所述溢出数值与所述第一数值的和作为第一数值输出的步骤。

此外,为解决传统技术中的因计步器的寄存器可存储的数据的大小限制导致计步器中统计的数据产生的溢出从而导致的步数统计的准确性不足的技术问题,特提出了一种基于计步器消息的数据输出装置。

一种基于计步器消息的数据输出装置,包括:

数值获取模块,用于检测计步器由驱动层上报的计步器消息,获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值;

数值溢出判定模块,用于在所述第一数值小于第二数值时,判定所述第一数值发生溢出;

溢出数值确定模块,用于在所述第一数值发生溢出时,获取所述计步器的溢出门限值,根据所述第二数值和所述溢出门限值生成溢出数值;

输出模块,用于将所述溢出数值与所述第一数值的和作为第一数值输出。

可选的,在一个实施例中,所述装置还包括重启判断模块,用于判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过重启,在发生重启时,调用所述数值溢出判定模块。

可选的,在一个实施例中,所述装置还包括重置判断模块,用于判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过计步器重置,在发生计步器重置时,调用所述数值溢出判定模块。

可选的,在一个实施例中,所述数值溢出判定模块还用于判断所述第一数值是否小于预设的第一阈值以及所述第二数值是否大于预设的第二阈值,若是,则判定所述第一数值发生溢出,若否,则生成计步器数据异常的提示消息。

可选的,在一个实施例中,所述装置还包括变化率确定模块,用于获取所述获取目标次检测到的计步器消息包含的第一时间戳和所述目标次的上一次检测到的计步器消息包含的第二时间戳,根据所述第一时间戳和所述第二时间戳确定所述目标次对应的时间间隔;获取所述溢出数值与所述第一数值的和与所述时间间隔的比值,在所述比值大于预设的第三阈值时,判定所述第一数值异常,并生成计步器数据异常的提示信息;在所述比值不大于预设的第三阈值时,调用所述输出模块。

实施本发明实施例,将具有如下有益效果:

采用了上述基于计步器消息的数据输出方法和装置之后,在检测到的由计步器上报的计步器消息中对应的步数小于上一次检测到的计步器消息中对应的步数时,判定当前次检测到的步数发生溢出,并根据寄存器对应的溢出门限值确定溢出的具体步数,并根据溢出的具体值以及当前次检测到的计步器消息中对应的步数确定输出的具体的步数。也就是说,考虑了寄存器溢出对统计的步数的影响,避免了溢出导致的步数统计不准确的缺陷,提高了数据统计的准确性。

附图说明

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

其中:

图1为一个实施例中一种基于计步器消息的数据输出方法的流程示意图;

图2为一个实施例中一种基于计步器消息的数据输出装置的结构示意图;

图3为一个实施例中运行前述基于计步器消息的数据输出方法的计算机设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为解决传统技术中的因计步器的寄存器可存储的数据的大小限制导致计步器中统计的数据产生的溢出从而导致的步数统计的准确性不足的技术问题,在本实施例中,特提出了一种基于计步器消息的数据输出方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是计步器统计数据的处理程序或者微信运动、QQ运程序动等计步应用对应的步数统计的应用。该计算机系统可以是运行上述计算机程序的设置有计步器传感器的例如智能手机、平板电脑、个人电脑等服务器或终端。

具体的,如图1所示,上述基于计步器消息的数据输出方法包括如下步骤:

步骤S102:检测计步器由驱动层上报的计步器消息,获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值。

一般来讲,计步器在检测到步数之后,会经由驱动层上报,一般来讲,计步器上报步数的频率可以是每一次检测到步数更新之后均生成相应的中断指令,然后终端在检测到中断指令之后,获取计步器上报的步数,或者,还可以在终端中设置一个定时器,定时上报计步器检测到的步数,与就是说,并不是计步器每检测到步数更新都将新的步数进行上报,而是定时的向驱动层发送相应的步数信息的更新。还或者,在接收到获取步数对应的步数获取指令之后,由计步器将相应的步数包含在计步器消息中上报。具体实施例中,例如计步器、传感器、触摸屏等装置获取到的数据都是经由驱动层上报给框架层,然后上报到应用层,从而使得在应用层的相关的应用获取到相应的计步器消息以及计步器统计的步数。

需要说明的是,在本实施例中,不仅需要获取本次检测到的计步器上报的计步器消息,还需要获取上一次计步器上报的计步器消息,并且获取上述两次检测到的计步器消息中对应的步数,即获取当前次或者目标次检测到的计步器上报的计步器消息对应的第一数值,以及获取上一次检测到的计步器上报的计步器消息对应的第二数值。

步骤S104:在所述第一数值小于第二数值时,判定所述第一数值发生溢出。

一般来讲,在具体实施例中,因为步数的不断累积,后检测到的计步器消息对应的步数是大于在前检测到的计步器消息对应的步数的。但是,因为计步器对应的寄存器的存储空间的大小限制,寄存器可存储的步数存在一定的限制,即存在一个可存储的步数的最大值,在本实施例中,将该值称之为溢出门限值。因为在寄存器中存储的步数达到上述溢出门限值的情况下,若计步器继续将检测到的步伐对应的数据存储到计步器中,寄存器中存储的数据就会归零,也就是说,在寄存器为16位的寄存器的情况下,对应的溢出门限值为65535,则在统计的步数为65535之后,再次累积步数的情况下,寄存器中存储的步数会从0重新开始累积。

也就是说,因为一般来讲,微信运动等计步软件会定时每天都进行相应的数据更新,即在计步软件中步数的统计情况的更新是比较频繁的,因此,相邻两次的计步器上报的计步器消息中对应的步数的查找不大,并且,一般计步器对应的寄存器对应的溢出门限值都是一个较大的数值,因此,若计步器上报的计步器消息中对应的步数小于上一次计步器上一次上报的计步器消息中对应的步数小,说明对应的计步器上报的计步器消息中对应的步数是异常的,这种异常可能是因为在上次上报计步器消息中间存在溢出。

在本实施例中,若当前次检测到的计步器消息对应的步数(即第一数值)小于前一次检测到的计步器消息对应的步数(即第二数值),则判定当前次检测到的计步器消息对应的第一数值是发生溢出之后的数值。

步数S106:在所述第一数值发生溢出时,获取所述计步器的溢出门限值,根据所述第二数值和所述溢出门限值生成溢出数值。

若当前次检测到的计步器消息对应的第一数值发生溢出,则说明直接拿第一数值作为步数统计的结果是不合理的,因为没有考虑步数溢出对计步器对应的寄存器中统计的步数的影响。

在本实施例中,需要考虑寄存器中存储的步数是在经过上述对应的溢出门限值之后归零的,所以,若该步数不被归零的话,则实际上报的步数应该是在溢出门限值的基础上加上当前次检测到的计步器消息对应的步数,也就是说,实际上报的步数应该是溢出门限值与第一数值的和。

从另一个方面来讲,上次计步器上报的计步器消息之间的步数差值,即为两个上报的计步器消息对应的步数的差值,一般来讲,微信运动等计步软件是跟根据本次上报的计步器消息与上一次上报的计步器消息之间的查找来确定在微信运动等计步软件对应的应用服务器中应该累加的步数,因此,需要计算在本次上报的计步器消息对应的步数中未考虑的因为溢出带来的影响,即,溢出的步数。在本实施例中,溢出门限值与第二数值之间的差值即为因为溢出导致的溢出数值。

步骤S108:将所述溢出数值与所述第一数值的和作为第一数值输出。

具体实施中,在微信运动等计步软件中输出的数值即为两次计步器消息的检测之间的步数的差值,也是上述步骤S106中确定的溢出数值与第一数值的和,根据溢出数值与第一数值的和对第一数值进行重置,然后将重置之后的第一数值输出。

需要说明的是,在本实施例中,若在两次计步器消息的检测之间,终端进行了重启,则对应的计步器进行了关闭操作并没重新启动,而计步器在被重启的情况下,其在寄存器中存储的数据都会被清零然后从0从新开始累计。因此,在一个可选的实施例中,在判断计步器消息中对应的步数是否发生溢出的过程中,还需要考虑终端是否被重启过或者计步器是否被重启过。

具体的,在一个实施例中,上述判定所述第一数值发生溢出的步骤之前还包括:判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过重启,若否,则判定所述第一数值发生溢出。

在另一个实施例中,上述判定所述第一数值发生溢出的步骤之前还包括:判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过计步器重置,若否,则判定所述第一数值发生溢出。

也就是说,只有在终端或者计步器没有被重启的情况下,在能将当前次对应的步数判定为发生溢出,反之,若终端或者计步器被重启过后,其对应的数值即被归零,这种归零并不是因为溢出导致的,因此不能被判定为发生溢出,在此种情况下,第一数值小于第二数值是正常的,微信运动等计步软件直接将检测到的计步器消息对应的第一数值在相应的应用服务器中进行更新。

在本实施例中,因为寄存器中对应的溢出门限值是较大的,而一般的用户在两次计步器上报计步器消息之间,累积的步数是有限的,也就是说,就算判定两次检测到的计步器消息对应的步数发生了溢出,若溢出数值与第一数值的和过于大的情况下,还可能是计步器上报的计步器消息中对应的数据被篡改了,为了避免该种情况,还需要确定当前次检测到的计步器消息对应的第一数值要小于预设的第一阈值,以及上一次检测到的计步器消息对应的第二数值要小于预设的第二阈值,否则,则不能判定第一数值发生溢出。需要说明的是,在本实施例中,第一阈值以及第二阈值的具体数据时根据溢出门限值以及用户运动的历史数据确定的。具体的,在一个实施例中,上述判定所述第一数值发生溢出的步骤之前还包括:判断所述第一数值是否小于预设的第一阈值以及所述第二数值是否大于预设的第二阈值,若是,则判定所述第一数值发生溢出,若否,则生成计步器数据异常的提示消息。

进一步的,在考虑计步器上报的计步器消息对应的数据是否异常时,还需要考虑数据的变化量与时间之间的关系,也就是说,需要考虑在单位时间之内的步数变化是否是合理的。

具体的,在一个实施例中,上述获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值的步骤之后还包括:获取所述获取目标次检测到的计步器消息包含的第一时间戳和所述目标次的上一次检测到的计步器消息包含的第二时间戳,根据所述第一时间戳和所述第二时间戳确定所述目标次对应的时间间隔;获取所述溢出数值与所述第一数值的和与所述时间间隔的比值,在所述比值大于预设的第三阈值时,判定所述第一数值异常,并生成计步器数据异常的提示信息;在所述比值不大于预设的第三阈值时,执行所述将所述溢出数值与所述第一数值的和作为第一数值输出的步骤。

也就是说,在计步器消息中不仅包含了相应的统计的步数,还包含了对应的上报的时间,根据两次检测到的计步器消息包含的时间可以确定两次检测到的计步器消息的时间间隔。如前所述,溢出数值与第一数值的和即为检测到的两次计步器消息之间统计到的步数,二者之间的比值即可反映单位时间内步数的变化量。而这个变化量是不会超过一定的限制的,若超过了预设的变化值的极限值,则说明当前检测到的计步器消息中对应的步数可能被篡改了,在此种情况下,生成计步器消息异常的提示消息用来提示用户当前的数据可能被篡改了,反之,则将溢出数值与所述第一数值的和作为第一数值输出。

此外,为解决传统技术中的因计步器的寄存器可存储的数据的大小限制导致计步器中统计的数据产生的溢出从而导致的步数统计的准确性不足的技术问题,在一个实施例中,如图2所示,还提出了一种基于计步器消息的数据输出装置,具体的,该基于计步器消息的数据输出装置包括数值获取模块102、数值溢出判定模块104、溢出数值确定模块106、输出模块108,其中:

数值获取模块102,用于检测计步器由驱动层上报的计步器消息,获取目标次检测到的计步器消息包含的第一数值和所述目标次的上一次检测到的计步器消息包含的第二数值;

数值溢出判定模块104,用于在所述第一数值小于第二数值时,判定所述第一数值发生溢出;

溢出数值确定模块106,用于在所述第一数值发生溢出时,获取所述计步器的溢出门限值,根据所述第二数值和所述溢出门限值生成溢出数值;

输出模块108,用于将所述溢出数值与所述第一数值的和作为第一数值输出。

可选的,在一个实施例中,如图2所示,上述装置还包括重启判断模块110,用于判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过重启,在发生重启时,调用所述数值溢出判定模块。

可选的,在一个实施例中,如图2所示,上述装置还包括重置判断模块112,用于判断所述目标次检测到的计步器消息和目标次的上一次检测到的计步器消息之间是否发生过计步器重置,在发生计步器重置时,调用所述数值溢出判定模块。

可选的,在一个实施例中,上述所述数值溢出判定模块104还用于判断所述第一数值是否小于预设的第一阈值以及所述第二数值是否大于预设的第二阈值,若是,则判定所述第一数值发生溢出,若否,则生成计步器数据异常的提示消息。

可选的,在一个实施例中,如图2所示,上述装置还包括变化率确定模块114,用于获取所述获取目标次检测到的计步器消息包含的第一时间戳和所述目标次的上一次检测到的计步器消息包含的第二时间戳,根据所述第一时间戳和所述第二时间戳确定所述目标次对应的时间间隔;获取所述溢出数值与所述第一数值的和与所述时间间隔的比值,在所述比值大于预设的第三阈值时,判定所述第一数值异常,并生成计步器数据异常的提示信息;在所述比值不大于预设的第三阈值时,调用所述输出模块108。

实施本发明实施例,将具有如下有益效果:

采用了上述基于计步器消息的数据输出方法和装置之后,在检测到的由计步器上报的计步器消息中对应的步数小于上一次检测到的计步器消息中对应的步数时,判定当前次检测到的步数发生溢出,并根据寄存器对应的溢出门限值确定溢出的具体步数,并根据溢出的具体值以及当前次检测到的计步器消息中对应的步数确定输出的具体的步数。也就是说,考虑了寄存器溢出对统计的步数的影响,避免了溢出导致的步数统计不准确的缺陷,提高了数据统计的准确性。

在一个实施例中,如图3所示,图3展示了一种运行上述基于计步器消息的数据输出方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是智能手机、平板电脑、掌上电脑、笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口1001、处理器1002、存储器1003和输出接口1004。其中,外部输入接口1001可选的可至少包括网络接口10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口1004可至少包括显示屏10042等设备。

在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的数值获取模块102、数值溢出判定模块104、溢出数值确定模块106、输出模块108、重启判断模块110、重置判断模块112、变化率确定模块114。且在上述基于计步器消息的数据输出方法执行过程中,输入的参数均通过外部输入接口1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口1004进行输出。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1