HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
EspWifi Class Reference

Advanced ESP32 implementation of unified BaseWifi with ESP-IDF v5.5+ features. More...

#include <EspWifi.h>

Inheritance diagram for EspWifi:
[legend]
Collaboration diagram for EspWifi:
[legend]

Public Member Functions

 EspWifi (const EspWifiAdvancedConfig *advanced_config=nullptr)
 Constructor with optional advanced configuration.
 
virtual ~EspWifi ()
 Destructor - ensures proper cleanup.
 
hf_wifi_err_t Initialize (hf_wifi_mode_t mode) noexcept override
 Initialize the WiFi subsystem.
 
hf_wifi_err_t Deinitialize () noexcept override
 Deinitialize the WiFi subsystem.
 
bool IsInitialized () const noexcept override
 Check if WiFi is initialized.
 
hf_wifi_err_t SetMode (hf_wifi_mode_t mode) noexcept override
 Set WiFi operating mode.
 
hf_wifi_mode_t GetMode () const noexcept override
 Get current WiFi operating mode.
 
hf_wifi_err_t ConfigureStation (const hf_wifi_station_config_t &config) noexcept override
 Configure station parameters.
 
hf_wifi_err_t Connect (uint32_t timeout_ms=0) noexcept override
 Connect to a WiFi network (station mode)
 
hf_wifi_err_t Disconnect () noexcept override
 Disconnect from WiFi network.
 
bool IsConnected () const noexcept override
 Check if connected to a network.
 
int8_t GetRssi () const noexcept override
 Get signal strength (RSSI)
 
hf_wifi_err_t GetIpInfo (hf_wifi_ip_info_t &ip_info) const noexcept override
 Get current IP information.
 
hf_wifi_err_t ConfigureAccessPoint (const hf_wifi_ap_config_t &config) noexcept override
 Configure Access Point parameters.
 
hf_wifi_err_t StartAccessPoint () noexcept override
 Start Access Point.
 
hf_wifi_err_t StopAccessPoint () noexcept override
 Stop Access Point.
 
bool IsAccessPointActive () const noexcept override
 Check if Access Point is running.
 
int GetConnectedStationCount () const noexcept override
 Get number of connected stations.
 
hf_wifi_err_t StartScan (bool show_hidden=false, bool passive=false, uint32_t max_scan_time_ms=0) noexcept override
 Start network scan.
 
hf_wifi_err_t GetScanResults (std::vector< hf_wifi_network_info_t > &networks, uint16_t max_networks=0) noexcept override
 Get scan results.
 
bool IsScanning () const noexcept override
 Check if scan is in progress.
 
hf_wifi_state_t GetState () const noexcept override
 Get current WiFi state.
 
std::string GetConnectedSsid () const noexcept override
 Get connected network SSID.
 
hf_wifi_err_t GetConnectedBssid (uint8_t bssid[6]) const noexcept override
 Get connected network BSSID.
 
hf_wifi_err_t SetPowerSave (hf_wifi_power_save_t mode) noexcept override
 Set power save mode.
 
hf_wifi_power_save_t GetPowerSave () const noexcept override
 Get current power save mode.
 
hf_wifi_err_t RegisterEventCallback (hf_wifi_event_callback_t callback) noexcept override
 Register event callback.
 
hf_wifi_err_t UnregisterEventCallback () noexcept override
 Unregister event callback.
 
hf_wifi_err_t GetMacAddress (uint8_t mac[6], uint8_t interface=0) const noexcept override
 Get MAC address.
 
hf_wifi_err_t SetMacAddress (const uint8_t mac[6], uint8_t interface=0) noexcept override
 Set MAC address.
 
uint8_t GetChannel () const noexcept override
 Get WiFi channel.
 
hf_wifi_err_t SetChannel (uint8_t channel) noexcept override
 Set WiFi channel.
 
hf_wifi_err_t SetAdvancedConfig (const EspWifiAdvancedConfig &config)
 Set advanced ESP32-specific configuration.
 
