ESP32/components/wifi_controller/wifi_controller.h

41 lines
1.0 KiB
C

#pragma once
#include "esp_err.h"
#include "esp_wifi.h"
#include <stdbool.h> // Added
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
WIFI_CTL_MODE_STA,
WIFI_CTL_MODE_MONITOR
} wifi_ctl_mode_t;
void wifi_ctl_init(void);
void wifi_ctl_param_clear(void);
// --- Parameter Management (Set/Get/Save/Read) ---
void wifi_ctl_param_set_monitor_channel(uint8_t channel);
uint8_t wifi_ctl_param_get_monitor_channel(void);
bool wifi_ctl_param_save(void); // Returns true if NVS updated
void wifi_ctl_param_reload(void);
bool wifi_ctl_param_is_unsaved(void); // Dirty Check
// --- Actions ---
// Update: channel_override=0 uses Staged config
esp_err_t wifi_ctl_switch_to_monitor(uint8_t channel_override, wifi_bandwidth_t bandwidth);
esp_err_t wifi_ctl_switch_to_sta(wifi_band_mode_t band_mode);
void wifi_ctl_auto_monitor_start(uint8_t channel);
// --- Getters ---
wifi_ctl_mode_t wifi_ctl_get_mode(void);
uint8_t wifi_ctl_get_monitor_channel(void);
uint32_t wifi_ctl_get_monitor_frame_count(void);
#ifdef __cplusplus
}
#endif