|  |  | @ -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(); | 
			
		
	
		
			
				
					|  |  |  |     esp_task_wdt_reset(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -31,6 +38,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); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  | @ -51,6 +62,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) | 
			
		
	
	
		
			
				
					|  |  | @ -66,6 +81,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) | 
			
		
	
	
		
			
				
					|  |  | @ -79,11 +98,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 | 
			
		
	
	
		
			
				
					|  |  | @ -97,12 +124,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 | 
			
		
	
	
		
			
				
					|  |  | @ -119,6 +154,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) | 
			
		
	
	
		
			
				
					|  |  | @ -126,6 +165,10 @@ void app::loop(void) { | 
			
		
	
		
			
				
					|  |  |  |         mCmtRadio.loop(); | 
			
		
	
		
			
				
					|  |  |  |     #endif | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     #if defined(ESP32) | 
			
		
	
		
			
				
					|  |  |  |         esp_task_wdt_reset(); | 
			
		
	
		
			
				
					|  |  |  |     #endif | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     ah::Scheduler::loop(); | 
			
		
	
		
			
				
					|  |  |  |     mCommunication.loop(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |