一种无线低功耗设备实现倒计时的方法及系统与流程

文档序号:21280744发布日期:2020-06-26 23:35阅读:237来源:国知局
一种无线低功耗设备实现倒计时的方法及系统与流程

本申请涉及智能家居领域,具体而言,涉及一种无线低功耗设备实现倒计时的方法。



背景技术:

现有技术中,低功耗设备由于电池供电为了省电要求而需要进入睡眠模式,但是在睡眠模式中需要保持一些基本功能能够快速响应。因此需要设定唤醒源,以任务为驱动的设备进入睡眠状态之前会判断下一次需要进行的任务还有多久,进入睡眠模式后依靠睡眠rtc计算什么时候唤醒来执行最近的一个任务。但是当两个任务时间相近且没有抢占机制时,原本应该处于运行状态的任务会被正在执行的任务阻塞,因此周期性运行的任务如果对时间准确度要求较高的话会有存在误差随着时间不断扩大的问题。

如图1所示,设现有一设备需要开启一个定时时间为60秒的倒计时,60秒到后执行开启继电器动作,当接收到开启倒计时任务后设备会开启一个周期为1秒的定时器,每过1秒钟将剩余倒计时时间减去定时器周期时间。

该方案中定时器周期时间为1秒,上次剩余倒计时时间在开始倒计时时被赋值为60秒,之后每过1秒钟递减1,得到的结果赋值给剩余倒计时时间。如第一次计算时:剩余倒计时时间=上次倒计时剩余时间-定时器间隔时间=60-1=59s;每次计算结束后将剩余倒计时时间赋值给上次倒计时剩余时间,即第二次计算时:剩余倒计时时间=上次倒计时剩余时间-定时器间隔时间=59-1=58s;以此类推,当剩余倒计时时间递减到0时关闭该定时器,并执行开启继电器动作,本次倒计时结束。

然而,现有技术存在如下缺点:

如图2所示,假设现在有倒计时任务a和任务b,设备在运行中会判断是否需要进入睡眠,假设某个时刻设备需要进入睡眠,在进入睡眠之前判断任务列表里有还需要800ms才会执行的任务b,还需1000ms才会执行的倒计时任务a。优先执行最近的任务,则设备进入睡眠后800ms执行任务b,1000ms后执行倒计时任务a。因此休眠800ms之后唤醒,开始执行任务b。

但是任务b本身也是有执行时间的且没有任务抢占机制。例如,倒计时任务b执行了300ms那么就会造成1100ms之后才会执行倒计时任务a,就会造成100ms的时间误差存在。

后续有任务阻塞在倒计时任务a前也会造成倒计时任务a的执行时间误差增加而使得倒计时任务a的周期变长。倒计时功能存在上述的问题会导致有不断的时间误差累计,假设每次都会有100ms的误差存在则在运行十次之后,会有1秒的倒计时误差。



技术实现要素:

本申请的主要目的在于提供一种无线低功耗设备实现倒计时的方法,包括:

设定第一计时系统的计时初始时间;

设定计时周期;

获取所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间;

获取第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差;

当n=0时,所述第一计时系统的倒计时剩余时间为倒计时初始时间;

当n>0时,根据如下公式获取所述第一计时系统的倒计时剩余时间:

tn=tn-1-(t1-t2),

其中,tn-1所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间,(t1-t2)为所述第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差,tn为所述第一计时系统中的第n个计时周期结束时的倒计时剩余时间,n为整数。

可选地,所述计时周期为1秒。

可选地,当所述第二计时系统中的时间为递增时,t1为所述第二计时系统中的第n个周期结束时的时间,t2为所述第二计时系统中的第n-1个周期结束时的时间。

可选地,当所述第二计时系统中的时间为递减时,t1为所述第二计时系统中的第n-1个周期结束时的时间,t2为所述第二计时系统中的第n个周期结束时的时间。

可选地,所述无线低功耗设备实现倒计时的方法还包括:

判断是否需要进入睡眠;

判断是否有倒计时触发任务;

当需要进入睡眠模式且有倒计时触发任务时,进入睡眠模式之后开始倒计时。

可选地,所述无线低功耗设备实现倒计时的方法还包括:

当tn=0时,停止所述倒计时程序;

执行开启所述倒计时程序对应的动作。

根据本申请的另一个方面,还提供了一种无线低功耗设备实现倒计时的系统,包括:

第一设定模块,用于设定第一计时系统的计时初始时间;

第二设定模块,用于设定计时周期;

第一获取模块,用于获取所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间;

第二获取模块,用于获取第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差;

当n=0时,所述第一计时系统的倒计时剩余时间为倒计时初始时间;

