diff --git a/src/app.cpp b/src/app.cpp index 6350e990..bd5402e8 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -7,6 +7,8 @@ #include "app.h" #include "utils/sun.h" +#define WDT_TIMEOUT_SECONDS 8 // Watchdog Timeout 8s + //----------------------------------------------------------------------------- app::app() : ah::Scheduler {} {} @@ -18,6 +20,11 @@ void app::setup() { while (!Serial) yield(); + #if defined(ESP32) + esp_task_wdt_init(WDT_TIMEOUT_SECONDS, true); + esp_task_wdt_add(NULL); + #endif + resetSystem(); mSettings.setup(); @@ -30,6 +37,10 @@ void app::setup() { else DBGPRINTLN(F("false")); + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + if(mConfig->nrf.enabled) { mNrfRadio.setup(&mConfig->serial.debug, &mConfig->serial.privacyLog, &mConfig->serial.printWholeTrace, mConfig->nrf.pinIrq, mConfig->nrf.pinCe, mConfig->nrf.pinCs, mConfig->nrf.pinSclk, mConfig->nrf.pinMosi, mConfig->nrf.pinMiso); } @@ -50,6 +61,10 @@ void app::setup() { #endif #endif /* defined(ETHERNET) */ + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + mCommunication.setup(&mTimestamp, &mConfig->serial.debug, &mConfig->serial.privacyLog, &mConfig->serial.printWholeTrace, &mConfig->inst.gapMs); mCommunication.addPayloadListener(std::bind(&app::payloadEventListener, this, std::placeholders::_1, std::placeholders::_2)); #if defined(ENABLE_MQTT) @@ -65,6 +80,10 @@ void app::setup() { DPRINTLN(DBG_WARN, F("WARNING! your NRF24 module can't be reached, check the wiring")); } + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + // when WiFi is in client mode, then enable mqtt broker #if !defined(AP_ONLY) #if defined(ENABLE_MQTT) @@ -78,11 +97,19 @@ void app::setup() { #endif setupLed(); + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + mWeb.setup(this, &mSys, mConfig); mWeb.setProtection(strlen(mConfig->sys.adminPwd) != 0); mApi.setup(this, &mSys, mWeb.getWebSrvPtr(), mConfig); + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + #ifdef ENABLE_SYSLOG mDbgSyslog.setup(mConfig); // be sure to init after mWeb.setup (webSerial uses also debug callback) #endif @@ -96,12 +123,20 @@ void app::setup() { #endif #endif + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + #if defined(ENABLE_HISTORY) mHistory.setup(this, &mSys, mConfig, &mTimestamp); #endif /*ENABLE_HISTORY*/ mPubSerial.setup(mConfig, &mSys, &mTimestamp); + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + #if !defined(ETHERNET) //mImprov.setup(this, mConfig->sys.deviceName, mVersion); #endif @@ -118,6 +153,10 @@ void app::setup() { //----------------------------------------------------------------------------- void app::loop(void) { + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + if(mConfig->nrf.enabled) mNrfRadio.loop(); #if defined(ESP32) @@ -125,6 +164,10 @@ void app::loop(void) { mCmtRadio.loop(); #endif + #if defined(ESP32) + esp_task_wdt_reset(); + #endif + ah::Scheduler::loop(); mCommunication.loop(); diff --git a/src/app.h b/src/app.h index 5b39405c..e6630219 100644 --- a/src/app.h +++ b/src/app.h @@ -8,6 +8,9 @@ #include #include +#if defined(ESP32) +#include +#endif #include "config/settings.h" #include "defines.h" diff --git a/src/defines.h b/src/defines.h index 46c9a249..e895981d 100644 --- a/src/defines.h +++ b/src/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 8 -#define VERSION_PATCH 56 +#define VERSION_PATCH 560001 //------------------------------------- typedef struct {