一个很基本的问题,我已经试着自己解决了几个小时,但解决不了。
因此,我正在为Pebble创建我的第一个表面,我希望手表每小时嗡嗡(振动)一次。你还记得一些数字手表在点钟的时候发出“哔”声吗?是这样的。
我想最简单的方法是:

if (tick_time->tm_min == 0) {
    vibes_short_pulse();
}

它很好用。现在我有一个小虫子。在这一分钟内,如果窗口被重新创建(例如,如果您转到时间线或打开watchapp并快速返回到我的观察面),则会再次调用update_time(),使其再次鸣响。不是个大虫子,但有点烦人。
我试着用布尔标志来解决这个问题。
static bool vibed = false;

然后,
if (tick_time->tm_min != 0) {
    vibed = false;
}

if (tick_time->tm_min == 0 && vibed == false) {
    vibes_short_pulse();
    vibed = true;
}

但很明显,每次重新创建窗口时,无论发生什么,标志都会返回“false”。
我不知道怎么解决。如果你能给我一个提示,我将不胜感激。谢谢!

最佳答案

不要检查分钟为零,而是检查小时更改事件,例如:

void tick_handler(struct tm *tick_time, TimeUnits units_changed)
{

  // Some other code that display/process time

  // on hour change do a short buzz
  if (units_changed & HOUR_UNIT) {
      vibes_short_pulse();
  }


}

关于c - 几点钟嗡嗡作响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33060116/

10-11 00:50