Files
renderbug-cpp/src/platform/arduino/WiFiTask.cpp

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);