diff --git a/components/OpenIrisTasks/CMakeLists.txt b/components/OpenIrisTasks/CMakeLists.txt new file mode 100644 index 0000000..682d99e --- /dev/null +++ b/components/OpenIrisTasks/CMakeLists.txt @@ -0,0 +1,4 @@ +idf_component_register(SRCS "OpenIrisTasks/OpenIrisTasks.cpp" + INCLUDE_DIRS "OpenIrisTasks" + REQUIRES Helpers +) \ No newline at end of file diff --git a/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.cpp b/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.cpp new file mode 100644 index 0000000..be9c2af --- /dev/null +++ b/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.cpp @@ -0,0 +1,14 @@ +#include "OpenIrisTasks.hpp" + +void OpenIrisTasks::ScheduleRestart(int milliseconds) +{ + taskYIELD(); + int initialTime = Helpers::getTimeInMillis(); + while (Helpers::getTimeInMillis() - initialTime <= milliseconds) + { + continue; + } + + esp_restart(); + taskYIELD(); +} \ No newline at end of file diff --git a/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.hpp b/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.hpp new file mode 100644 index 0000000..ee1401c --- /dev/null +++ b/components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.hpp @@ -0,0 +1,15 @@ +#pragma once +#ifndef OPENIRISTASKS_HPP +#define OPENIRISTASKS_HPP + +#include "Helpers.hpp" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_system.h" + +namespace OpenIrisTasks +{ + void ScheduleRestart(int milliseconds); +}; + +#endif \ No newline at end of file