#pragma once #include "esp_err.h" #include "esp_wifi.h" #include #ifdef __cplusplus extern "C" { #endif typedef enum { WIFI_CTL_MODE_STA, WIFI_CTL_MODE_MONITOR } wifi_ctl_mode_t; void wifi_ctl_init(void); // --- Parameter Management --- 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); void wifi_ctl_param_reload(void); bool wifi_ctl_param_is_unsaved(void); void wifi_ctl_param_clear(void); // --- Actions --- 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