-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTime.ino
More file actions
65 lines (57 loc) · 1.97 KB
/
Time.ino
File metadata and controls
65 lines (57 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
void fetchTime() {
timeClient.begin();
timeClient.setTimeOffset(7200);
timeClient.update();
timeFetch.weekDay = timeClient.getDay();
timeFetch.hour = timeClient.getHours();
timeFetch.min = timeClient.getMinutes();
timeFetch.sec = timeClient.getSeconds();
timeLastFetch = millis();
timeClient.end();
}
void getRealTime() {
sec = ((millis() - timeLastFetch) + TIME_CORRECTION_CONSTANT) / 1000;
timeReal.sec = (timeFetch.sec + sec);
timeReal.min = (timeFetch.min + timeReal.sec / 60);
timeReal.hour = (timeFetch.hour + timeReal.min / 60);
timeReal.weekDay = (timeFetch.weekDay + timeReal.hour / 24);
timeReal.sec = timeReal.sec % 60;
timeReal.min = timeReal.min % 60;
timeReal.hour = timeReal.hour % 24;
timeReal.weekDay = timeReal.weekDay % 7;
//Serial.printf("%d, %d:%d:%d -- %d", timeReal.weekDay,timeReal.hour, timeReal.min, timeReal.sec, sec);
//Serial.printf(" -- %d, %d:%d:%d\n", timeFetch.weekDay,timeFetch.hour, timeFetch.min, timeFetch.sec, sec);
}
void getRemainingTime() {
timerCentSecLeft = timerCentSecEnd - (millis() / 10);
if (timerCentSecLeft <= 0) {
brightness_sp = brightness_flashHigh;
ringCause = TIMER_RING;
clockRinging = 1;
}
}
void checkForAlarms() {
for (byte i = 0; i < existingAlarms; i++) {
if (!alarms[i].alreadyRinged && alarms[i].weekDay[timeReal.weekDay] && alarms[i].hour == timeReal.hour && alarms[i].min == timeReal.min) {
brightness_sp = brightness_flashHigh;
ringCause = ALARM_RING;
alarmNumberRinging = i;
clockRinging = 1;
} else if (alarms[i].hour != timeReal.hour || alarms[i].min != timeReal.min) {
alarms[i].alreadyRinged = 0;
}
}
}
void deleteAlarm(byte al) {
if (existingAlarms > 0) {
for (byte y = al; y < existingAlarms; y++) {
alarms[y] = alarms[y + 1];
}
existingAlarms--;
WriteAlarmsToEEPROM();
}
}
void decodeTime(char source[6],int* hour,int* min){
*hour =(source[0]-'0')*10+source[1]-'0';
*min =(source[3]-'0')*10+source[4]-'0';
}