hf_wifi_err_t GetAdvancedConfig (EspWifiAdvancedConfig &config) const
 Get current advanced configuration.
 
hf_wifi_err_t EnableWpa3Transition (bool enable)
 Enable WPA3 transition mode (WPA2/WPA3 mixed)
 
hf_wifi_err_t ConfigureRoaming (bool enable_11k, bool enable_11r, bool enable_11v)
 Configure 802.11k/r/v roaming features.
 
hf_wifi_err_t ConfigureEnterprise (const std::string &username, const std::string &password, const std::string &ca_cert="", const std::string &client_cert="", const std::string &client_key="")
 Configure WPA2/WPA3 Enterprise authentication.
 
hf_wifi_err_t StartSmartConfig (smartconfig_type_t type=SC_TYPE_ESPTOUCH, uint32_t timeout_ms=60000)
 Start SmartConfig provisioning.
 
hf_wifi_err_t StopSmartConfig ()
 Stop SmartConfig provisioning.
 
hf_wifi_err_t InitMesh (const uint8_t mesh_id[6], uint8_t max_layer=6, uint16_t max_connection=10)
 Initialize ESP-MESH networking.
 
hf_wifi_err_t StartMeshRoot ()
 Start ESP-MESH as root node.
 
hf_wifi_err_t StartMeshChild ()
 Start ESP-MESH as child node.
 
hf_wifi_err_t StopMesh ()
 Stop ESP-MESH networking.
 
hf_wifi_err_t GetStatistics (wifi_pkt_rx_ctrl_t &stats) const
 Get WiFi statistics.
 
hf_wifi_err_t SetTxPower (uint8_t power)
 Set WiFi TX power.
 
int8_t GetTxPower () const
 Get WiFi TX power.
 
hf_wifi_err_t SetBandwidth (wifi_bandwidth_t bandwidth)
 Set WiFi channel bandwidth.
 
wifi_bandwidth_t GetBandwidth () const
 Get WiFi channel bandwidth.
 
hf_wifi_err_t PerformCalibration ()
 Perform WiFi calibration.
 
hf_wifi_err_t GetConnectionInfo (wifi_ap_record_t &info) const
 Get detailed connection information.
 
- Public Member Functions inherited from BaseWifi
virtual ~BaseWifi () noexcept=default
 Virtual destructor for proper cleanup of derived classes.
 

Private Member Functions

hf_wifi_err_t InitNetif ()
 Initialize ESP-IDF network interface.
 
hf_wifi_err_t DeinitNetif ()
 Deinitialize ESP-IDF network interface.
 
hf_wifi_err_t RegisterEventHandlers ()
 Register ESP-IDF event handlers.
 
hf_wifi_err_t UnregisterEventHandlers ()
 Unregister ESP-IDF event handlers.
 
wifi_mode_t ConvertToEspMode (hf_wifi_mode_t mode) const
 Convert HardFOC WiFi mode to ESP-IDF mode.
 
hf_wifi_mode_t ConvertFromEspMode (wifi_mode_t mode) const
 Convert ESP-IDF WiFi mode to HardFOC mode.
 
wifi_auth_mode_t ConvertToEspAuthMode (hf_wifi_security_t security) const
 Convert HardFOC security to ESP-IDF auth mode.
 
hf_wifi_security_t ConvertFromEspAuthMode (wifi_auth_mode_t auth_mode) const
 Convert ESP-IDF auth mode to HardFOC security.
 
hf_wifi_err_t ConvertEspError (esp_err_t esp_err) const
 Convert ESP-IDF error to HardFOC error.
 
void handleWifiEvent (int32_t event_id, void *event_data)
 Handle WiFi events internally.
 
void handleIpEvent (int32_t event_id, void *event_data)
 Handle IP events internally.
 
void handleSmartconfigEvent (int32_t event_id, void *event_data)
 Handle SmartConfig events internally.
 
