-
Notifications
You must be signed in to change notification settings - Fork 0
/
global.h
112 lines (87 loc) · 2.62 KB
/
global.h
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#ifndef GLOBAL_H
#define GLOBAL_H
ESP8266WebServer server(80); // The Webserver
int AdminTimeOutCounter = 0; // Counter for Disabling the AdminMode
boolean Refresh = false; // For Main Loop, to refresh things like GPIO / WS2812
boolean AdminEnabled = true; // Enable Admin Mode for a given Time
struct strConfig {
String ssid;
String password;
byte IP[4];
byte Netmask[4];
byte Gateway[4];
boolean dhcp;
int deviceIdentifier;
String mqttServer;
} config;
/*
**
** CONFIGURATION HANDLING
**
*/
void ConfigureWifi()
{
Serial.println("Configuring Wifi");
WiFi.begin (config.ssid.c_str(), config.password.c_str());
if (!config.dhcp)
{
WiFi.config(IPAddress(config.IP[0],config.IP[1],config.IP[2],config.IP[3] ), IPAddress(config.Gateway[0],config.Gateway[1],config.Gateway[2],config.Gateway[3] ) , IPAddress(config.Netmask[0],config.Netmask[1],config.Netmask[2],config.Netmask[3] ));
}
}
void WriteConfig()
{
Serial.println("Writing Config");
EEPROM.write(0,'C');
EEPROM.write(1,'F');
EEPROM.write(2,'G');
EEPROM.write(16,config.dhcp);
EEPROM.write(32,config.IP[0]);
EEPROM.write(33,config.IP[1]);
EEPROM.write(34,config.IP[2]);
EEPROM.write(35,config.IP[3]);
EEPROM.write(36,config.Netmask[0]);
EEPROM.write(37,config.Netmask[1]);
EEPROM.write(38,config.Netmask[2]);
EEPROM.write(39,config.Netmask[3]);
EEPROM.write(40,config.Gateway[0]);
EEPROM.write(41,config.Gateway[1]);
EEPROM.write(42,config.Gateway[2]);
EEPROM.write(43,config.Gateway[3]);
EEPROM.write(44,config.deviceIdentifier);
WriteStringToEEPROM(64,config.ssid);
WriteStringToEEPROM(96,config.password);
WriteStringToEEPROM(150,config.mqttServer);
EEPROM.commit();
}
boolean ReadConfig()
{
Serial.println("Reading Configuration");
if (EEPROM.read(0) == 'C' && EEPROM.read(1) == 'F' && EEPROM.read(2) == 'G' )
{
Serial.println("Configurarion Found!");
config.dhcp = EEPROM.read(16);
config.IP[0] = EEPROM.read(32);
config.IP[1] = EEPROM.read(33);
config.IP[2] = EEPROM.read(34);
config.IP[3] = EEPROM.read(35);
config.Netmask[0] = EEPROM.read(36);
config.Netmask[1] = EEPROM.read(37);
config.Netmask[2] = EEPROM.read(38);
config.Netmask[3] = EEPROM.read(39);
config.Gateway[0] = EEPROM.read(40);
config.Gateway[1] = EEPROM.read(41);
config.Gateway[2] = EEPROM.read(42);
config.Gateway[3] = EEPROM.read(43);
config.deviceIdentifier = EEPROM.read(44);
config.ssid = ReadStringFromEEPROM(64);
config.password = ReadStringFromEEPROM(96);
config.mqttServer = ReadStringFromEEPROM(150);
return true;
}
else
{
Serial.println("Configurarion NOT FOUND!!!!");
return false;
}
}
#endif