From 345e10175a9e527f2925b726ee1006419546c2da Mon Sep 17 00:00:00 2001 From: Lorow Date: Tue, 1 Apr 2025 23:30:21 +0200 Subject: [PATCH] Port restart tasks - TODO test and enable them --- components/OpenIrisTasks/CMakeLists.txt | 4 ++++ .../OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.cpp | 14 ++++++++++++++ .../OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.hpp | 15 +++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 components/OpenIrisTasks/CMakeLists.txt create mode 100644 components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.cpp create mode 100644 components/OpenIrisTasks/OpenIrisTasks/OpenIrisTasks.hpp 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