LoRa_APRS_iGate/src/TaskWifi.cpp

47 lines
1 KiB
C++
Raw Normal View History

#include <WiFi.h>
#include <logger.h>
#include "project_configuration.h"
#include "TaskWifi.h"
2021-01-04 23:10:23 +01:00
#include "Task.h"
WifiTask::WifiTask()
2021-01-06 00:21:27 +01:00
: Task(TASK_WIFI), _oldWifiStatus(WL_IDLE_STATUS)
{
}
WifiTask::~WifiTask()
{
}
2021-01-04 23:10:23 +01:00
bool WifiTask::setup(std::shared_ptr<Configuration> config, std::shared_ptr<BoardConfig> boardConfig)
{
//WiFi.onEvent(WiFiEvent);
WiFi.setHostname(config->callsign.c_str());
_wiFiMulti = std::shared_ptr<WiFiMulti>(new WiFiMulti());;
for(Configuration::Wifi::AP ap : config->wifi.APs)
{
logPrintD("Looking for AP: ");
logPrintlnD(ap.SSID);
_wiFiMulti->addAP(ap.SSID.c_str(), ap.password.c_str());
}
return true;
}
bool WifiTask::loop(std::shared_ptr<Configuration> config)
{
const uint8_t wifi_status = _wiFiMulti->run();
if(wifi_status != WL_CONNECTED)
{
logPrintlnE("WiFi not connected!");
2021-01-06 00:21:27 +01:00
_oldWifiStatus = wifi_status;
return false;
}
2021-01-06 00:21:27 +01:00
else if(wifi_status != _oldWifiStatus)
{
logPrintD("IP address: ");
logPrintlnD(WiFi.localIP().toString());
_oldWifiStatus = wifi_status;
}
return true;
}