【问题标题】:Wakup API: waking timing is not consistentWakup API:唤醒时间不一致
【发布时间】:2016-06-13 02:25:19
【问题描述】:

我写了一个非常基本的应用程序“Nag for Pebble”——它所做的只是在给定的时间间隔唤醒,然后重新安排下一次唤醒并立即退出应用程序。所以效果是 - 以给定的间隔“背景”嗡嗡声。

问题是 - 即使实际时间是一致的,两次唤醒之间的时间也会不断增加。我正在做这样的事情:

time_t next= time(NULL);  
next  += buzz_interval*60;  
wakeup_schedule(next, 0, false); 

所以如果 buzz_interval 是 5 分钟,它将每 5 分钟唤醒一次。问题是在唤醒之间的一段时间后不断增加,首先难以察觉,但随后错误累积。不知道是什么原因造成的,以及如何弥补。

如果需要,这里是complete source

更新:这是一个日志,显示下一次唤醒的预定时间(下一次)以及实际唤醒时间(当前时间)。正如您在几次唤醒后看到的那样,它获得一秒钟,然后是两秒钟。哎呀,

[DEBUG] main.c:24: Current time = 20:49:59
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:50:59
[DEBUG] main.c:24: Current time = 20:50:59
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:51:59
[DEBUG] main.c:24: Current time = 20:52:00
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:53:00
[DEBUG] main.c:24: Current time = 20:53:00
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:54:00
[DEBUG] main.c:24: Current time = 20:54:00
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:55:00
[DEBUG] main.c:24: Current time = 20:55:01
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:56:01
[DEBUG] main.c:24: Current time = 20:56:01
[DEBUG] main.c:25: Buzz Interval = 1, buzz_start = 0
[DEBUG] main.c:66: Next time = 20:57:01
[DEBUG] main.c:24: Current time = 20:57:03

【问题讨论】:

    标签: pebble-watch pebble-sdk wakeup


    【解决方案1】:

    我认为它会略有增加是有道理的,并且增加是从应用程序打开和执行代码所需的时间开始的。

    确保以一致的间隔安排唤醒的一种方法是保留一个持久变量 (https://developer.pebble.com/guides/pebble-apps/app-structure/persistent-storage/),其中包含第一个蜂鸣器何时响起,通过一些计算,您可以计算出下一个蜂鸣器的确切时间应该安排蜂鸣器。

    【讨论】:

    • 我也想到了这个有趣的想法。我做了一个测试,我只在初始启动时读取系统时间,然后不断增加持久值 - 它具有相同的副作用。打算再试一次,也许我错过了什么,但恐怕不是罪魁祸首。
    • 使用持久存储重做版本,这次成功了。一定是在之前的尝试中搞砸了。谢谢你让我再试一次。
    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多