/* * Task Management Example * * This example demonstrates how to use the TaskManager to add custom tasks * to the SPORE system. The TaskManager provides a clean interface for * registering, controlling, and monitoring system tasks. */ #include #include "TaskManager.h" #include "NodeContext.h" // Example custom task functions void customTask1() { Serial.println("[CustomTask1] Executing custom task 1"); // Add your custom logic here } void customTask2() { Serial.println("[CustomTask2] Executing custom task 2"); // Add your custom logic here } void periodicMaintenance() { Serial.println("[Maintenance] Running periodic maintenance"); // Add maintenance logic here } void setup() { Serial.begin(115200); Serial.println("Task Management Example"); // Create context and task manager NodeContext ctx; TaskManager taskManager(ctx); // Register custom tasks with different intervals taskManager.registerTask("custom_task_1", 5000, customTask1); // Every 5 seconds taskManager.registerTask("custom_task_2", 10000, customTask2); // Every 10 seconds taskManager.registerTask("maintenance", 30000, periodicMaintenance); // Every 30 seconds // Initialize and start all tasks taskManager.initialize(); // Print initial task status taskManager.printTaskStatus(); // Example: Disable a task temporarily taskManager.disableTask("custom_task_2"); Serial.println("Disabled custom_task_2"); // Example: Change task interval taskManager.setTaskInterval("custom_task_1", 2000); // Change to 2 seconds Serial.println("Changed custom_task_1 interval to 2 seconds"); // Re-enable the disabled task taskManager.enableTask("custom_task_2"); Serial.println("Re-enabled custom_task_2"); // Print updated status taskManager.printTaskStatus(); } void loop() { // The TaskManager handles all task execution // No need to call individual task functions yield(); }