c - 嗡嗡声(振动)在点钟时间?

标签 c pebble-watch pebble-sdk

非常基本的问题,几个小时以来我一直试图自己弄清楚,但无法解决。

所以我正在为 Pebble 创建我的第一个表盘,我希望 watch 每小时发出嗡嗡声(振动)。您还记得一些数字 watch 会在点钟时间发出“哔”声吗?好吧,就像那样。

我认为最简单的方法是:

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

效果很好。现在我有一个小错误。在那一分钟内,如果重新创建窗口(例如,如果您转到时间线或打开一个 watchapp 并快速返回到我的 watchface),update_time() 将再次调用,因此它会再次发出蜂鸣声。不是一个大错误,但有点烦人。

我尝试使用 bool 标志来解决问题。

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/

相关文章:

pebble-watch - CloudPebble 与原生 Pebble SDK

c - 构建 Pebble watchapp 时未定义对 `_sbrk' 的引用

android - 在 Android Studio 中重写 Gradle Remote Dependency 的 targetSdkVersion

c - 这个 C 函数语法是什么?

c - 哈希表中的段错误 - C

c - 使用 Pebble iOS Kit 获取 Pebble 应用程序元数据的正确方法

javascript - 图像元素 'clear' 背景颜色不起作用

c - 引用数组指针中的值 (c)

c - 制作 makefile const 声明和结构问题时出错

C - 凯撒密码 [将代码移至函数]