externalize pixel stuff, add pixel instance to plugin, remove old code

This commit is contained in:
2018-11-05 14:57:49 +01:00
parent d4d40428cc
commit 99dbd8379b
8 changed files with 58 additions and 30 deletions

View File

@@ -4,10 +4,42 @@ PixelPlugin::PixelPlugin(NeoPixelConfig cfg, NeoPattern *neoPattern)
{
pixelConfig = cfg;
pixels = neoPattern;
pixels->begin();
applyConfig(pixelConfig);
defaultAnimation();
}
PixelPlugin::PixelPlugin(NeoPattern *neoPattern)
{
pixels = neoPattern;
loadConfigFromFile();
applyConfig(pixelConfig);
defaultAnimation();
}
PixelPlugin::PixelPlugin()
{
loadConfigFromFile();
pixels = new NeoPattern(pixelConfig.length, pixelConfig.pin, NEO_GRB + NEO_KHZ800);
applyConfig(pixelConfig);
defaultAnimation();
}
void PixelPlugin::loadConfigFromFile(){
if (SPIFFS.begin()){
pixelConfig.fromFile(PIXEL_CONFIG_FILE);
}
}
void PixelPlugin::applyConfig(NeoPixelConfig cfg)
{
pixels->setBrightness(pixelConfig.brightness);
}
void PixelPlugin::defaultAnimation() {
pixels->RainbowCycle(pixelConfig.updateInterval);
animate();
}
void PixelPlugin::activate(Scheduler *userScheduler, Network *network)
{
subscribe("pixels/colorWheel", bind(&PixelPlugin::colorWheel, this, _1));