-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfigManager.cpp
66 lines (51 loc) · 1.44 KB
/
ConfigManager.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
#include "ConfigManager.h"
ConfigManager::ConfigManager(){
EEPROM.begin(512);
getSettings();
server = new ESP8266WebServer(80);
server->on("/", std::bind(&ConfigManager::handle_root, this));
server->on("/utc", std::bind(&ConfigManager::handle_utc, this));
server->on("/msg", std::bind(&ConfigManager::handle_other, this));
server->begin();
}
void ConfigManager::update(){
server->handleClient();
}
int ConfigManager::timeOffsetHourInSeconds()
{
return s.utc_offset*3600;
}
void ConfigManager::getSettings(){
EEPROM.get(eepromAddress, s);
Serial.println(s.utc_offset);
}
void ConfigManager::setSettings(){
EEPROM.put(eepromAddress, s);
EEPROM.commit();
}
void ConfigManager::handle_root()
{
String form_temp = form;
server->send(200, "text/html", form_temp);
}
void ConfigManager::handle_utc()
{
String form_temp = form;
server->send(200, "text/html", form_temp); // Send same page so they can send another msg
String msg = server->arg("utc");
int offset = msg.toInt();
if(offset > -12 && offset < 12)
{
Serial.print("Setting utc offset to EEPROM = ");
Serial.println(offset);
s.utc_offset = offset;
setSettings();
}
}
void ConfigManager::handle_other()
{
String form_temp = form;
server->send(200, "text/html", form_temp); // Send same page so they can send another msg
String msg = server->arg("msg");
Serial.println(msg);
}