void NotifyEventCallback (hf_wifi_event_t event, void *event_data)
 Notify user event callback.
 
void UpdateState (hf_wifi_state_t new_state)
 Update internal state.
 
hf_wifi_err_t ApplyAdvancedConfig ()
 Apply advanced configuration settings.
 
bool ValidateConfig (const hf_wifi_station_config_t &config) const
 Validate configuration parameters.
 
bool ValidateApConfig (const hf_wifi_ap_config_t &config) const
 Validate AP configuration parameters.
 
 EspWifi (const EspWifi &)=delete
 
EspWifioperator= (const EspWifi &)=delete
 

Static Private Member Functions

static void wifiEventHandler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
 Static WiFi event handler for ESP-IDF.
 
static void ipEventHandler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
 Static IP event handler for ESP-IDF.
 
static void smartconfigEventHandler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
 Static SmartConfig event handler for ESP-IDF.
 

Private Attributes

PlatformMutex m_mutex
 
std::atomic< bool > m_initialized
 
std::atomic< bool > m_enabled
 
std::atomic< hf_wifi_mode_tm_mode
 
std::atomic< hf_wifi_state_tm_state
 
hf_wifi_station_config_t m_sta_config
 
hf_wifi_ap_config_t m_ap_config
 
EspWifiAdvancedConfig m_advanced_config
 
esp_netif_t * m_sta_netif
 
esp_netif_t * m_ap_netif
 
EventGroupHandle_t m_event_group
 
esp_event_handler_instance_t m_wifi_event_handler
 
esp_event_handler_instance_t m_ip_event_handler
 
hf_wifi_event_callback_t m_event_callback
 
hf_wifi_scan_callback_t m_scan_callback
 
void * m_event_user_data
 
void * m_scan_user_data
 
std::queue< std::pair< hf_wifi_event_t, void * > > m_event_queue
 
PlatformMutex m_event_mutex
 
std::vector< hf_wifi_network_info_tm_scan_results
 
std::atomic< bool > m_scanning
 
PlatformMutex m_scan_mutex
 
std::atomic< bool > m_connected
 
std::atomic< bool > m_ap_active
 
std::atomic< int8_t > m_rssi
 
std::atomic< uint8_t > m_channel
 
std::atomic< bool > m_smartconfig_active
 
std::atomic< bool > m_mesh_active
 

Additional Inherited Members

- Static Public Member Functions inherited from BaseWifi
static std::string_view GetErrorString (hf_wifi_err_t error)
 Get error description string.
 
- Protected Member Functions inherited from BaseWifi
 BaseWifi ()=default
 Protected constructor - only derived classes can instantiate.
 
 BaseWifi (const BaseWifi &)=delete
 Copy constructor - deleted to prevent copying.
 
BaseWifioperator= (const BaseWifi &)=delete
 Assignment operator - deleted to prevent copying.
 

Detailed Description

Advanced ESP32 implementation of unified BaseWifi with ESP-IDF v5.5+ features.

This class provides a comprehensive implementation of BaseWifi for ESP32 microcontrollers with support for both basic and advanced features including:

Basic Features:

  • Station and Access Point modes
  • Network scanning and connection management
  • WPA/WPA2/WPA3 security support
  • Power management and optimization
  • Thread-safe state management

Advanced Features (ESP-IDF v5.5+):

  • WPA3 Personal and Enterprise security
  • 802.11k/r/v roaming standards
  • Protected Management Frames (PMF)
  • A-MPDU aggregation for performance
  • ESP-MESH networking
  • SmartConfig and WPS provisioning
  • Enterprise authentication (EAP-TLS, PEAP, etc.)
  • Advanced power save modes
  • Fast BSS transition and roaming

Performance Optimizations:

  • Hardware-accelerated cryptography
  • DMA-based data transfers
  • Optimized buffer management
  • Low-latency event handling
  • Memory pool management

