-
Notifications
You must be signed in to change notification settings - Fork 0
/
Sequencer.cpp
59 lines (57 loc) · 956 Bytes
/
Sequencer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "Arduino.h"
#include "Sequencer.h"
Sequence::Sequence() {}
void Sequence::setTime(int Time) {
_Time = Time;
}
void Sequence::start(int Steps, int Iterations) {
if (Complete == false) {
unsigned long TimeCurrent = millis();
if(Iteration == Iterations && Iterations != 0) {
Complete = true;
Iteration = 0;
} else {
if (paused == false) {
if(TimeCurrent - TimeLast >= _Time) {
TimeLast = TimeCurrent;
Step++;
if (Step > Steps) {
Step = 1;
Iteration++;
}
}
} else {
TimePaused = TimeCurrent - TimeLast;
}
}
} else {
Step = 0;
}
}
void Sequence::pause() {
paused = true;
}
void Sequence::unpause() {
TimeLast = TimePaused;
paused = false;
}
void Sequence::gotoStep(int StepNum) {
Step = StepNum;
}
void Sequence::reset() {
Complete = false;
Step = 1;
}
bool Sequence::getComplete() {
return Complete;
}
int Sequence::getIteration() {
return Iteration;
}
int Sequence::getStep() {
return Step;
}
}
int Sequence::getStep() {
return Step;
}