move pixel code to plugin

This commit is contained in:
2018-09-02 19:18:43 +02:00
parent e9ba25c4db
commit 5538cffb20
2 changed files with 47 additions and 5 deletions

View File

@@ -15,6 +15,7 @@
#include <plugins/OtaTcpPlugin.cpp> #include <plugins/OtaTcpPlugin.cpp>
#include <plugins/WebServerPlugin.cpp> #include <plugins/WebServerPlugin.cpp>
#include <plugins/WebConfigPlugin.cpp> #include <plugins/WebConfigPlugin.cpp>
#include "PixelPlugin.h"
using namespace std; using namespace std;
using namespace std::placeholders; using namespace std::placeholders;
@@ -34,11 +35,8 @@ class IlluCat : public MeshSprocket {
addPlugin(new OtaTcpPlugin(otaCfg)); addPlugin(new OtaTcpPlugin(otaCfg));
addPlugin(new WebServerPlugin(webCfg, server)); addPlugin(new WebServerPlugin(webCfg, server));
addPlugin(new WebConfigPlugin(server)); addPlugin(new WebConfigPlugin(server));
addPlugin(new PixelPlugin(pixelConfig, pixels));
pixels->begin();
pixels->setBrightness(pixelConfig.brightness);
animation.set(TASK_MILLISECOND * pixelConfig.updateInterval, TASK_FOREVER, bind(&IlluCat::animate, this));
addTask(animation);
scanningAnimation(); scanningAnimation();
} }
void scanningAnimation() { void scanningAnimation() {

44
src/PixelPlugin.h Normal file
View File

@@ -0,0 +1,44 @@
#ifndef __PIXEL_PLUGIN__
#define __PIXEL_PLUGIN__
#define _TASK_SLEEP_ON_IDLE_RUN
#define _TASK_STD_FUNCTION
#include "TaskSchedulerDeclarations.h"
#include "MeshNet.h"
#include "Plugin.h"
#include "NeoPattern.cpp"
using namespace std;
using namespace std::placeholders;
class PixelPlugin : public Plugin {
private:
NeoPixelConfig pixelConfig;
NeoPattern* pixels;
public:
Task animation;
PixelPlugin(NeoPixelConfig cfg, NeoPattern* neoPattern){
pixelConfig = cfg;
pixels = neoPattern;
pixels->begin();
pixels->setBrightness(pixelConfig.brightness);
}
void activate(Scheduler* userScheduler, Network* network){
animation.set(TASK_MILLISECOND * pixelConfig.updateInterval, TASK_FOREVER, bind(&PixelPlugin::animate, this));
userScheduler->addTask(animation);
animation.enable();
Serial.println("NeoPixels activated");
}
void animate(){
pixels->Update();
}
void enable(){
animation.enable();
}
void disable(){
animation.disable();
}
};
#endif