Thread Safety:

  • All public methods are thread-safe
  • Internal state protection with mutexes
  • Atomic operations for status flags
  • Event queue synchronization

Constructor & Destructor Documentation

◆ EspWifi() [1/2]

EspWifi::EspWifi ( const EspWifiAdvancedConfig * advanced_config = nullptr)
explicit

Constructor with optional advanced configuration.

Parameters
advanced_configAdvanced ESP32-specific configuration (optional)

◆ ~EspWifi()

EspWifi::~EspWifi ( )
virtual

Destructor - ensures proper cleanup.

◆ EspWifi() [2/2]

EspWifi::EspWifi ( const EspWifi & )
privatedelete

Member Function Documentation

◆ ApplyAdvancedConfig()

hf_wifi_err_t EspWifi::ApplyAdvancedConfig ( )
private

Apply advanced configuration settings.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ ConfigureAccessPoint()

hf_wifi_err_t EspWifi::ConfigureAccessPoint ( const hf_wifi_ap_config_t & config)
overridevirtualnoexcept

Configure Access Point parameters.

Parameters
configAP configuration
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ ConfigureEnterprise()

hf_wifi_err_t EspWifi::ConfigureEnterprise ( const std::string & username,
const std::string & password,
const std::string & ca_cert = "",
const std::string & client_cert = "",
const std::string & client_key = "" )

Configure WPA2/WPA3 Enterprise authentication.

Parameters
usernameEnterprise username
passwordEnterprise password
ca_certCA certificate (optional)
client_certClient certificate (optional)
client_keyClient private key (optional)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ ConfigureRoaming()

hf_wifi_err_t EspWifi::ConfigureRoaming ( bool enable_11k,
bool enable_11r,
bool enable_11v )

Configure 802.11k/r/v roaming features.

Parameters
enable_11kEnable 802.11k Radio Resource Management
enable_11rEnable 802.11r Fast BSS Transition
enable_11vEnable 802.11v BSS Transition Management
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ ConfigureStation()

hf_wifi_err_t EspWifi::ConfigureStation ( const hf_wifi_station_config_t & config)
overridevirtualnoexcept

Configure station parameters.

Parameters
configStation configuration
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ Connect()

hf_wifi_err_t EspWifi::Connect ( uint32_t timeout_ms = 0)
overridevirtualnoexcept

Connect to a WiFi network (station mode)

Parameters
timeout_msConnection timeout in milliseconds (0 for default)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ ConvertEspError()

hf_wifi_err_t EspWifi::ConvertEspError ( esp_err_t esp_err) const
private

Convert ESP-IDF error to HardFOC error.

Parameters
esp_errESP-IDF error code
Returns
HardFOC WiFi error code

◆ ConvertFromEspAuthMode()

hf_wifi_security_t EspWifi::ConvertFromEspAuthMode ( wifi_auth_mode_t auth_mode) const
private

Convert ESP-IDF auth mode to HardFOC security.

Parameters
auth_modeESP-IDF auth mode
Returns
HardFOC security type

◆ ConvertFromEspMode()

hf_wifi_mode_t EspWifi::ConvertFromEspMode ( wifi_mode_t mode) const
private

Convert ESP-IDF WiFi mode to HardFOC mode.

Parameters
modeESP-IDF WiFi mode
Returns
HardFOC WiFi mode

◆ ConvertToEspAuthMode()

wifi_auth_mode_t EspWifi::ConvertToEspAuthMode ( hf_wifi_security_t security) const
private

Convert HardFOC security to ESP-IDF auth mode.

Parameters
securityHardFOC security type
Returns
ESP-IDF auth mode

◆ ConvertToEspMode()

wifi_mode_t EspWifi::ConvertToEspMode ( hf_wifi_mode_t mode) const
private

Convert HardFOC WiFi mode to ESP-IDF mode.

Parameters
modeHardFOC WiFi mode
Returns
ESP-IDF WiFi mode

◆ Deinitialize()

