cleaning & linked boot button to new factory reset impl

This commit is contained in:
2017-07-09 18:10:48 +02:00
parent 5c8eab387e
commit d5bd53b78a
3 changed files with 19 additions and 10 deletions
+8 -6
View File
@@ -11,6 +11,8 @@
#include <esp8266.h> #include <esp8266.h>
#include "ansi_parser_callbacks.h" #include "ansi_parser_callbacks.h"
#include "wifimgr.h"
#include "persist.h"
#define BTNGPIO 0 #define BTNGPIO 0
@@ -74,16 +76,16 @@ static void ICACHE_FLASH_ATTR resetBtnTimerCb(void *arg) {
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD); PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK); PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK);
if (resetCnt>=10) { //5 secs pressed - FR if (resetCnt>=10) { //5 secs pressed - FR (timer is at 500 ms)
info("BOOT-button triggered FACTORY RESET!"); info("BOOT-button triggered FACTORY RESET!");
apars_handle_OSC_FactoryReset(); persist_restore_default();
} }
else if (resetCnt>=2) { //1 sec pressed else if (resetCnt>=2) { //1 sec pressed
wifi_station_disconnect(); info("BOOT-button triggered reset to AP mode...");
wifi_set_opmode(STATIONAP_MODE); //reset to AP+STA mode
info("BOOT-button triggered reset to AP mode, restarting...");
system_restart(); wificonf->opmode = STATIONAP_MODE;
persist_store();
wifimgr_apply_settings();
} }
resetCnt=0; resetCnt=0;
} }
+1 -1
View File
@@ -91,7 +91,7 @@ void ICACHE_FLASH_ATTR user_init(void)
// Prevent WiFi starting and connecting by default // Prevent WiFi starting and connecting by default
// let wifi manager handle it // let wifi manager handle it
wifi_station_set_auto_connect(false); wifi_station_set_auto_connect(false);
wifi_set_opmode(NULL_MODE); wifi_set_opmode(NULL_MODE); // save to flash if changed - this might avoid the current spike on startup?
printf("\r\n"); printf("\r\n");
banner("====== ESP8266 Remote Terminal ======"); banner("====== ESP8266 Remote Terminal ======");
+10 -3
View File
@@ -40,7 +40,7 @@ wifimgr_restore_defaults(void)
strcpy((char *) wificonf->sta_hostname, (char *) wificonf->ap_ssid); // use the same value for sta_hostname as AP name strcpy((char *) wificonf->sta_hostname, (char *) wificonf->ap_ssid); // use the same value for sta_hostname as AP name
wificonf->sta_dhcp_enable = true; wificonf->sta_dhcp_enable = true;
IP4_ADDR(&wificonf->sta_ip.ip, 192, 168, 0, (mac[5]==1?2:mac[5]));// avoid being the same as "default gw" IP4_ADDR(&wificonf->sta_ip.ip, 192, 168, 0, (mac[5]==1?2:mac[5])); // avoid being the same as "default gw"
IP4_ADDR(&wificonf->sta_ip.netmask, 255, 255, 255, 0); IP4_ADDR(&wificonf->sta_ip.netmask, 255, 255, 255, 0);
IP4_ADDR(&wificonf->sta_ip.gw, 192, 168, 0, 1); IP4_ADDR(&wificonf->sta_ip.gw, 192, 168, 0, 1);
} }
@@ -159,8 +159,15 @@ wifimgr_apply_settings(void)
info("[WiFi] Initializing..."); info("[WiFi] Initializing...");
// Force wifi cycle // Force wifi cycle
wifi_set_opmode(NULL_MODE); // Disconnect - may not be needed?
wifi_set_opmode(wificonf->opmode); WIFI_MODE opmode = wifi_get_opmode();
if (opmode == STATIONAP_MODE || opmode == STATION_MODE) {
wifi_station_disconnect();
}
// This should hopefully deinit everything
wifi_set_opmode_current(NULL_MODE);
wifi_set_opmode_current(wificonf->opmode);
// Configure the client // Configure the client
if (wificonf->opmode == STATIONAP_MODE || wificonf->opmode == STATION_MODE) { if (wificonf->opmode == STATIONAP_MODE || wificonf->opmode == STATION_MODE) {