/
EffectChase.cpp
44 lines (40 loc) · 1.12 KB
/
EffectChase.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
//
//
//
#include "EffectChase.h"
EffectChase::~EffectChase()
{
}
void EffectChase::update(uint8_t * buffer)
{
Serial.println("EChase Update Begin");
scolour = side_strip.Color(buffer[0], buffer[1], buffer[2]);
scolour2 = side_strip.Color(buffer[3], buffer[4], buffer[5]);
ecolour = edge_strip.Color(buffer[0], buffer[1], buffer[2]);
ecolour2 = edge_strip.Color(buffer[3], buffer[4], buffer[5]);
speed = buffer[6];
chase_len = buffer[7] + 1;
}
void EffectChase::tick()
{
if (time + speed < millis()) {
time = millis();
for (uint16_t i = side_strip.numPixels() - 1; i > 0; i--) {
side_strip.setPixelColor(i, side_strip.getPixelColor(i - 1));
}
for (uint16_t i = edge_strip.numPixels() - 1; i > 0; i--) {
edge_strip.setPixelColor(i, edge_strip.getPixelColor(i - 1));
}
if (cycle++ < chase_len) {
side_strip.setPixelColor(0, scolour);
edge_strip.setPixelColor(0, ecolour);
}
else {
side_strip.setPixelColor(0, scolour2);
edge_strip.setPixelColor(0, ecolour2);
}
if (cycle >= (chase_len * 2)) cycle = 0;
side_strip.show();
edge_strip.show();
}
}