/* * Copyright (C) 2013 -2014 Espressif System * * * Adapted from BSD licensed esp_iot_rtos_sdk v0.9.9 */ #ifndef __ESP_STA_H__ #define __ESP_STA_H__ #include "queue.h" #ifdef __cplusplus extern "C" { #endif struct sdk_station_config { uint8_t ssid[32]; /* Null terminated string */ uint8_t password[64]; /* Null terminated string */ uint8_t bssid_set; /* One if bssid is used, otherwise zero. */ uint8_t bssid[6]; /* The BSSID bytes */ }; bool sdk_wifi_station_get_config(struct sdk_station_config *config); bool sdk_wifi_station_set_config(struct sdk_station_config *config); bool sdk_wifi_station_connect(void); bool sdk_wifi_station_disconnect(void); struct sdk_scan_config { uint8_t *ssid; uint8_t *bssid; uint8_t channel; uint8_t show_hidden; }; struct sdk_bss_info { STAILQ_ENTRY(sdk_bss_info) next; uint8_t bssid[6]; uint8_t ssid[32]; uint8_t channel; int8_t rssi; AUTH_MODE authmode; uint8_t is_hidden; }; /* NB: in esp_iot_rtos_sdk this enum is just called STATUS and has no SCAN_ prefixes */ typedef enum { SCAN_OK = 0, SCAN_FAIL, SCAN_PENDING, SCAN_BUSY, SCAN_CANCEL, } sdk_scan_status_t; typedef void (* sdk_scan_done_cb_t)(void *arg, sdk_scan_status_t status); bool sdk_wifi_station_scan(struct sdk_scan_config *config, sdk_scan_done_cb_t cb); uint8_t sdk_wifi_station_get_auto_connect(void); bool sdk_wifi_station_set_auto_connect(uint8_t set); enum { STATION_IDLE = 0, STATION_CONNECTING, STATION_WRONG_PASSWORD, STATION_NO_AP_FOUND, STATION_CONNECT_FAIL, STATION_GOT_IP }; uint8_t sdk_wifi_station_get_connect_status(void); #ifdef __cplusplus } #endif #endif