Exemplo n.º 1
0
void minuteElapsed()
{
	if (addMinute(1))
		addHour(1);
	// checa se o alarme está ativo e o dispara
	if (alarmActived)
		checkAlarm();
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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();    

}
Exemplo n.º 4
0
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();
				
	}

}