#include #include #ifdef BOARD_ESP8266 #include #endif #ifdef BOARD_ESP32 #include #endif #include "Static.h" #include "WiFiTask.h" WiFiTask::WiFiTask() : InputSource("WiFi"), m_lastStatus(WL_IDLE_STATUS) {} void WiFiTask::onStart() { Log.notice("Starting wifi..."); WiFi.mode(WIFI_STA); int n = WiFi.scanNetworks(); if (n == 0) { Log.notice("No wifi found"); } else { for(int i = 0; i < n; ++i) { Serial.print("WiFi: "); Serial.println(WiFi.SSID(i)); } } WiFi.mode(WIFI_STA); WiFi.begin("The Frequency", "thepasswordkenneth"); while(WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(1000); } } InputEvent WiFiTask::read() { uint8_t curStatus = WiFi.status(); if (m_lastStatus != curStatus) { m_lastStatus = curStatus; Log.verbose("WiFi Status: %d", curStatus); if (curStatus == WL_CONNECTED) { Log.notice("Connected!"); return InputEvent{InputEvent::NetworkStatus, true}; } else if (curStatus == WL_CONNECTION_LOST || curStatus == WL_DISCONNECTED) { Log.notice("Lost wifi connection!"); return InputEvent{InputEvent::NetworkStatus, false}; } } return InputEvent{}; } STATIC_ALLOC(WiFiTask);