improve pixel example

This commit is contained in:
2018-08-29 15:13:24 +02:00
parent 945bf78459
commit 30593fd2be
11 changed files with 91 additions and 39 deletions

View File

@@ -49,11 +49,10 @@ class OtaTcpPlugin : public Plugin {
//connectUpdateNetwork(network);
net = static_cast<MeshNet*>(network);
// setup task
scheduler = userScheduler;
otaTask.set(TASK_MILLISECOND * 100, TASK_FOREVER, [](){
ArduinoOTA.handle();
});
scheduler->addTask(otaTask);
userScheduler->addTask(otaTask);
// configure OTA
ArduinoOTA.setPort(config.port);

View File

@@ -0,0 +1,46 @@
#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"
#include "NeoPatternState.cpp"
using namespace std;
using namespace std::placeholders;
class PixelPlugin : public Plugin {
private:
NeoPixelConfig pixelConfig;
NeoPattern* pixels;
NeoPatternState state;
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

View File

@@ -3,7 +3,6 @@
#include <FS.h>
#include "TaskSchedulerDeclarations.h"
#include "ArduinoOTA.h"
#include "MeshNet.h"
#include "Plugin.h"
#include <plugins/WebSO.h>
@@ -22,7 +21,6 @@ class WebServerPlugin : public Plugin {
server = webServer;
}
void activate(Scheduler* userScheduler, Network* network){
//connectUpdateNetwork(network);
net = static_cast<MeshNet*>(network);
server->serveStatic(config.contextPath, SPIFFS, config.docRoot).setDefaultFile(config.defaultFile);
// TODO add auth if configured