Program Listing for File WiFi.h¶
↰ Return to documentation for file (components/Network/src/WiFi.h
)
#ifndef NETWORK_WIFI_H
#define NETWORK_WIFI_H
#include <cstdint>
#include <esp_err.h>
#include <esp_event.h>
#include <esp_wifi.h>
#include "WiFiEventHandler.h"
namespace network {
class WiFiDefaultEventHandler : public WiFiEventHandler
{
public:
WiFiDefaultEventHandler();
virtual esp_err_t staStart();
virtual esp_err_t staStop();
};
class WiFi
{
public:
static WiFi& getInstance()
{
static WiFi instance;
return instance;
}
WiFi(WiFi const&) = delete; // Copy construct
WiFi(WiFi&&) = delete; // Move construct
WiFi& operator=(WiFi const&) = delete; // Copy assign
WiFi& operator=(WiFi&&) = delete; // Move assign
esp_err_t init();
esp_err_t setMode(wifi_mode_t mode);
esp_err_t getMode(wifi_mode_t& mode);
esp_err_t setApConfig(wifi_config_t& ap_config);
esp_err_t getApConfig(wifi_config_t& ap_config);
esp_err_t setStaConfig(wifi_config_t& sta_config);
esp_err_t getStaConfig(wifi_config_t& sta_config);
bool isAp();
bool isSta();
esp_err_t start();
esp_err_t stop();
esp_err_t connect();
void setEventHandler(std::unique_ptr<WiFiEventHandler>&& event_handler);
private:
WiFi();
static void eventHandler(void *event_handler_arg,
esp_event_base_t event_base,
std::int32_t event_id,
void* event_data);
WiFiDefaultEventHandler m_event_handler;
};
} // namespace network
#endif // NETWORK_WIFI_H