Flash lights when settings changed

This commit is contained in:
Djuri Baars 2023-09-20 02:17:23 +02:00
parent 0e1e7a4d12
commit 48bb13b965
3 changed files with 40 additions and 0 deletions

View File

@ -399,6 +399,43 @@ void setLights(int r, int g, int b)
#endif
}
void flashTemporaryLights(int r, int g, int b)
{
#ifdef WITH_RGB_LED
uint32_t oldLights[NEOPIXEL_COUNT];
// get current state
for (int i = 0; i < NEOPIXEL_COUNT; i++)
{
oldLights[i] = pixels.getPixelColor(i);
}
// flash three times in given color
for (int t = 0; t < 3; t++) {
for (int i = 0; i < NEOPIXEL_COUNT; i++)
{
pixels.setPixelColor(i, pixels.Color(r, g, b));
}
pixels.show();
delay(200);
pixels.clear();
pixels.show();
delay(200);
}
// revert to previous state
for (int i = 0; i < NEOPIXEL_COUNT; i++)
{
pixels.setPixelColor(i, oldLights[i]);
}
pixels.show();
#endif
}
void setupI2C()
{
bool slaveMode = preferences.getBool("I2CSlaveMode", false);

View File

@ -17,6 +17,7 @@ void setupWifi();
void synchronizeTime();
void setupPreferences();
void setLights(int r, int g, int b);
void flashTemporaryLights(int r, int g, int b);
void setupI2C();
void onI2CReceive(int len);
void onI2CRequest();

View File

@ -287,6 +287,8 @@ void onApiSettingsPost(AsyncWebServerRequest *request)
request->send(200);
if (settingsChanged)
{
flashTemporaryLights(0,255,0);
Serial.println("Settings changed");
}
}