void minuteElapsed() { if (addMinute(1)) addHour(1); // checa se o alarme está ativo e o dispara if (alarmActived) checkAlarm(); }
bool NotesManager::init() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(QCoreApplication::applicationDirPath() + "/notesmanager.db"); if (!db.open()) db.setDatabaseName(QDir::homePath() + "/notesmanager.db"); if (db.open()) { QSqlQuery create; create.exec("CREATE TABLE todolist(id INTEGER PRIMARY KEY, notes VARCHAR(255), date VARCHAR(255))"); nextAlarm(); QTimer *timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(checkAlarm())); timer->start(1000); } else { return false; } return true; }
void Clock::addTime(int seconds, bool toAlarm){ tm* target = toAlarm ? &alarm : &clockTime; target->tm_sec += seconds; while( target->tm_sec >= 60 ){ target->tm_sec -= 60; target->tm_min += 1; if( mode == CLOCK ) checkAlarm(); } while( target->tm_sec < 0 ){ target->tm_sec += 60; target->tm_min -= 1; } while( target->tm_min >= 60 ){ target->tm_min -= 60; target->tm_hour += 1; } while( target->tm_min < 0 ){ target->tm_min += 60; target->tm_hour -= 1; } while( target->tm_hour >= 24 ) target->tm_hour -= 24; while( target->tm_hour < 0 ) target->tm_hour += 24; if( toAlarm ) snooze = alarm; updateClock(); }
int main(void) { uint8_t cmd; uint8_t dispMode = MODE_MAIN; static int8_t direction = PARAM_UP; hwInit(); showTimeMasked(); ds18x20Process(); sensTimer = TEMP_MEASURE_TIME; while(1) { // Update sensors with SENSOR_POLL_INTERVAL period if (!sensTimer == 0) { sensTimer = SENSOR_POLL_INTERVAL; ds18x20Process(); if (bmp180HaveSensor()) bmp180Convert(); dht22Read(); } // Check alarm checkAlarm(); // Update brightness only when not in brightness setup if (dispMode != MODE_BRIGHTNESS) calcBrightness(); // Get command from buttons cmd = getBtnCmd(); // Beep on button pressed if (cmd != BTN_STATE_0) { if (cmd < BTN_0_LONG) startBeeper(BEEP_SHORT); else startBeeper(BEEP_LONG); } // Stop scrolling on any button pressed if (cmd != BTN_STATE_0) matrixHwScroll(MATRIX_SCROLL_STOP); // Handle command switch (cmd) { case BTN_0: direction = PARAM_UP; switch (dispMode) { case MODE_EDIT_TIME: rtcNextEditParam(); break; case MODE_EDIT_ALARM: alarmNextEditParam(); break; } break; case BTN_1: direction = PARAM_UP; case BTN_2: if (cmd == BTN_2) direction = PARAM_DOWN; switch (dispMode) { case MODE_MAIN: startScroll(cmd - BTN_1); break; case MODE_EDIT_TIME: rtcChangeTime(direction); break; case MODE_EDIT_ALARM: alarmChange(direction); break; case MODE_BRIGHTNESS: changeBrightness(direction); break; case MODE_TEST: displayChangeRotate(direction); break; } break; case BTN_0_LONG: if (dispMode == MODE_MAIN) { dispMode = MODE_EDIT_TIME; rtcNextEditParam(); } else { rtc.etm = RTC_NOEDIT; alarmSave(); alarm.eam = ALARM_NOEDIT; dispMode = MODE_MAIN; showTimeMasked(); } break; case BTN_1_LONG: if (dispMode == MODE_MAIN) { dispMode = MODE_EDIT_ALARM; alarmNextEditParam(); } break; case BTN_2_LONG: if (dispMode == MODE_MAIN) { dispMode = MODE_BRIGHTNESS; showBrightness(direction, MASK_ALL); } break; case BTN_0_LONG | BTN_1_LONG: displaySwitchHourZero(); dispMode = MODE_MAIN; showTimeMasked(); break; case BTN_1_LONG | BTN_2_LONG: displaySwitchBigNum(); dispMode = MODE_MAIN; showTimeMasked(); break; case BTN_0_LONG | BTN_2_LONG: displaySwitchHourSignal(); dispMode = MODE_MAIN; showTimeMasked(); break; case BTN_0_LONG | BTN_1_LONG | BTN_2_LONG: dispMode = MODE_TEST; break; } // Show things switch (dispMode) { case MODE_MAIN: showMainScreen(); break; case MODE_EDIT_TIME: showTimeEdit(direction); break; case MODE_EDIT_ALARM: showAlarmEdit(direction); break; case MODE_BRIGHTNESS: showBrightness(direction, MASK_NONE); break; case MODE_TEST: showTest(); break; } } return 0; }
void main() { unsigned char sec,min,hour,day,month,year; uint8_t option=0; #define Button PIND #define up 5 #define down 4 #define select 3 #define cancel 2 DDRD = 0XF0; //Switches as input, lcd dataline as output PORTD = 0XFF; //Internal pull up enabled for switches DDRB |= (1<<buzzer_pin); // buzzer as output LCD_Init(4,2,16); LCD_Printf(" Explore Time !"); _delay_ms(2000); LCD_Clear(); RTC_Init(); //segments for creating large font stored in RAM. LCD_CreateCC(LT,0); LCD_CreateCC(UB,1); LCD_CreateCC(RT,2); LCD_CreateCC(LL,3); LCD_CreateCC(LB,4); LCD_CreateCC(LR,5); LCD_CreateCC(UMB,6); LCD_CreateCC(LMB,7); /*Set the time and Date only once */ // RTC_SetTime(0x23,0x40,0x20); // 11:40:20 pm // RTC_SetDate(0x14,0x11,0x12); // 14th Nov 2012 while(1) { if(util_IsBitCleared(Button,select)) { while(util_IsBitCleared(Button,select)); do { option = LCD_DisplayMenu(); switch(option) { case 0: setTime(hour,min,sec);break; case 1: setDate(day,month,year);break; case 2: setAlarm(); break; case 3: setDisplayStyle(); break; case 4: setTimeFormat(); break; default: break; } } while(util_IsBitSet(Button,cancel)); LCD_Clear(); } RTC_GetTime(&hour,&min,&sec); RTC_GetDate(&day, &month, &year); LCD_DisplayTime(hour, min, sec); LCD_DisplayDate(day, month, year); checkAlarm(); } }