Skip to content

Commit

Permalink
fix some issues with settings & disabling; publish settings changes
Browse files Browse the repository at this point in the history
  • Loading branch information
boneskull committed Jun 12, 2019
1 parent a90ec51 commit 1423ff2
Showing 1 changed file with 24 additions and 22 deletions.
46 changes: 24 additions & 22 deletions src/particle-neopixel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ DynamicJsonDocument doc(JSON_OBJECT_SIZE(3));
char settingsJson[128];

// Prototypes for local build, ok to leave in for Build IDE
void rainbow(uint8_t wait);
void rainbow();
uint32_t Wheel(byte WheelPos);

size_t serializeSettings() {
Expand All @@ -53,26 +53,25 @@ size_t serializeSettings() {
return serializeJson(doc, settingsJson);
}

void writeEEPROM() {
void saveSettings() {
EEPROM.put(0, config);
serializeSettings();
Particle.publish("settings", settingsJson);
}

int enable(String ignored) {
if (!config.enabled) {
config.enabled = true;
writeEEPROM();
saveSettings();
return 1;
}
return 0;
}

int disable(String ignored) {
int disable(String ignored = "") {
if (config.enabled) {
config.enabled = false;
strip.setBrightness(0);
strip.show();
writeEEPROM();
saveSettings();
return 1;
}
return 0;
Expand All @@ -81,11 +80,11 @@ int disable(String ignored) {
int setBrightness(String value) {
uint8_t brightness = value.toInt();
if (brightness == 0) {
return disable("");
return disable();
}
if (brightness <= 100 && brightness != config.brightness) {
config.brightness = brightness;
writeEEPROM();
saveSettings();
return 1;
}
return 0;
Expand All @@ -95,7 +94,7 @@ int setDelay(String value) {
uint8_t delayMs = value.toInt();
if (delayMs > 0 && delayMs != config.delayMs) {
config.delayMs = delayMs;
writeEEPROM();
saveSettings();
return 1;
}
return 0;
Expand All @@ -106,10 +105,11 @@ void setup() {
if (config.version != FIRMWARE_VERSION) {
Config defaultConfig = {FIRMWARE_VERSION, 100, 50, true};
config = defaultConfig;
writeEEPROM();
saveSettings();
} else {
serializeSettings();
}

serializeSettings();

strip.begin();
strip.show(); // Initialize all pixels to 'off'
Expand All @@ -122,21 +122,23 @@ void setup() {
Particle.variable("config", settingsJson);
}

void loop() {
if (config.enabled) {
rainbow(config.delayMs);
}
}
void loop() { rainbow(); }

void rainbow(uint8_t wait) {
void rainbow() {
uint16_t i, j;
for (j = 0; j < 256; j++) {
for (i = 0; i < strip.numPixels(); i++) {
for (j = 0; j < 256 && config.enabled; j++) {
if (strip.getBrightness() != config.brightness) {
strip.setBrightness(config.brightness);
}
for (i = 0; i < strip.numPixels() && config.enabled; i++) {
strip.setPixelColor(i, Wheel((i + j) & 255));
}
strip.setBrightness(config.brightness);
strip.show();
delay(wait);
delay(config.delayMs);
}
if (!config.enabled && strip.getBrightness() != 0) {
strip.setBrightness(0);
strip.show();
}
}

Expand Down

0 comments on commit 1423ff2

Please sign in to comment.