-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfig.cpp
68 lines (57 loc) · 1.13 KB
/
Config.cpp
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
66
67
68
#include "Config.h""
#include <EEPROM.h>
#include <DS3232RTC.h>
Config *Config::instance = 0;
Config::Config() {
this->load();
}
Config * Config::getInstance() {
if (!instance)
instance = new Config;
return instance;
}
void Config::load() {
EEPROM.get(SUMMER_TIME_ADDR, summerTime);
EEPROM.get(TEMP_UNIT_ADDR, tempUnit);
EEPROM.get(SNOOZE_TIME_ADDR, snoozeTime);
}
void Config::save() {
EEPROM.put(SUMMER_TIME_ADDR, summerTime);
EEPROM.put(TEMP_UNIT_ADDR, tempUnit);
EEPROM.put(SNOOZE_TIME_ADDR, snoozeTime);
}
void Config::toggleSummerTime() {
if (isSummerTime()) {
setTime(now() - 3600);
RTC.set(now());
} else {
setTime(now() + 3600);
RTC.set(now());
}
summerTime = ! summerTime;
}
bool Config::isSummerTime() {
return summerTime;
}
void Config::toggleTempUnit(){
switch(tempUnit){
case 'C':
tempUnit = 'K';
break;
case 'K':
tempUnit = 'F';
break;
case 'F':
tempUnit = 'C';
break;
}
}
char Config::getTempUnit(){
return tempUnit;
}
void Config::setSnoozeTime(int mins){
snoozeTime = mins;
}
int Config::getSnoozeTime(){
return snoozeTime;
}