basic led control implemented
This commit is contained in:
1 parent
84310e97ef
commit
50a7ae811b
13 files changed
+486
-5
No files matched your search
+87
-1
@@ -1 +1,87 @@
|
||||
extern "C" void app_main() {}
|
||||
#include "sdkconfig.h"
|
||||
|
||||
// esp-idf includes
|
||||
#include <esp_log.h>
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#if defined(CONFIG_ESP_TASK_WDT_PANIC) || defined(CONFIG_ESP_TASK_WDT)
|
||||
#include <freertos/task.h>
|
||||
#include <esp_task_wdt.h>
|
||||
#endif
|
||||
#ifdef CONFIG_APP_ROLLBACK_ENABLE
|
||||
#include <esp_ota_ops.h>
|
||||
#endif
|
||||
#include <esp_system.h>
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <espchrono.h>
|
||||
|
||||
// local includes
|
||||
#include "wifi.h"
|
||||
#include "ble.h"
|
||||
#include "webserver.h"
|
||||
#include "led.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
namespace {
|
||||
constexpr const char * const TAG = "MAIN";
|
||||
} // namespace
|
||||
|
||||
extern "C" void app_main()
|
||||
{
|
||||
#if defined(CONFIG_ESP_TASK_WDT_PANIC) || defined(CONFIG_ESP_TASK_WDT)
|
||||
{
|
||||
const auto taskHandle = xTaskGetCurrentTaskHandle();
|
||||
if (!taskHandle)
|
||||
{
|
||||
ESP_LOGE(TAG, "could not get handle to current main task!");
|
||||
}
|
||||
else if (const auto result = esp_task_wdt_add(taskHandle); result != ESP_OK)
|
||||
{
|
||||
ESP_LOGE(TAG, "could not add main task to watchdog: %s", esp_err_to_name(result));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_APP_ROLLBACK_ENABLE
|
||||
esp_ota_img_states_t ota_state;
|
||||
if (const esp_partition_t * const running = esp_ota_get_running_partition())
|
||||
{
|
||||
if (const auto result = esp_ota_get_state_partition(running, &ota_state); result == ESP_ERR_NOT_FOUND)
|
||||
ota_state = ESP_OTA_IMG_VALID;
|
||||
else if (result != ESP_OK)
|
||||
{
|
||||
ESP_LOGE(TAG, "esp_ota_get_state_partition() failed with %s", esp_err_to_name(result));
|
||||
ota_state = ESP_OTA_IMG_UNDEFINED;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGE(TAG, "esp_ota_get_running_partition() returned nullptr");
|
||||
ota_state = ESP_OTA_IMG_UNDEFINED;
|
||||
}
|
||||
#endif
|
||||
|
||||
wifi_setup();
|
||||
ble_setup();
|
||||
webserver_setup();
|
||||
led_setup();
|
||||
|
||||
while (true)
|
||||
{
|
||||
#if defined(CONFIG_ESP_TASK_WDT_PANIC) || defined(CONFIG_ESP_TASK_WDT)
|
||||
if (const auto result = esp_task_wdt_reset(); result != ESP_OK)
|
||||
ESP_LOGE(TAG, "esp_task_wdt_reset() failed with %s", esp_err_to_name(result));
|
||||
#endif
|
||||
|
||||
wifi_update();
|
||||
ble_update();
|
||||
webserver_update();
|
||||
led_update();
|
||||
}
|
||||
}
|
||||
|
||||
auto espchrono::local_clock::timezone() noexcept -> time_zone
|
||||
{
|
||||
return time_zone{1h, DayLightSavingMode::EuropeanSummerTime};
|
||||
}
|
||||
Reference in new issue
Block a user