hf_wifi_err_t EspWifi::Deinitialize ( )
overridevirtualnoexcept

Deinitialize the WiFi subsystem.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ DeinitNetif()

hf_wifi_err_t EspWifi::DeinitNetif ( )
private

Deinitialize ESP-IDF network interface.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ Disconnect()

hf_wifi_err_t EspWifi::Disconnect ( )
overridevirtualnoexcept

Disconnect from WiFi network.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ EnableWpa3Transition()

hf_wifi_err_t EspWifi::EnableWpa3Transition ( bool enable)

Enable WPA3 transition mode (WPA2/WPA3 mixed)

Parameters
enableTrue to enable transition mode
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ GetAdvancedConfig()

hf_wifi_err_t EspWifi::GetAdvancedConfig ( EspWifiAdvancedConfig & config) const

Get current advanced configuration.

Parameters
configReference to store current configuration
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ GetBandwidth()

wifi_bandwidth_t EspWifi::GetBandwidth ( ) const

Get WiFi channel bandwidth.

Returns
Current channel bandwidth

◆ GetChannel()

uint8_t EspWifi::GetChannel ( ) const
overridevirtualnoexcept

Get WiFi channel.

Returns
Current channel, or 0 on error

Implements BaseWifi.

◆ GetConnectedBssid()

hf_wifi_err_t EspWifi::GetConnectedBssid ( uint8_t bssid[6]) const
overridevirtualnoexcept

Get connected network BSSID.

Parameters
bssidBuffer to store BSSID (6 bytes)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ GetConnectedSsid()

std::string EspWifi::GetConnectedSsid ( ) const
overridevirtualnoexcept

Get connected network SSID.

Returns
SSID string, empty if not connected

Implements BaseWifi.

◆ GetConnectedStationCount()

int EspWifi::GetConnectedStationCount ( ) const
overridevirtualnoexcept

Get number of connected stations.

Returns
Number of connected stations, or -1 on error

Implements BaseWifi.

◆ GetConnectionInfo()

hf_wifi_err_t EspWifi::GetConnectionInfo ( wifi_ap_record_t & info) const

Get detailed connection information.

Parameters
infoReference to store connection information
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ GetIpInfo()

hf_wifi_err_t EspWifi::GetIpInfo ( hf_wifi_ip_info_t & ip_info) const
overridevirtualnoexcept

Get current IP information.

Parameters
ip_infoReference to store IP information
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ GetMacAddress()

hf_wifi_err_t EspWifi::GetMacAddress ( uint8_t mac[6],
uint8_t interface = 0 ) const
overridevirtualnoexcept

Get MAC address.

Parameters
macBuffer to store MAC address (6 bytes)
interfaceWiFi interface (0 for station, 1 for AP)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ GetMode()

hf_wifi_mode_t EspWifi::GetMode ( ) const
overridevirtualnoexcept

Get current WiFi operating mode.

Returns
Current WiFi mode

Implements BaseWifi.

◆ GetPowerSave()

hf_wifi_power_save_t EspWifi::GetPowerSave ( ) const
overridevirtualnoexcept

Get current power save mode.

Returns
Current power save mode

Implements BaseWifi.

◆ GetRssi()

int8_t EspWifi::GetRssi ( ) const
overridevirtualnoexcept

Get signal strength (RSSI)

Returns
Signal strength in dBm, or INT8_MIN on error

Implements BaseWifi.

◆ GetScanResults()

hf_wifi_err_t EspWifi::GetScanResults ( std::vector< hf_wifi_network_info_t > & networks,
uint16_t max_networks = 0 )
overridevirtualnoexcept

Get scan results.

Parameters
networksVector to store found networks
max_networksMaximum number of networks to return (0 for all)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ GetState()

hf_wifi_state_t EspWifi::GetState ( ) const
overridevirtualnoexcept

Get current WiFi state.

Returns
Current WiFi state

Implements BaseWifi.

