#include "ProcessManager.h"
#include "myProcesses.h"
// global variables
ProcessManager* pProcessManager;
Servo servo[3];
volatile byte readVal = LOW;
volatile int analogVal = 0;
void setup()
{
// create the process manager
pProcessManager = new ProcessManager();
// add some processes
for (int i = 0; i != 6; i++)
{
ProcessPtr pProcess = new blinkProcess(i + 8, (i + 1) * 200);
pProcessManager->attach(pProcess);
}
servo[0].attach(5);
servo[1].attach(3);
servo[2].attach(6);
ProcessPtr pProcess = new waitProcess(6000);
pProcess->setFollow(new sweepProcess(&servo[0], 2000));
pProcessManager->attach(pProcess);
pProcessManager->attach(new sweepProcess(&servo[1], 4000));
pProcessManager->attach(new digitalReadProcess(2, &readVal));
pProcessManager->attach(new analogReadProcess(A0, &analogVal));
pProcessManager->attach(new servoProcess(&servo[2], &analogVal));
// Serial.begin(9600);
}
void loop()
{
byte prevVal = readVal;
pProcessManager->onLoop();
if (readVal != prevVal && readVal == LOW)
{
for (int i = 0; i != 6; i++)
{
ProcessPtr pProcess = new blinkProcess(i + 8, (i + 1) * 200);
pProcessManager->attach(pProcess);
}
}
// Serial.print(readVal==LOW?"0 ":"1 ");
// Serial.println(analogVal);
}