#include "HermitCrab.h" #include "Config.h" #include "ConnectWiFi.h" #include "UI.h" #include #include #include "TimeManager.h" #include "WiFiHost.h" #include "NTC_10K.h" #include "AHT2x.h" #define TAG_TASK0 "Task0" extern bool g_bWiFiSetupExecuted; void setup_BLE(); // ================================================================================== // // Core0 Loop - Connection and communication // // ================================================================================== MY_IRAM_ATTR void core0Task(void *pvParameters) { ESP_LOGI(TAG_TASK0,"Core 0 Task Started"); DPRINTLN("Core 0 Task Started"); wl_status_t lastWiFiStatus = WL_DISCONNECTED; unsigned long tickMillis; unsigned long tickSecond; uint8_t slot; uint8_t lastSlot = 255; esp_task_wdt_add(NULL); // NULL for the current task ui.start(); ble.setupScan(); while (true) { esp_task_wdt_reset(); tickMillis = millis(); tickSecond = tickMillis / 1000; slot = (tickMillis % 1000) / 50; //=============================================================================== // Loop top: Once in a second loop if (slot != lastSlot) { lastSlot = slot; switch (slot) { case 1: case 6: case 11: case 16: // UI Display ui.updateDisplayTop(tickSecond); break; case 2: case 4: case 7: case 9: case 12: case 14: case 17: // NTC Temp Sensor case 19: ble.loop(tickMillis); break; case 3: // NTP - Time if (isWiFiConnected()) { if (timeManager.getTime(tickMillis)) { ESP_LOGI(TAG_TASK0,"NTP time loaded: %s", printTime()); } } break; case 5: // Heartbeat if (isWiFiConnected()) { host.SendHeartBeat(tickMillis); } break; case 8: // NTC ntc.readSensor(); break; case 13: // ATH2x - 0x38 aht25.readSensor(tickMillis); break; case 15: // ATH0x - 0x39 aht10_0x39.readSensor(tickMillis); break; case 18: // UI Bottom ui.updateDisplayBottom(tickSecond); break; default: // 0 10 break; } } // ===================================================== // Unconditional Loop checkWiFi(tickMillis); host.Loop(tickMillis); host.MonitorUDP(); // Loop end //========================================================================== esp_task_wdt_reset(); } // end of - While(True) ESP_LOGI(TAG_TASK0,"Core 0 Task Exit"); vTaskDelete(NULL); } // ================================================================================== // End of Core0 Loop // ==================================================================================