◆ GetStatistics()

hf_wifi_err_t EspWifi::GetStatistics ( wifi_pkt_rx_ctrl_t & stats) const

Get WiFi statistics.

Parameters
statsReference to store WiFi statistics
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ GetTxPower()

int8_t EspWifi::GetTxPower ( ) const

Get WiFi TX power.

Returns
Current TX power in dBm, or -1 on error

◆ handleIpEvent()

void EspWifi::handleIpEvent ( int32_t event_id,
void * event_data )
private

Handle IP events internally.

Parameters
event_idESP-IDF event ID
event_dataEvent data

◆ handleSmartconfigEvent()

void EspWifi::handleSmartconfigEvent ( int32_t event_id,
void * event_data )
private

Handle SmartConfig events internally.

Parameters
event_idESP-IDF event ID
event_dataEvent data

◆ handleWifiEvent()

void EspWifi::handleWifiEvent ( int32_t event_id,
void * event_data )
private

Handle WiFi events internally.

Parameters
event_idESP-IDF event ID
event_dataEvent data

◆ Initialize()

hf_wifi_err_t EspWifi::Initialize ( hf_wifi_mode_t mode)
overridevirtualnoexcept

Initialize the WiFi subsystem.

Parameters
modeWiFi operating mode
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ InitMesh()

hf_wifi_err_t EspWifi::InitMesh ( const uint8_t mesh_id[6],
uint8_t max_layer = 6,
uint16_t max_connection = 10 )

Initialize ESP-MESH networking.

Parameters
mesh_idMesh network ID
max_layerMaximum mesh layers
max_connectionMaximum connections per node
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ InitNetif()

hf_wifi_err_t EspWifi::InitNetif ( )
private

Initialize ESP-IDF network interface.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ ipEventHandler()

void EspWifi::ipEventHandler ( void * arg,
esp_event_base_t event_base,
int32_t event_id,
void * event_data )
staticprivate

Static IP event handler for ESP-IDF.

Parameters
argUser argument (EspWifi instance)
event_baseEvent base
event_idEvent ID
event_dataEvent data

◆ IsAccessPointActive()

bool EspWifi::IsAccessPointActive ( ) const
overridevirtualnoexcept

Check if Access Point is running.

Returns
true if AP is active, false otherwise

Implements BaseWifi.

◆ IsConnected()

bool EspWifi::IsConnected ( ) const
overridevirtualnoexcept

Check if connected to a network.

Returns
true if connected, false otherwise

Implements BaseWifi.

◆ IsInitialized()

bool EspWifi::IsInitialized ( ) const
overridevirtualnoexcept

Check if WiFi is initialized.

Returns
true if initialized, false otherwise

Implements BaseWifi.

◆ IsScanning()

bool EspWifi::IsScanning ( ) const
overridevirtualnoexcept

Check if scan is in progress.

Returns
true if scanning, false otherwise

Implements BaseWifi.

◆ NotifyEventCallback()

void EspWifi::NotifyEventCallback ( hf_wifi_event_t event,
void * event_data )
private

Notify user event callback.

Parameters
eventHardFOC WiFi event
event_dataEvent data

◆ operator=()

EspWifi & EspWifi::operator= ( const EspWifi & )
privatedelete

◆ PerformCalibration()

hf_wifi_err_t EspWifi::PerformCalibration ( )

Perform WiFi calibration.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ RegisterEventCallback()

hf_wifi_err_t EspWifi::RegisterEventCallback ( hf_wifi_event_callback_t callback)
overridevirtualnoexcept

Register event callback.

Parameters
callbackEvent callback function
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ RegisterEventHandlers()

hf_wifi_err_t EspWifi::RegisterEventHandlers ( )
private

Register ESP-IDF event handlers.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ SetAdvancedConfig()

hf_wifi_err_t EspWifi::SetAdvancedConfig ( const EspWifiAdvancedConfig & config)

Set advanced ESP32-specific configuration.

