|
Modbus Vault v1.0
|
Implementation of the wifi manager. More...
#include "wifi_manager.h"#include "esp_event.h"#include "esp_log.h"#include "esp_netif.h"#include "esp_timer.h"#include <string.h>Macros | |
| #define | WIFI_MANAGE_MAXIMUM_RECONNECT_TIMEOUT_US (60000000UL) |
| #define | WIFI_MANAGE_MINIMUM_RECONNECT_TIMEOUT_US (1000000) |
Functions | |
| static void | wifi_manager_set_state_helper (const wifi_state_t state) |
| Set current WiFi state. | |
| static void | wifi_event_handler (void *args_void_ptr, esp_event_base_t event_base, int32_t event_id, void *event_data_void_ptr) |
| WiFi event handler. | |
| static void | reconnect_timer_callback (void *arg_void_ptr) |
| Callback to reconnect on one-shot timer. | |
| esp_err_t | wifi_manager_init (wifi_config_t *wifi_config_ptr) |
| Initialize Wi-Fi manager. | |
| wifi_state_t | wifi_manager_get_state (void) |
| Get Wi-Fi current connection state. | |
| void | wifi_manager_trigger_reconnect (void) |
| Trigger Wi-Fi re-connect. | |
| void | wifi_manager_deinit (void) |
| De-Initialize Wi-Fi manager. | |
Variables | |
| static const char * | TAG = "WIFI_MANAGER" |
| static SemaphoreHandle_t | state_lock = NULL |
| static wifi_state_t | wifi_manager_state = WIFI_STATE_IDLE |
| static esp_timer_handle_t | reconnect_timer = NULL |
| static uint64_t | reconnect_timeout_us = (1000000) |
| static esp_event_handler_instance_t | wifi_event_ctx = NULL |
| static esp_event_handler_instance_t | ip_event_ctx = NULL |
Implementation of the wifi manager.
| #define WIFI_MANAGE_MAXIMUM_RECONNECT_TIMEOUT_US (60000000UL) |
Maximum reconnect timeout in micro seconds
| #define WIFI_MANAGE_MINIMUM_RECONNECT_TIMEOUT_US (1000000) |
Minimum reconnect timeout in micro seconds \
|
static |
Callback to reconnect on one-shot timer.
| arg_void_ptr | Void pointer to callback argument |
|
static |
WiFi event handler.
| args_void_ptr | Void pointer to handler arguments |
| event_base | ESP event base |
| event_id | Event id |
| event_data_void_ptr | Void pointer to event data |
< Minimum reconnect timeout in micro seconds
| void wifi_manager_deinit | ( | void | ) |
De-Initialize Wi-Fi manager.
Stops and deletes timer and stops Wi-Fi then deinitialize Wi-Fi unregister events
| wifi_state_t wifi_manager_get_state | ( | void | ) |
Get Wi-Fi current connection state.
| esp_err_t wifi_manager_init | ( | wifi_config_t * | wifi_config_ptr | ) |
Initialize Wi-Fi manager.
Initialize different components needed by Wi-Fi and register events to manage Wi-Fi connection state and setup a one-shot timer to trigger on disconnect event
| wifi_config_ptr | Pointer to Wi-Fi configuration structure |
| ESP_OK | Initialize success |
| BLACKBOX_FAIL | Initialize fail |
| ESP_ERR_INVALID_ARG | Provided invalid argument(s) |
| ESP_ERR_NO_MEM | No available memory for resource allocation |
| any | Any error from down layers propagates upward |
|
static |
Set current WiFi state.
| state | WiFi state |
| void wifi_manager_trigger_reconnect | ( | void | ) |
Trigger Wi-Fi re-connect.
Trigger Wi-Fi re-connect using one-shot timer with an exponential back-off increment to avoid network congestion
< Maximum reconnect timeout in micro seconds
< Maximum reconnect timeout in micro seconds
|
static |
WiFi event handler instance
|
static |
WiFi Manager reconnect current timeout Minimum reconnect timeout in micro seconds
|
static |
WiFi Manager reconnect timer handle
|
static |
WiFi Manager state lock
|
static |
WiFi Manager TAG name
|
static |
WiFi event context instance
|
static |
WiFi Manager state