31 lines
681 B
C++
31 lines
681 B
C++
#include "freertos/idf_additions.h"
|
|
#include "esp_heap_caps.h"
|
|
#include "program.h"
|
|
|
|
Program::Program(DISPLAY_STATE* display_state) {
|
|
_display_state = display_state;
|
|
}
|
|
|
|
int Program::init(int id, std::string name, Window* window) {
|
|
_id = id;
|
|
_task_name = name;
|
|
_window = window;
|
|
|
|
xTaskCreatePinnedToCore(loop, _task_name.c_str(), 4096, this, 1, &_task_handle, 0);
|
|
|
|
return _id;
|
|
}
|
|
|
|
void Program::close() {
|
|
vTaskDelete(_task_handle);
|
|
}
|
|
|
|
void Program::loop(void* pvParameters) {
|
|
Program* self = static_cast<Program*>(pvParameters);
|
|
|
|
(self->_installed_program.*(self->_program_func))();
|
|
|
|
while (true) {
|
|
vTaskDelay(pdMS_TO_TICKS(1000)); // Sleep for 1 second
|
|
}
|
|
} |