🎓 Updates task manager
This commit is contained in:
@@ -83,6 +83,7 @@ void ESP32SvelteKit::begin() {
|
|||||||
startServices();
|
startServices();
|
||||||
|
|
||||||
ESP_LOGV("ESP32SvelteKit", "Starting loop task");
|
ESP_LOGV("ESP32SvelteKit", "Starting loop task");
|
||||||
|
_taskManager.createTask(this->_loopImpl, "Spot main", 4096, this, 2, NULL, ESP32SVELTEKIT_RUNNING_CORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP32SvelteKit::setupServer() {
|
void ESP32SvelteKit::setupServer() {
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ class ESP32SvelteKit {
|
|||||||
String _appName = APP_NAME;
|
String _appName = APP_NAME;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
static void _loopImpl(void *_this) { static_cast<ESP32SvelteKit *>(_this)->loop(); }
|
||||||
void setupServer();
|
void setupServer();
|
||||||
void setupMDNS();
|
void setupMDNS();
|
||||||
void startServices();
|
void startServices();
|
||||||
|
|||||||
@@ -73,10 +73,8 @@ class TaskManager {
|
|||||||
TaskManager() {}
|
TaskManager() {}
|
||||||
|
|
||||||
void begin() {
|
void begin() {
|
||||||
createTask(IdleTask::IdleTaskEntry, "Idle Core 0", IDLE_STACK_SIZE, &_taskIdle0, tskIDLE_PRIORITY + 1, &_hIdle0,
|
createTask(IdleTask::IdleTaskEntry, "Idle Core 0", IDLE_STACK_SIZE, &_taskIdle0, 1, &_hIdle0, 0);
|
||||||
0);
|
createTask(IdleTask::IdleTaskEntry, "Idle Core 1", IDLE_STACK_SIZE, &_taskIdle1, 1, &_hIdle1, 1);
|
||||||
createTask(IdleTask::IdleTaskEntry, "Idle Core 1", IDLE_STACK_SIZE, &_taskIdle1, tskIDLE_PRIORITY + 1, &_hIdle1,
|
|
||||||
1);
|
|
||||||
esp_task_wdt_delete(xTaskGetIdleTaskHandleForCPU(0));
|
esp_task_wdt_delete(xTaskGetIdleTaskHandleForCPU(0));
|
||||||
esp_task_wdt_delete(xTaskGetIdleTaskHandleForCPU(1));
|
esp_task_wdt_delete(xTaskGetIdleTaskHandleForCPU(1));
|
||||||
esp_task_wdt_add(_hIdle0);
|
esp_task_wdt_add(_hIdle0);
|
||||||
@@ -116,8 +114,10 @@ class TaskManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BaseType_t createTask(void (*taskFunction)(void *), const char *name, uint32_t stackSize = 2048,
|
BaseType_t createTask(void (*taskFunction)(void *), const char *name, uint32_t stackSize = 2048,
|
||||||
void *params = nullptr, UBaseType_t priority = tskIDLE_PRIORITY + 2,
|
void *params = nullptr, UBaseType_t priority = 2, TaskHandle_t *handle = nullptr,
|
||||||
TaskHandle_t *handle = nullptr, BaseType_t coreId = -1) {
|
BaseType_t coreId = -1) {
|
||||||
|
TaskHandle_t localHandle;
|
||||||
|
if (handle == nullptr) handle = &localHandle;
|
||||||
BaseType_t res = coreId == -1
|
BaseType_t res = coreId == -1
|
||||||
? xTaskCreate(taskFunction, name, stackSize, params, tskIDLE_PRIORITY + priority, handle)
|
? xTaskCreate(taskFunction, name, stackSize, params, tskIDLE_PRIORITY + priority, handle)
|
||||||
: xTaskCreatePinnedToCore(taskFunction, name, stackSize, params,
|
: xTaskCreatePinnedToCore(taskFunction, name, stackSize, params,
|
||||||
|
|||||||
+1
-1
@@ -13,4 +13,4 @@ void setup() {
|
|||||||
spot.begin();
|
spot.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() { spot.loop(); }
|
void loop() { vTaskDelete(NULL); }
|
||||||
|
|||||||
Reference in New Issue
Block a user