当n>0时,根据如下公式获取所述第一计时系统的倒计时剩余时间:

tn=tn-1-(t1-t2),

其中,tn-1所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间,(t1-t2)为所述第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差,tn为所述第一计时系统中的第n个计时周期结束时的倒计时剩余时间,n为整数。

本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。

本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。

本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。

与现有技术相比,本申请具有如下有益效果:

本申请倒计时功能通过第二计时系统中的定时器定时赋值倒计时时间变量,达到设定的倒计时时间后进行相应的倒计时动作来实现倒计时功能,因此倒计时功能需要开启一个定时器来完成修改倒计时的任务。本申请通过不以周期任务a的延时时间为周期来执行相应的任务,而是以底层的系统时间的变化来作为执行周期的判断,因为底层的系统时间不会由于睡眠等原因而被阻塞,该值从上电开始从0开始不断递增,对被阻塞而造成的时间误差进行校准避免造成时间误差越来越大的问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是现有技术中的无线低功耗设备实现倒计时的方法的流程示意图;

图2是现有技术中的无线低功耗设备实现倒计时的方法的流程示意图;

图3是根据本申请一个实施例的无线低功耗设备实现倒计时的方法的流程示意图;

图4是根据本申请一个实施例的无线低功耗设备实现倒计时的方法的流程示意图;

图5是根据本申请一个实施例的无线低功耗设备实现倒计时的方法的流程示意图;

图6是根据本申请一个实施例的计算机设备的示意图;以及

图7是根据本申请一个实施例的计算机可读存储介质的示意图。

具体实施方式

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

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

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参照图1,本申请一实施例提供了一种无线低功耗设备实现倒计时的方法,其特征在于,包括:

s2:设定第一计时系统的计时初始时间;

s4:设定计时周期;

s6:获取所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间;

s8:获取第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差;

当n=0时,所述第一计时系统的倒计时剩余时间为倒计时初始时间;

当n>0时,根据如下公式获取所述第一计时系统的倒计时剩余时间:

tn=tn-1-(t1-t2),

其中,tn-1所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间,(t1-t2)为所述第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差,tn为所述第一计时系统中的第n个计时周期结束时的倒计时剩余时间,n为整数。

本申请一实施例中,所述计时周期为1秒。

本申请一实施例中,当所述第二计时系统中的时间为递增时,t1为所述第二计时系统中的第n个周期结束时的时间,t2为所述第二计时系统中的第n-1个周期结束时的时间。

本申请一实施例中,当所述第二计时系统中的时间为递减时,t1为所述第二计时系统中的第n-1个周期结束时的时间,t2为所述第二计时系统中的第n个周期结束时的时间。

本申请一实施例中,所述无线低功耗设备实现倒计时的方法还包括:

判断是否需要进入睡眠;

判断是否有倒计时触发任务;

当需要进入睡眠模式且有倒计时触发任务时,进入睡眠模式之后开始倒计时。

本实施例中所述的开始倒计时的功能并不一定时在本系统中完成的,也可以是安装本系统的操作系统中的最底层计时器,或者在操作系统中安装的其他计时器程序,甚至可以是其他智能设备中安装的计时器程序进行的倒计时。当上述倒计时完成之后,发送唤醒指令给处于睡眠模式的本系统,本系统在收到该唤醒指令之后被唤醒,并开始处理倒计时触发任务。这些均属于本申请所要求保护的范围内。

本申请一实施例中,所述无线低功耗设备实现倒计时的方法还包括:

当tn=0时,停止所述倒计时程序;

执行开启所述倒计时程序对应的动作。

如图3-5所示,本实施例中的计时周期以1秒为例,但并不以此为限。例如现有一设备需要开启一个定时时间为60秒的倒计时,60秒到后执行开启继电器动作,当接收到开启倒计时任务后设备会开启一个周期为1秒的定时器,上次剩余倒计时时间在开始倒计时时被赋值为60s(即60000ms)。

