// 该测试文件用于验证多任务积木生成的代码结构
// 注意：此文件仅用于代码结构验证，在Arduino IDE中编译时需要相应硬件支持

#include "Arduino.h"
#include "TaskScheduler.h"

// 声明调度器对象
Scheduler ts;

// 声明任务数组（用于存储创建的任务）
Task* taskArray[10];
int taskCount = 0;

// 任务回调函数
void task0Callback() {
    // Serial.println("Task 0 executed - Basic Task");
}

void task1Callback() {
    // Serial.println("Task 1 executed - Once Task");
}

void task2Callback() {
    // Serial.println("Task 2 executed - Loop Task");
}

// 任务声明
// 基础任务：运行10次，间隔1000毫秒
Task task0(1000, 10, &task0Callback, &ts, false, NULL, NULL);

// 一次性任务：运行1次，间隔2000毫秒
Task task1(2000, 1, &task1Callback, &ts, false, NULL, NULL);

// 循环任务：无限运行，间隔3000毫秒
Task task2(3000, -1, &task2Callback, &ts, false, NULL, NULL);

void setup() {
    // Serial.begin(9600);
    // Serial.println("Multiple Tasks Test Started");
    
    // 将任务添加到数组
    taskArray[taskCount++] = &task0;
    taskArray[taskCount++] = &task1;
    taskArray[taskCount++] = &task2;
    
    // 启用任务
    task0.enable();
    task1.enable();
    task2.enable();
}

void loop() {
    // 执行任务调度器
    ts.execute();
}