Refactor: Modularize Wi-Fi functionality into separate STA and AP components

Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
This commit is contained in:
2025-09-01 12:14:07 +09:00
parent 58879931b8
commit a0f5a1e372
9 changed files with 671 additions and 588 deletions

View File

@@ -8,16 +8,106 @@
#include "esp_netif_types.h"
#include "esp_wifi_types_generic.h"
/**
* @brief Initializes the Wi-Fi driver, network interfaces, and event handlers.
*/
void wifi_init(void);
/**
* @brief Converts a Wi-Fi authentication mode enum to its string representation.
* @param mode The Wi-Fi authentication mode.
* @return A string describing the authentication mode.
*/
const char* auth_mode_str(wifi_auth_mode_t mode);
/**
* @brief Converts a Wi-Fi disconnection reason enum to its string representation.
* @param reason The reason for disconnection.
* @return A string describing the reason.
*/
const char* wifi_reason_str(wifi_err_reason_t reason);
/**
* @brief Connects the device to the configured Wi-Fi AP in STA mode.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_connect(void);
/**
* @brief Disconnects the device from the current Wi-Fi AP in STA mode.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_disconnect(void);
void wifi_scan_aps(wifi_ap_record_t * *ap_records, uint16_t * count);
esp_err_t wifi_get_current_ap_info(wifi_ap_record_t * ap_info);
esp_err_t wifi_get_current_ip_info(esp_netif_ip_info_t * ip_info);
esp_err_t wifi_get_dns_info(esp_netif_dns_type_t type, esp_netif_dns_info_t* dns_info);
/**
* @brief Scans for available Wi-Fi access points.
* @param ap_records A pointer to store the found AP records.
* @param count A pointer to store the number of found APs.
*/
void wifi_scan_aps(wifi_ap_record_t **ap_records, uint16_t *count);
/**
* @brief Gets information about the currently connected access point.
* @param ap_info A pointer to a structure to store the AP information.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_get_current_ap_info(wifi_ap_record_t *ap_info);
/**
* @brief Gets the current IP information for the STA interface.
* @param ip_info A pointer to a structure to store the IP information.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_get_current_ip_info(esp_netif_ip_info_t *ip_info);
/**
* @brief Gets the DNS server information for the STA interface.
* @param type The type of DNS server (main, backup, fallback).
* @param dns_info A pointer to a structure to store the DNS information.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_get_dns_info(esp_netif_dns_type_t type, esp_netif_dns_info_t *dns_info);
/**
* @brief Configures the STA interface to use DHCP.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_use_dhcp(void);
/**
* @brief Configures the STA interface to use a static IP address.
* @param ip The static IP address.
* @param gw The gateway address.
* @param netmask The subnet mask.
* @param dns1 The primary DNS server.
* @param dns2 The secondary DNS server (optional).
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_use_static(const char* ip, const char* gw, const char* netmask, const char* dns1, const char* dns2);
/**
* @brief Switches the Wi-Fi operating mode (e.g., sta, apsta).
* @param mode The target Wi-Fi mode as a string ("sta" or "apsta").
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_switch_mode(const char* mode);
/**
* @brief Initializes the SNTP service for time synchronization.
*/
void initialize_sntp(void);
/**
* @brief Starts the SNTP time synchronization process.
*/
void sync_time();
#endif //WIFI_H
/**
* @brief Sets the SSID and password for the STA mode, saves them to NVS, and connects to the AP.
* @param ssid The SSID of the access point.
* @param password The password of the access point.
* @return ESP_OK on success, or an error code on failure.
*/
esp_err_t wifi_sta_set_ap(const char* ssid, const char* password);
#endif //WIFI_H