colors dingens

This commit is contained in:
2018-06-30 11:34:12 +02:00
parent a5cffc9bce
commit e496d99a8d
2 changed files with 14 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ class Button : public Sprocket {
MeshNet* net; MeshNet* net;
int pin; int pin;
int warnlevel = 0; int warnlevel = 0;
int cycleEnd = 4;
Button(SprocketConfig cfg) : Sprocket(cfg) {} Button(SprocketConfig cfg) : Sprocket(cfg) {}
Sprocket* activate(Scheduler* scheduler, Network* network) { Sprocket* activate(Scheduler* scheduler, Network* network) {
pin = D2; pin = D2;
@@ -30,6 +31,7 @@ class Button : public Sprocket {
if(digitalRead(pin)){ if(digitalRead(pin)){
Serial.println("warnlevel: " + String(warnlevel)); Serial.println("warnlevel: " + String(warnlevel));
warnlevel++; warnlevel++;
if(warnlevel == cycleEnd) warnlevel = 0;
network->broadcast(String(warnlevel)); network->broadcast(String(warnlevel));
} }
} }

View File

@@ -9,7 +9,10 @@
using namespace std; using namespace std;
using namespace std::placeholders; using namespace std::placeholders;
#define ARRAY_LENGTH(array) sizeof(array)/sizeof(array[0])
enum PIXEL_MODES {RED = 0xFF0000, GREEN = 0x00FF00, YELLOW = 0xffff00, BLUE = 0x0000FF, ORANGE = 0xffa500}; enum PIXEL_MODES {RED = 0xFF0000, GREEN = 0x00FF00, YELLOW = 0xffff00, BLUE = 0x0000FF, ORANGE = 0xffa500};
int CAT_MODES[] = {RED, GREEN, YELLOW, BLUE, ORANGE};
struct NeoPixelConfig { struct NeoPixelConfig {
int pin; int pin;
@@ -21,6 +24,7 @@ class Illucat : public Sprocket {
public: public:
MeshNet* net; MeshNet* net;
NeoPattern* pixels; NeoPattern* pixels;
int currentMode;
Illucat(SprocketConfig cfg, NeoPixelConfig pixelCfg) : Sprocket(cfg) { Illucat(SprocketConfig cfg, NeoPixelConfig pixelCfg) : Sprocket(cfg) {
pixels = new NeoPattern(pixelCfg.length, pixelCfg.pin, NEO_GRB + NEO_KHZ800, [](int pixels){}); pixels = new NeoPattern(pixelCfg.length, pixelCfg.pin, NEO_GRB + NEO_KHZ800, [](int pixels){});
pixels->begin(); pixels->begin();
@@ -34,11 +38,15 @@ class Illucat : public Sprocket {
void messageReceived( uint32_t from, String &msg ) { void messageReceived( uint32_t from, String &msg ) {
Serial.printf("illucat: received from %u msg=%s\n", from, msg.c_str()); Serial.printf("illucat: received from %u msg=%s\n", from, msg.c_str());
setColor(msg.c_str()); changeMode(msg.c_str());
} }
void setColor(const char *color){ void changeMode(const char *mode){
pixels->ColorSet(BLUE); currentMode = atoi(mode);
Serial.println(currentMode);
//if(ARRAY_LENGTH(CAT_MODES) >= (int) mode){
pixels->ColorSet(CAT_MODES[currentMode]);
pixels->show(); pixels->show();
//}
} }
void setHexColor(const char *hex){ void setHexColor(const char *hex){
int r, g, b; int r, g, b;