-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathWiFi.ino
54 lines (51 loc) · 1.84 KB
/
WiFi.ino
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
//wifi event handler
boolean wifiConnected = false;
void WiFiEvent(WiFiEvent_t event) {
switch (event) {
case SYSTEM_EVENT_STA_GOT_IP:
//When connected set
wifiConnected = true;
break;
// case SYSTEM_EVENT_STA_DISCONNECTED:
// Serial.println("WiFi lost connection");
// connected = false;
// break;
default: break;
}
}
bool connectWiFi() {
Serial.print(F("connecting to WiFi - timeout="));
Serial.println(config.wifiTimeout);
if (strcmp(config.staticIPenable, "t") == 0) {//if static
Serial.println("Setting up Static IP");
getFourNumbersForIP(config.staticIP);
Serial.printf("%i.%i.%i.%i\n", oneIP, twoIP, threeIP, fourIP);
IPAddress ip(oneIP, twoIP, threeIP, fourIP);
getFourNumbersForIP(config.staticGatewayAddress);
Serial.printf("%i.%i.%i.%i\n", oneIP, twoIP, threeIP, fourIP);
IPAddress gateway(oneIP, twoIP, threeIP, fourIP);
getFourNumbersForIP(config.staticSubnetAddress);
Serial.printf("%i.%i.%i.%i\n", oneIP, twoIP, threeIP, fourIP);
IPAddress subnet(oneIP, twoIP, threeIP, fourIP);
getFourNumbersForIP(config.staticPrimaryDNSAddress);
Serial.printf("%i.%i.%i.%i\n", oneIP, twoIP, threeIP, fourIP);
IPAddress primaryDNS(oneIP, twoIP, threeIP, fourIP);
getFourNumbersForIP(config.staticSecondaryDNSAddress);
Serial.printf("%i.%i.%i.%i\n", oneIP, twoIP, threeIP, fourIP);
IPAddress secondaryDNS(oneIP, twoIP, threeIP, fourIP);
WiFi.config(ip, gateway, subnet, primaryDNS, secondaryDNS);
}
Serial.printf("%s\n", config.ssid);
wifiConnected = false;
WiFi.onEvent(WiFiEvent);
unsigned long wifiStart = millis();
WiFi.begin(config.ssid, config.pw);
while (!wifiConnected) {
if (millis() - wifiStart > config.wifiTimeout) {
killPower();
return false;
}
}
Serial.println("Connected");
return true;
}