diff options
author | 2018-02-15 10:59:34 +0200 | |
---|---|---|
committer | 2018-02-15 10:59:34 +0200 | |
commit | 64d6165f21664ec9bd73853a2fe631cd08a06925 (patch) | |
tree | 94afeace8bcae0002249ffb595c3bffd538be2bd /src/tempmodule/main.ino | |
parent | 94b1a01f13b23b4dbc3885f5619a76b09603645a (diff) | |
download | coffeetemp-64d6165f21664ec9bd73853a2fe631cd08a06925.tar.gz coffeetemp-64d6165f21664ec9bd73853a2fe631cd08a06925.tar.bz2 coffeetemp-64d6165f21664ec9bd73853a2fe631cd08a06925.zip |
tempmodule: allow interrupting a WiFi connect attempt.
Diffstat (limited to 'src/tempmodule/main.ino')
-rw-r--r-- | src/tempmodule/main.ino | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/tempmodule/main.ino b/src/tempmodule/main.ino index d5f6758..83c3d6f 100644 --- a/src/tempmodule/main.ino +++ b/src/tempmodule/main.ino @@ -44,7 +44,7 @@ static void sleep(void); static void udp_init_packet(IPAddress ip, const int port); static void udp_push(const void * const data, const size_t size); static int udp_flush(void); -static void wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin); +static int wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin); static void wifi_disconnect(void); static void blink_led(const int pin, const int ontime, const int offtime); static void discover_client(void); @@ -72,9 +72,10 @@ void loop(void) udp_init_packet(ip, port); if (wifidesired && !wifistate) { - wifi_connect(ssid, password, 1, iled); - Udp.begin(port); - discover_client(); + if (!wifi_connect(ssid, password, 1, iled)) { + Udp.begin(port); + discover_client(); + } } if (!wifidesired && wifistate) { @@ -130,7 +131,7 @@ static int udp_flush(void) return Udp.endPacket(); } -static void wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin) +static int wifi_connect(const char * const ssid, const char * const password, const char doblink, const int ledpin) { wifiled_toggle(); @@ -143,9 +144,15 @@ static void wifi_connect(const char * const ssid, const char * const password, c } else { delay (500); } + /* in case the wifi off interrupt gets triggered while trying to connect */ + if (!wifidesired) { + wifi_disconnect(); + return 1; + } } while (WiFi.status() != WL_CONNECTED); wifistate = 1; + return 0; } static void wifi_disconnect(void) |