首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >八点钟的嗡嗡声?

八点钟的嗡嗡声?
EN

Stack Overflow用户
提问于 2015-10-11 07:40:04
回答 2查看 254关注 0票数 0

一个非常基本的问题,我已经试着自己解决了几个小时,但还是解决不了。

因此,我正在为Pebble制作我的第一个手表表盘,我希望手表每小时都会嗡嗡作响(振动)。你还记得有些电子表在半夜三点钟会发出“嘟嘟声”吗?嗯,类似的东西。

我想出最简单的方法是:

代码语言:javascript
复制
if (tick_time->tm_min == 0) {
    vibes_short_pulse();
}

它工作得很好。现在我有了一个小bug。在这一分钟内,如果重新创建了窗口(例如,如果您转到时间线或打开一个watchapp并快速返回到我的钟表面),则会再次调用update_time(),因此它会再次发出嗡嗡声。这不是一个很大的bug,但有点让人讨厌。

我试着使用布尔标志来解决这个问题。

代码语言:javascript
复制
static bool vibed = false;

然后,

代码语言:javascript
复制
if (tick_time->tm_min != 0) {
    vibed = false;
}

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

但显然,每次重新创建窗口时,无论发生什么情况,标志都会回到"false“。

我不知道怎么解决这个问题。如果你能给我一个提示,我将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-11-10 06:54:50

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

代码语言:javascript
复制
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();
  }


}    
票数 2
EN

Stack Overflow用户

发布于 2015-12-25 00:35:40

我只会记得你最后一次嗡嗡作响的那个小时。只有在不同的情况下才会发出嗡嗡声。所以:

代码语言:javascript
复制
//initialize to impossible hour so it works the first time
static int lastBuzzHour=-1;
if (tick_time->tm_hour !=lastBuzzHour) {
    vibes_short_pulse();
    // now that you've buzzed, remember it so you don't retrigger
    lastBuzzHour=tick_time->tm_hour;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33060116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档