在倒计时开启时记录下该时的第二计时系统的时间(可以将该系统时间视为一个不断周期递增或递减的数据,本实施例中以递增为例,但并不以此为限)假设该时第二计时系统时间为10000ms,每过1秒钟获取该时的第二计时系统时间。经过1秒之后,该时第二计时系统时间变为11000ms,上次剩余倒计时时间减去的时间是第二计时系统的两次记录的系统时间之差,即剩余倒计时时间=上次倒计时剩余时间-(现在第二计时系统时间-上次第二计时系统时间)=60000-(11000-10000)=59000ms,每次计算结束后将剩余倒计时时间赋值给上次倒计时剩余时间,将现在第二计时系统时间赋值给上次第二计时系统时间;再过了1秒钟获取该时的系统时间,那么该时第二计时系统时间就为12000ms,即剩余倒计时时间=上次倒计时剩余时间-(现在第二计时系统时间-上次第二计时系统时间)=59000-(12000-11000)=58000ms;以此类推,当剩余倒计时时间递减到0时关闭该定时器,并执行开启继电器动作,本次倒计时结束。第二计时系统可以是安装本计时系统的操作系统的底层计时器,或者在操作系统中安装的其他计时器程序,甚至可以是其他智能设备中安装的计时器程序进行的倒计时。当上述倒计时完成之后,发送唤醒指令给处于睡眠模式的本系统,本系统在收到该唤醒指令之后被唤醒,并开始处理倒计时触发任务。这些均属于本申请所要求保护的范围内。

由于倒计时时间递减以实际的第二计时系统的时间变化为触发条件,则系统时间能正确反应任务a的阻塞造成的执行延迟时间,任务a被阻塞,运行任务a时系统时间也会相应增加,即倒计时减去的时间已经算上阻塞延迟,因此可以对其进行时间校准。

在本申请一实施例中,所述无线低功耗设备实现倒计时的方法还包括:发送第一计时系统的倒计时剩余时间至显示装置,并显示所述第一计时系统的倒计时剩余时间。本实施例中的显示装置可以为手机显示屏或者其他显示装置,属于本申请所要求保护的范围内。以下以手机为例:

手机显示第一计时系统的倒计时剩余时间有如下两种方法:

1.计时周期为上报周期,在本实施例中以1分钟为例,那么每过1分钟,低功耗设备上报一次当前倒计时时间至手机。例如,低功耗设备开始一个60分钟的倒计时,那么每隔1分钟,在倒计时时间为59、58……时,即在倒计时是时间每次发生变化时,均发送当倒计时时间给手机。那么手机上就会持续的显示59、58……。注意若以是否能被上报周期整除判断是否需要上报,则可能存在由于任务被阻塞而使得某次运行前后正好跨过上报点,可以加上冗余时间而防止由于任务阻塞而造成的漏过某次上报,定时上报会增加低功耗设备的功耗。

2.以手机面板点击读取当前倒计时界面为触发,实时读取低功耗设备当前的倒计时时间,需要手机面板具有点击读取的功能。例如,平时手机不接受低功耗设备发送的当前倒计时时间,只有当用户想知道当前低功耗设备的倒计时时间时,用户点击手机上的读取按钮,手机发送请求命令给低功耗设备,低功耗设备处于被唤醒状态且收到该请求命令时,发送当前倒计时时间给手机,并在手机上显示该时间。同时由于低功耗设备睡眠时不开接收,需要等待下一次唤醒时才能接收到读取当前倒计时时间的命令,因此最多可能会有一次睡眠时长的时间延迟。

与现有技术相比,本申请具有如下有益效果:

1.低功耗设备实现本地倒计时功能,由于任务阻塞造成的累计倒计时误差可以通过系统时钟校准方式进行校时,实现低功耗设备的倒计时误差在可接受范围之内。

2.低功耗设备实现自身倒计时时间定时上报,为解决跨越上报时间点而造成的倒计时时间显示跳跃,可以加上冗余时间来提高准确性,配合点击显示界面时实时读取,可以更好的降低功耗和校准时间。

3.上报标志位是用来实现倒计时取消功能的,其中一种取消的做法是下发一个倒计时时间为0的倒计时任务,但是这时候又不希望执行倒计时动作,这时即可通过控制上报标志位来决定是否需要进行倒计时动作。

4.获取当前系统时间之后,进行当前系统时间对比上次系统时间,进行当前倒计时剩余时间对比系统时间差值,可以程序虑错,过滤异常值,防止数据溢出。

本申请还提供了一种无线低功耗设备实现倒计时的系统,包括:

第一设定模块,用于设定第一计时系统的计时初始时间;

第二设定模块,用于设定计时周期;

第一获取模块,用于获取所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间;

第二获取模块,用于获取第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差;

当n=0时,所述第一计时系统的倒计时剩余时间为倒计时初始时间;

当n>0时,根据如下公式获取所述第一计时系统的倒计时剩余时间:

tn=tn-1-(t1-t2),

其中,tn-1所述第一计时系统中的第n-1个计时周期结束时的倒计时剩余时间,(t1-t2)为所述第二计时系统中的第n-1个周期结束时与第n个周期结束时的两次计时的时间差,tn为所述第一计时系统中的第n个计时周期结束时的倒计时剩余时间,n为整数。

请参照图6,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。

请参照图7,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。

一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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