diff --git a/src/AmsConfiguration.cpp b/src/AmsConfiguration.cpp index b10916d4..5d8ec11a 100644 --- a/src/AmsConfiguration.cpp +++ b/src/AmsConfiguration.cpp @@ -236,7 +236,7 @@ bool AmsConfiguration::getDebugConfig(DebugConfig& config) { bool AmsConfiguration::setDebugConfig(DebugConfig& config) { if(!config.serial && !config.telnet) - config.level = 5; // Force error level when debug is disabled + config.level = 4; // Force warning level when debug is disabled EEPROM.begin(EEPROM_SIZE); EEPROM.put(CONFIG_DEBUG_START, config); bool ret = EEPROM.commit(); diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 1480a154..771450ad 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -212,13 +212,8 @@ void setup() { Serial.begin(115200); } + Debug.setSerialEnabled(true); DebugConfig debug; - if(config.getDebugConfig(debug) && (debug.serial || debug.telnet)) { - Debug.setSerialEnabled(debug.serial); - } - #if DEBUG_MODE - Debug.setSerialEnabled(true); - #endif delay(1); float vcc = hw.getVcc(); @@ -416,9 +411,8 @@ void loop() { Debug.setPassword(web.password); } DebugConfig debug; - if(config.getDebugConfig(debug) && (debug.serial || debug.telnet)) { - Debug.begin(wifi.hostname, (uint8_t) debug.level); - Debug.setSerialEnabled(debug.serial); + if(config.getDebugConfig(debug)) { + Debug.begin(wifi.hostname, debug.serial || debug.telnet ? (uint8_t) debug.level : RemoteDebug::WARNING); // I don't know why, but ESP8266 stops working after a while if ERROR level is set if(!debug.telnet) { Debug.stop(); } diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp index bb81e95c..60a67ed4 100644 --- a/src/web/AmsWebServer.cpp +++ b/src/web/AmsWebServer.cpp @@ -1283,11 +1283,13 @@ void AmsWebServer::handleSave() { if(server.hasArg("debugConfig") && server.arg("debugConfig") == "true") { printD("Received Debug config"); DebugConfig debug; + config->getDebugConfig(debug); + bool active = debug.serial || debug.telnet; + debug.telnet = server.hasArg("debugTelnet") && server.arg("debugTelnet") == "true"; debug.serial = server.hasArg("debugSerial") && server.arg("debugSerial") == "true"; debug.level = server.arg("debugLevel").toInt(); - debugger->stop(); if(debug.telnet || debug.serial) { if(webConfig.security > 0) { debugger->setPassword(webConfig.password); @@ -1302,8 +1304,8 @@ void AmsWebServer::handleSave() { debugger->stop(); } } - } else { - debugger->stop(); + } else if(active) { + performRestart = true; } config->setDebugConfig(debug); } @@ -1350,7 +1352,7 @@ void AmsWebServer::handleSave() { //if (debugger->isActive(RemoteDebug::DEBUG)) config->print(debugger); if (config->save()) { printI("Successfully saved."); - if(config->isWifiChanged()) { + if(config->isWifiChanged() || performRestart) { performRestart = true; server.sendHeader("Location","/restart-wait"); server.send(303); diff --git a/web/debugging.html b/web/debugging.html index ac858968..3e7311a8 100644 --- a/web/debugging.html +++ b/web/debugging.html @@ -25,7 +25,6 @@ -