|
|
@ -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(); |
|
|
|
|
|
|
|