43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
#include <Input.h>
|
|
#include <ArduinoLog.h>
|
|
|
|
#ifdef ESP8266
|
|
#include <ESP8266WiFi.h>
|
|
#endif
|
|
#ifdef ESP32
|
|
#include <WiFi.h>
|
|
#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);
|
|
WiFi.begin("The Frequency", "thepasswordkenneth");
|
|
}
|
|
|
|
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! IP address is %s", WiFi.localIP().toString().c_str());
|
|
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);
|
|
STATIC_TASK(WiFiTask);
|