The source code of each library should be placed in an own separate directory ("lib/esp32-tasker/[here are source files]").
Structure of the following library esp32-tasker:
|--lib | | | |--esp32-tasker | | |--docs | | |--examples | | |- main.ino | | |--src | | |- esp32-tasker.cpp | | |- esp32-tasker.h | | |- library.json | | |- README --> THIS FILE | | |- README.md | | |- LICENSE | | |- .gitignore | | |- library.properties | |- platformio.ini |--src |- main.c and a contents of src/main.c:
#include <Arduino.h> #include "esp32-tasker.h" void task1() { log_i("task1!!!"); deleteTask(); } [[noreturn]] void task2() { log_i("task2!!!"); for (;;) { log_i("task2 loop!"); delay(100); } } void task3() { log_i("periodic task3"); } [[noreturn]] void task4() { log_i("task4"); for (;;); } void task5() { log_i("periodic task5!!!"); deleteTask(); } void setup() { // Run single shot inline task on any core createTask([]() { log_i("inline single shot task!"); deleteTask(); }); // Run continues inline task on any core createTask([]() { log_i("inline continues task!"); for(;;); }); // Run single shot task callback on any core createTask(task1); // Run continues task callback on core id 0 (core #1) createTaskCore0(task2); // Run task3 every 100 ms on core id 1 (core #2) createTaskCore1(task3, 100); // Run continues named task callback with named task on core id 0 (core #1) createTaskCore0(task4, "task 4"); // Run periodic named task every 500 ms on core id 0 (core #1) createTaskCore0(task5, "task 5", 500); } void loop() { // Delete built-in task in order to launch next ones on the same priority deleteTask(); }