MeterLogger
|
#include <esp8266.h>
#include <lwip/ip.h>
#include <lwip/udp.h>
#include <lwip/tcp_impl.h>
#include <netif/etharp.h>
#include <lwip/netif.h>
#include <lwip/lwip_napt.h>
#include <lwip/dns.h>
#include <lwip/app/dhcpserver.h>
#include <lwip/opt.h>
#include <espconn.h>
#include "wifi.h"
#include "mqtt_msg.h"
#include "mqtt_utils.h"
#include "debug.h"
#include "user_config.h"
#include "config.h"
#include "led.h"
#include "tinyprintf.h"
Go to the source code of this file.
Macros | |
#define | WIFI_SCAN_INTERVAL 5000 |
#define | WIFI_SCAN_TIMEOUT 60000 |
#define | RSSI_CHECK_INTERVAL 10000 |
Variables | |
static os_timer_t | wifi_scan_timer |
static os_timer_t | wifi_scan_timeout_timer |
static os_timer_t | wifi_get_rssi_timer |
WifiCallback | wifi_cb = NULL |
wifi_scan_result_event_cb_t | wifi_scan_result_cb = NULL |
volatile uint8_t * | config_ssid |
volatile uint8_t * | config_pass |
static uint8_t | wifi_status = STATION_IDLE |
static uint8_t | wifi_event = EVENT_STAMODE_DISCONNECTED |
bool | wifi_present = false |
volatile bool | wifi_fallback_present = false |
bool | wifi_fallback_last_present = false |
volatile bool | wifi_scan_runnning = false |
volatile sint8_t | rssi = 31 |
volatile bool | get_rssi_running = false |
volatile bool | wifi_default_ok = false |
volatile bool | my_auto_connect = true |
static netif_input_fn | orig_input_ap |
static netif_linkoutput_fn | orig_output_ap |
static ip_addr_t | sta_network_addr |
static ip_addr_t | sta_network_mask |
static ip_addr_t | ap_network_addr |
static ip_addr_t | dns_ip |
#define RSSI_CHECK_INTERVAL 10000 |
Definition at line 35 of file wifi.c.
Referenced by wifi_connect(), and wifi_default().
#define WIFI_SCAN_INTERVAL 5000 |
Definition at line 33 of file wifi.c.
Referenced by wifi_start_scan().
#define WIFI_SCAN_TIMEOUT 60000 |
Definition at line 34 of file wifi.c.
Referenced by wifi_scan_timer_func().
bool ICACHE_FLASH_ATTR acl_check_packet | ( | struct pbuf * | p | ) |
Definition at line 115 of file wifi.c.
References dns_ip, ICACHE_FLASH_ATTR, IP2STR, IP_PROTO_ICMP, IP_PROTO_TCP, IP_PROTO_UDP, IPADDR_BROADCAST, IPH_PROTO, pbuf::len, ntohs, os_printf, pbuf::payload, sta_network_addr, sta_network_mask, wifi_get_rssi_timer_func(), wifi_scan_timeout_timer_func(), and wifi_scan_timer_func().
Referenced by my_input_ap().
ICACHE_FLASH_ATTR err_t my_input_ap | ( | struct pbuf * | p, |
struct netif * | inp | ||
) |
Definition at line 67 of file wifi.c.
References acl_check_packet(), ERR_ABRT, orig_input_ap, and pbuf_free().
Referenced by wifi_handle_event_cb().
ICACHE_FLASH_ATTR err_t my_output_ap | ( | struct netif * | outp, |
struct pbuf * | p | ||
) |
Definition at line 80 of file wifi.c.
References orig_output_ap.
Referenced by wifi_handle_event_cb().
|
static |
Definition at line 87 of file wifi.c.
References ap_network_addr, netif::input, ip4_addr4, netif::ip_addr, netif::linkoutput, netif_list, netif::next, NULL, orig_input_ap, orig_output_ap, and os_printf.
Referenced by wifi_handle_event_cb().
void ICACHE_FLASH_ATTR set_my_auto_connect | ( | bool | enabled | ) |
Definition at line 591 of file wifi.c.
References my_auto_connect.
Referenced by watchdog_timer_func(), and wifi_reconnect_timer_func().
void ICACHE_FLASH_ATTR wifi_connect | ( | uint8_t * | ssid, |
uint8_t * | pass, | ||
WifiCallback | cb | ||
) |
Definition at line 437 of file wifi.c.
References syscfg_t::ap_enabled, config_pass, config_ssid, INFO, my_auto_connect, NULL, NULL_MODE, os_memset, os_timer_arm, os_timer_disarm, os_timer_func_t, os_timer_setfn, station_config::password, RSSI_CHECK_INTERVAL, station_config::ssid, STATION_MODE, STATIONAP_MODE, sys_cfg, tfp_snprintf(), wifi_cb, wifi_get_rssi_timer, wifi_get_rssi_timer_func(), wifi_handle_event_cb(), wifi_set_event_handler_cb(), wifi_set_opmode_current(), wifi_start_scan(), wifi_station_connect(), wifi_station_disconnect(), and wifi_station_set_config().
void ICACHE_FLASH_ATTR wifi_default | ( | ) |
Definition at line 379 of file wifi.c.
References syscfg_t::ap_enabled, config_pass, config_ssid, NULL, os_memset, os_printf, os_timer_arm, os_timer_disarm, os_timer_func_t, os_timer_setfn, station_config::password, RSSI_CHECK_INTERVAL, station_config::ssid, STATION_MODE, STATIONAP_MODE, sys_cfg, tfp_snprintf(), wifi_get_rssi_timer, wifi_get_rssi_timer_func(), wifi_set_opmode_current(), wifi_station_connect(), wifi_station_disconnect(), wifi_station_get_config(), and wifi_station_set_config_current().
Referenced by wifi_scan_done_cb().
void ICACHE_FLASH_ATTR wifi_fallback | ( | ) |
Definition at line 411 of file wifi.c.
References syscfg_t::ap_enabled, os_memset, os_printf, station_config::password, station_config::ssid, STA_FALLBACK_PASS, STA_FALLBACK_SSID, STATION_MODE, STATIONAP_MODE, sys_cfg, tfp_snprintf(), wifi_set_opmode_current(), wifi_station_connect(), wifi_station_disconnect(), wifi_station_get_config(), and wifi_station_set_config_current().
Referenced by wifi_scan_done_cb().
bool ICACHE_FLASH_ATTR wifi_fallback_is_present | ( | ) |
sint8_t ICACHE_FLASH_ATTR wifi_get_rssi | ( | ) |
Definition at line 559 of file wifi.c.
References get_rssi_running, and rssi.
Referenced by wifi_scan_timer_func().
|
static |
Definition at line 271 of file wifi.c.
References get_rssi_running, rssi, wifi_default_ok, and wifi_station_get_rssi().
Referenced by acl_check_packet(), wifi_connect(), and wifi_default().
bool ICACHE_FLASH_ATTR wifi_get_status | ( | ) |
void wifi_handle_event_cb | ( | System_Event_t * | evt | ) |
Definition at line 203 of file wifi.c.
References Event_SoftAPMode_StaConnected_t::aid, Event_Info_u::disconnected, _esp_event::event, _esp_event::event_info, EVENT_SOFTAPMODE_STACONNECTED, EVENT_STAMODE_CONNECTED, EVENT_STAMODE_DISCONNECTED, EVENT_STAMODE_GOT_IP, Event_Info_u::got_ip, Event_StaMode_Got_IP_t::ip, Event_SoftAPMode_StaConnected_t::mac, MAC2STR, MACSTR, Event_StaMode_Got_IP_t::mask, my_auto_connect, my_input_ap(), my_output_ap(), os_memset, os_printf, os_sprintf, os_strncmp, patch_netif_ap(), Event_StaMode_Disconnected_t::reason, station_config::ssid, Event_StaMode_Disconnected_t::ssid, Event_Info_u::sta_connected, sta_network_addr, sta_network_mask, syscfg_t::sta_ssid, sys_cfg, wifi_cb, wifi_default_ok, wifi_event, wifi_softap_ip_config(), wifi_station_connect(), wifi_station_get_config(), wifi_station_get_connect_status(), wifi_station_set_auto_connect(), and wifi_status.
Referenced by wifi_connect().
void ICACHE_FLASH_ATTR wifi_scan_done_cb | ( | void * | arg, |
STATUS | status | ||
) |
Definition at line 321 of file wifi.c.
References led_pattern_a(), led_stop_pattern(), NULL, OK, os_printf, os_strncmp, os_timer_disarm, bss_info::ssid, STA_FALLBACK_SSID, syscfg_t::sta_ssid, STATION_GOT_IP, sys_cfg, wifi_default(), wifi_fallback(), wifi_fallback_last_present, wifi_fallback_present, wifi_present, wifi_scan_result_cb, wifi_scan_result_cb_unregister(), wifi_scan_runnning, wifi_scan_timeout_timer, wifi_start_scan(), and wifi_station_get_connect_status().
Referenced by wifi_scan_timer_func().
bool ICACHE_FLASH_ATTR wifi_scan_is_running | ( | ) |
Definition at line 583 of file wifi.c.
References wifi_scan_runnning.
Referenced by wifi_reconnect_timer_func().
void wifi_scan_result_cb_register | ( | wifi_scan_result_event_cb_t | cb | ) |
void wifi_scan_result_cb_unregister | ( | wifi_scan_result_event_cb_t | cb | ) |
Definition at line 599 of file wifi.c.
References NULL, and wifi_scan_result_cb.
Referenced by wifi_scan_done_cb().
|
static |
Definition at line 309 of file wifi.c.
References os_printf, os_timer_disarm, wifi_scan_runnning, wifi_scan_timeout_timer, and wifi_start_scan().
Referenced by acl_check_packet(), and wifi_scan_timer_func().
|
static |
Definition at line 279 of file wifi.c.
References NULL, os_printf, os_timer_arm, os_timer_disarm, os_timer_func_t, os_timer_setfn, wifi_get_rssi(), wifi_scan_done_cb(), wifi_scan_runnning, WIFI_SCAN_TIMEOUT, wifi_scan_timeout_timer, wifi_scan_timeout_timer_func(), wifi_start_scan(), and wifi_station_scan().
Referenced by acl_check_packet(), and wifi_start_scan().
void ICACHE_FLASH_ATTR wifi_softap_config | ( | uint8_t * | ssid, |
uint8_t * | pass, | ||
uint8_t | authmode | ||
) |
Definition at line 483 of file wifi.c.
References softap_config::authmode, softap_config::beacon_interval, softap_config::channel, softap_config::max_connection, memset, softap_config::password, softap_config::ssid, softap_config::ssid_hidden, softap_config::ssid_len, tfp_snprintf(), wifi_softap_get_config(), and wifi_softap_set_config().
void ICACHE_FLASH_ATTR wifi_softap_ip_config | ( | void | ) |
Definition at line 502 of file wifi.c.
References AP_NETWORK, ap_network_addr, dhcps_set_DNS(), dns_ip, dhcps_lease::end_ip, espconn_dns_setserver(), ip_info::gw, ip_info::ip, IP2STR, IP4_ADDR, ip4_addr3, ip4_addr4, ip_addr_cmp, IPSTR, netif_list, ip_info::netmask, netif::next, NULL, netif::num, os_printf, sta_network_addr, dhcps_lease::start_ip, UTILS_StrToIP(), wifi_set_ip_info(), wifi_softap_dhcps_start(), wifi_softap_dhcps_stop(), and wifi_softap_set_dhcps_lease().
Referenced by wifi_handle_event_cb().
void ICACHE_FLASH_ATTR wifi_start_scan | ( | ) |
Definition at line 570 of file wifi.c.
References NULL, os_timer_arm, os_timer_disarm, os_timer_func_t, os_timer_setfn, WIFI_SCAN_INTERVAL, wifi_scan_timer, and wifi_scan_timer_func().
Referenced by wifi_connect(), wifi_reconnect_timer_func(), wifi_scan_done_cb(), wifi_scan_timeout_timer_func(), and wifi_scan_timer_func().
void ICACHE_FLASH_ATTR wifi_stop_scan | ( | ) |
Definition at line 577 of file wifi.c.
References os_timer_disarm, wifi_scan_runnning, and wifi_scan_timer.
Referenced by watchdog_timer_func().
|
static |
Definition at line 64 of file wifi.c.
Referenced by patch_netif_ap(), and wifi_softap_ip_config().
volatile uint8_t* config_pass |
Definition at line 45 of file wifi.c.
Referenced by wifi_connect(), and wifi_default().
volatile uint8_t* config_ssid |
Definition at line 44 of file wifi.c.
Referenced by wifi_connect(), and wifi_default().
|
static |
Definition at line 65 of file wifi.c.
Referenced by acl_check_packet(), dhcps_set_DNS(), and wifi_softap_ip_config().
volatile bool get_rssi_running = false |
Definition at line 54 of file wifi.c.
Referenced by wifi_get_rssi(), and wifi_get_rssi_timer_func().
volatile bool my_auto_connect = true |
Definition at line 56 of file wifi.c.
Referenced by set_my_auto_connect(), wifi_connect(), and wifi_handle_event_cb().
|
static |
Definition at line 59 of file wifi.c.
Referenced by my_input_ap(), and patch_netif_ap().
|
static |
Definition at line 60 of file wifi.c.
Referenced by my_output_ap(), and patch_netif_ap().
volatile sint8_t rssi = 31 |
Definition at line 53 of file wifi.c.
Referenced by wifi_get_rssi(), and wifi_get_rssi_timer_func().
|
static |
Definition at line 62 of file wifi.c.
Referenced by acl_check_packet(), wifi_handle_event_cb(), and wifi_softap_ip_config().
|
static |
Definition at line 63 of file wifi.c.
Referenced by acl_check_packet(), and wifi_handle_event_cb().
WifiCallback wifi_cb = NULL |
Definition at line 41 of file wifi.c.
Referenced by wifi_connect(), and wifi_handle_event_cb().
volatile bool wifi_default_ok = false |
Definition at line 55 of file wifi.c.
Referenced by wifi_get_rssi_timer_func(), wifi_get_status(), and wifi_handle_event_cb().
|
static |
Definition at line 47 of file wifi.c.
Referenced by wifi_handle_event_cb().
bool wifi_fallback_last_present = false |
Definition at line 50 of file wifi.c.
Referenced by wifi_scan_done_cb().
volatile bool wifi_fallback_present = false |
Definition at line 49 of file wifi.c.
Referenced by wifi_fallback_is_present(), and wifi_scan_done_cb().
|
static |
Definition at line 39 of file wifi.c.
Referenced by wifi_connect(), and wifi_default().
bool wifi_present = false |
Definition at line 48 of file wifi.c.
Referenced by wifi_scan_done_cb().
wifi_scan_result_event_cb_t wifi_scan_result_cb = NULL |
Definition at line 42 of file wifi.c.
Referenced by wifi_scan_done_cb(), wifi_scan_result_cb_register(), and wifi_scan_result_cb_unregister().
volatile bool wifi_scan_runnning = false |
Definition at line 51 of file wifi.c.
Referenced by wifi_scan_done_cb(), wifi_scan_is_running(), wifi_scan_timeout_timer_func(), wifi_scan_timer_func(), and wifi_stop_scan().
|
static |
Definition at line 38 of file wifi.c.
Referenced by wifi_scan_done_cb(), wifi_scan_timeout_timer_func(), and wifi_scan_timer_func().
|
static |
Definition at line 37 of file wifi.c.
Referenced by wifi_start_scan(), and wifi_stop_scan().
|
static |
Definition at line 46 of file wifi.c.
Referenced by wifi_handle_event_cb().