Parameters
configAdvanced configuration structure
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ SetBandwidth()

hf_wifi_err_t EspWifi::SetBandwidth ( wifi_bandwidth_t bandwidth)

Set WiFi channel bandwidth.

Parameters
bandwidthChannel bandwidth
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ SetChannel()

hf_wifi_err_t EspWifi::SetChannel ( uint8_t channel)
overridevirtualnoexcept

Set WiFi channel.

Parameters
channelChannel number (1-14)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ SetMacAddress()

hf_wifi_err_t EspWifi::SetMacAddress ( const uint8_t mac[6],
uint8_t interface = 0 )
overridevirtualnoexcept

Set MAC address.

Parameters
macMAC address to set (6 bytes)
interfaceWiFi interface (0 for station, 1 for AP)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ SetMode()

hf_wifi_err_t EspWifi::SetMode ( hf_wifi_mode_t mode)
overridevirtualnoexcept

Set WiFi operating mode.

Parameters
modeWiFi operating mode
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ SetPowerSave()

hf_wifi_err_t EspWifi::SetPowerSave ( hf_wifi_power_save_t mode)
overridevirtualnoexcept

Set power save mode.

Parameters
modePower save mode
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ SetTxPower()

hf_wifi_err_t EspWifi::SetTxPower ( uint8_t power)

Set WiFi TX power.

Parameters
powerTX power in dBm (0-20)
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ smartconfigEventHandler()

void EspWifi::smartconfigEventHandler ( void * arg,
esp_event_base_t event_base,
int32_t event_id,
void * event_data )
staticprivate

Static SmartConfig event handler for ESP-IDF.

Parameters
argUser argument (EspWifi instance)
event_baseEvent base
event_idEvent ID
event_dataEvent data

◆ StartAccessPoint()

hf_wifi_err_t EspWifi::StartAccessPoint ( )
overridevirtualnoexcept

Start Access Point.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ StartMeshChild()

hf_wifi_err_t EspWifi::StartMeshChild ( )

Start ESP-MESH as child node.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ StartMeshRoot()

hf_wifi_err_t EspWifi::StartMeshRoot ( )

Start ESP-MESH as root node.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ StartScan()

hf_wifi_err_t EspWifi::StartScan ( bool show_hidden = false,
bool passive = false,
uint32_t max_scan_time_ms = 0 )
overridevirtualnoexcept

Start network scan.

Parameters
show_hiddenInclude hidden networks in scan
passiveUse passive scanning
max_scan_time_msMaximum scan time per channel
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ StartSmartConfig()

hf_wifi_err_t EspWifi::StartSmartConfig ( smartconfig_type_t type = SC_TYPE_ESPTOUCH,
uint32_t timeout_ms = 60000 )

Start SmartConfig provisioning.

Parameters
typeSmartConfig type
timeout_msProvisioning timeout in milliseconds
Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ StopAccessPoint()

hf_wifi_err_t EspWifi::StopAccessPoint ( )
overridevirtualnoexcept

Stop Access Point.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ StopMesh()

hf_wifi_err_t EspWifi::StopMesh ( )

Stop ESP-MESH networking.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ StopSmartConfig()

hf_wifi_err_t EspWifi::StopSmartConfig ( )

Stop SmartConfig provisioning.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ UnregisterEventCallback()

hf_wifi_err_t EspWifi::UnregisterEventCallback ( )
overridevirtualnoexcept

Unregister event callback.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

Implements BaseWifi.

◆ UnregisterEventHandlers()

hf_wifi_err_t EspWifi::UnregisterEventHandlers ( )
private

Unregister ESP-IDF event handlers.

Returns
hf_wifi_err_t::WIFI_SUCCESS on success, error code otherwise

◆ UpdateState()

void EspWifi::UpdateState ( hf_wifi_state_t new_state)
private

Update internal state.

Parameters
new_stateNew WiFi state

◆ ValidateApConfig()

