123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 |
- #ifndef WIFI_MANAGER_H_INCLUDED
- #define WIFI_MANAGER_H_INCLUDED
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "esp_system.h"
- #include "esp_wifi.h"
- #include "esp_wifi_types.h"
- #include "squeezelite-ota.h"
- #include "cJSON.h"
- #define MAX_SSID_SIZE 32
- #define MAX_PASSWORD_SIZE 64
- #define MAX_COMMAND_LINE_SIZE 201
- #define MAX_AP_NUM 15
- #define WIFI_MANAGER_MAX_RETRY CONFIG_WIFI_MANAGER_MAX_RETRY
- #define WIFI_MANAGER_TASK_PRIORITY CONFIG_WIFI_MANAGER_TASK_PRIORITY
- #define AP_AUTHMODE WIFI_AUTH_WPA2_PSK
- #define DEFAULT_AP_SSID_HIDDEN 0
- #define DEFAULT_AP_SSID CONFIG_DEFAULT_AP_SSID
- #define DEFAULT_AP_PASSWORD CONFIG_DEFAULT_AP_PASSWORD
- #define DEFAULT_AP_BANDWIDTH WIFI_BW_HT20
- #define DEFAULT_AP_CHANNEL CONFIG_DEFAULT_AP_CHANNEL
- #define DEFAULT_AP_IP CONFIG_DEFAULT_AP_IP
- #define DEFAULT_AP_GATEWAY CONFIG_DEFAULT_AP_GATEWAY
- #define DEFAULT_AP_NETMASK CONFIG_DEFAULT_AP_NETMASK
- #define DEFAULT_AP_MAX_CONNECTIONS CONFIG_DEFAULT_AP_MAX_CONNECTIONS
- #define DEFAULT_AP_BEACON_INTERVAL CONFIG_DEFAULT_AP_BEACON_INTERVAL
- #define DEFAULT_STA_ONLY 1
- #define DEFAULT_STA_POWER_SAVE WIFI_PS_MIN_MODEM
- #define JSON_ONE_APP_SIZE 99
- typedef enum message_code_t {
- NONE = 0,
- ORDER_START_HTTP_SERVER = 1,
- ORDER_STOP_HTTP_SERVER = 2,
- ORDER_START_DNS_SERVICE = 3,
- ORDER_STOP_DNS_SERVICE = 4,
- ORDER_START_WIFI_SCAN = 5,
- ORDER_LOAD_AND_RESTORE_STA = 6,
- ORDER_CONNECT_STA = 7,
- ORDER_DISCONNECT_STA = 8,
- ORDER_START_AP = 9,
- ORDER_START_HTTP = 10,
- ORDER_START_DNS_HIJACK = 11,
- EVENT_STA_DISCONNECTED = 12,
- EVENT_SCAN_DONE = 13,
- EVENT_STA_GOT_IP = 14,
- ORDER_RESTART_OTA = 15,
- ORDER_RESTART_RECOVERY = 16,
- ORDER_RESTART_OTA_URL = 17,
- ORDER_RESTART = 18,
- MESSAGE_CODE_COUNT = 19
- }message_code_t;
- typedef enum reboot_type_t{
- OTA,
- RECOVERY,
- RESTART,
- } reboot_type_t;
- void wifi_manager_reboot(reboot_type_t rtype);
- void wifi_manager_reboot_ota(char * url);
- typedef enum update_reason_code_t {
- UPDATE_CONNECTION_OK = 0,
- UPDATE_FAILED_ATTEMPT = 1,
- UPDATE_USER_DISCONNECT = 2,
- UPDATE_LOST_CONNECTION = 3
- }update_reason_code_t;
- typedef enum connection_request_made_by_code_t{
- CONNECTION_REQUEST_NONE = 0,
- CONNECTION_REQUEST_USER = 1,
- CONNECTION_REQUEST_AUTO_RECONNECT = 2,
- CONNECTION_REQUEST_RESTORE_CONNECTION = 3,
- CONNECTION_REQUEST_MAX = 0x7fffffff
- }connection_request_made_by_code_t;
- typedef struct{
- message_code_t code;
- void *param;
- } queue_message;
- void wifi_manager_start();
- void wifi_manager_destroy();
- void filter_unique( wifi_ap_record_t * aplist, uint16_t * ap_num);
- void wifi_manager( void * pvParameters );
- char* wifi_manager_alloc_get_ap_list_json();
- char* wifi_manager_alloc_get_ip_info_json();
- cJSON * wifi_manager_clear_ap_list_json(cJSON **old);
- esp_err_t wifi_manager_save_sta_config();
- bool wifi_manager_fetch_wifi_sta_config();
- wifi_config_t* wifi_manager_get_wifi_sta_config();
- esp_err_t wifi_manager_event_handler(void *ctx, system_event_t *event);
- void wifi_manager_register_handlers();
- void wifi_manager_connect_async();
- void wifi_manager_scan_async();
- void wifi_manager_disconnect_async();
- bool wifi_manager_lock_json_buffer(TickType_t xTicksToWait);
- void wifi_manager_unlock_json_buffer();
- void wifi_manager_generate_ip_info_json(update_reason_code_t update_reason_code);
- cJSON * wifi_manager_clear_ip_info_json(cJSON **old);
- cJSON * wifi_manager_get_new_json(cJSON **old);
- void wifi_manager_generate_access_points_json(cJSON ** ap_list);
- void wifi_manager_clear_access_points_json();
- void wifi_manager_initialise_mdns();
- bool wifi_manager_lock_sta_ip_string(TickType_t xTicksToWait);
- void wifi_manager_unlock_sta_ip_string();
- char* wifi_manager_get_sta_ip_string();
- void wifi_manager_safe_update_sta_ip_string(struct ip4_addr * ip4);
- void wifi_manager_set_callback(message_code_t message_code, void (*func_ptr)(void*) );
- BaseType_t wifi_manager_send_message(message_code_t code, void *param);
- BaseType_t wifi_manager_send_message_to_front(message_code_t code, void *param);
- #ifdef __cplusplus
- }
- #endif
- #endif
|