-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnet_config.cpp
More file actions
59 lines (50 loc) · 1.09 KB
/
net_config.cpp
File metadata and controls
59 lines (50 loc) · 1.09 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
#include "config.h"
#include <ETH.h>
#include <WiFi.h>
#include <Preferences.h>
Preferences prefs;
bool wifiFallback = false;
IPAddress currentIP;
void resetPreferences() {
prefs.begin("netcfg", false);
prefs.clear();
prefs.end();
}
IPAddress getSavedIP() {
prefs.begin("netcfg", true);
uint8_t ip[4];
if (prefs.getBytes("ip", ip, 4) == 4) {
prefs.end();
return IPAddress(ip[0], ip[1], ip[2], ip[3]);
}
prefs.end();
return DEFAULT_IP;
}
void saveIP(IPAddress ip) {
prefs.begin("netcfg", false);
uint8_t ipBytes[4] = {ip[0], ip[1], ip[2], ip[3]};
prefs.putBytes("ip", ipBytes, 4);
prefs.end();
}
void initNetwork() {
pinMode(RESET_PIN, INPUT_PULLUP);
if (digitalRead(RESET_PIN) == LOW) {
resetPreferences();
delay(1000);
ESP.restart();
}
IPAddress ip = getSavedIP();
currentIP = ip;
if (!ETH.config(ip, DEFAULT_GATEWAY, DEFAULT_SUBNET)) {
wifiFallback = true;
WiFi.softAP("BAS-Brick", "brick123");
currentIP = WiFi.softAPIP();
}
ETH.begin();
}
IPAddress getCurrentIP() {
return currentIP;
}
bool isUsingWiFi() {
return wifiFallback;
}