bool EspWifi::ValidateApConfig ( const hf_wifi_ap_config_t & config) const
private

Validate AP configuration parameters.

Parameters
configAP configuration to validate
Returns
true if valid, false otherwise

◆ ValidateConfig()

bool EspWifi::ValidateConfig ( const hf_wifi_station_config_t & config) const
private

Validate configuration parameters.

Parameters
configConfiguration to validate
Returns
true if valid, false otherwise

◆ wifiEventHandler()

void EspWifi::wifiEventHandler ( void * arg,
esp_event_base_t event_base,
int32_t event_id,
void * event_data )
staticprivate

Static WiFi event handler for ESP-IDF.

Parameters
argUser argument (EspWifi instance)
event_baseEvent base
event_idEvent ID
event_dataEvent data

Member Data Documentation

◆ m_advanced_config

EspWifiAdvancedConfig EspWifi::m_advanced_config
private

Advanced configuration

◆ m_ap_active

std::atomic<bool> EspWifi::m_ap_active
private

AP active state

◆ m_ap_config

hf_wifi_ap_config_t EspWifi::m_ap_config
private

AP configuration

◆ m_ap_netif

esp_netif_t* EspWifi::m_ap_netif
private

AP network interface

◆ m_channel

std::atomic<uint8_t> EspWifi::m_channel
private

Current channel

◆ m_connected

std::atomic<bool> EspWifi::m_connected
private

Connection state

◆ m_enabled

std::atomic<bool> EspWifi::m_enabled
private

WiFi enabled state

◆ m_event_callback

hf_wifi_event_callback_t EspWifi::m_event_callback
private

User event callback

◆ m_event_group

EventGroupHandle_t EspWifi::m_event_group
private

FreeRTOS event group for WiFi events

◆ m_event_mutex

PlatformMutex EspWifi::m_event_mutex
mutableprivate

Event queue mutex

◆ m_event_queue

std::queue<std::pair<hf_wifi_event_t, void*> > EspWifi::m_event_queue
private

Event queue

◆ m_event_user_data

void* EspWifi::m_event_user_data
private

User data for event callback

◆ m_initialized

std::atomic<bool> EspWifi::m_initialized
private

Initialization state

◆ m_ip_event_handler

esp_event_handler_instance_t EspWifi::m_ip_event_handler
private

IP event handler

◆ m_mesh_active

std::atomic<bool> EspWifi::m_mesh_active
private

Mesh active

◆ m_mode

std::atomic<hf_wifi_mode_t> EspWifi::m_mode
private

Current WiFi mode

◆ m_mutex

PlatformMutex EspWifi::m_mutex
mutableprivate

Main synchronization mutex

◆ m_rssi

std::atomic<int8_t> EspWifi::m_rssi
private

Current RSSI

◆ m_scan_callback

hf_wifi_scan_callback_t EspWifi::m_scan_callback
private

User scan callback

◆ m_scan_mutex

PlatformMutex EspWifi::m_scan_mutex
mutableprivate

Scan results mutex

◆ m_scan_results

std::vector<hf_wifi_network_info_t> EspWifi::m_scan_results
private

Last scan results

◆ m_scan_user_data

void* EspWifi::m_scan_user_data
private

User data for scan callback

◆ m_scanning

std::atomic<bool> EspWifi::m_scanning
private

Scanning state

◆ m_smartconfig_active

std::atomic<bool> EspWifi::m_smartconfig_active
private

SmartConfig active

◆ m_sta_config

hf_wifi_station_config_t EspWifi::m_sta_config
private

Station configuration

◆ m_sta_netif

esp_netif_t* EspWifi::m_sta_netif
private

Station network interface

◆ m_state

std::atomic<hf_wifi_state_t> EspWifi::m_state
private

Current WiFi state

◆ m_wifi_event_handler

esp_event_handler_instance_t EspWifi::m_wifi_event_handler
private

WiFi event handler


The documentation for this class was generated from the following files: