add demo project implementation
This commit is contained in:
@ -1,9 +1,25 @@
|
||||
#include <DemoProject.h>
|
||||
|
||||
void DemoProject::begin() {
|
||||
|
||||
void DemoProject::init(AsyncWebServer* server) {
|
||||
AdminSettingsService::init(server);
|
||||
pinMode(BLINK_LED, OUTPUT);
|
||||
}
|
||||
|
||||
void DemoProject::loop() {
|
||||
|
||||
unsigned delay = MAX_DELAY / 255 * (255 - _blinkSpeed);
|
||||
unsigned long currentMillis = millis();
|
||||
if (!_lastBlink || (unsigned long)(currentMillis - _lastBlink) >= delay) {
|
||||
_lastBlink = currentMillis;
|
||||
digitalWrite(BLINK_LED, !digitalRead(BLINK_LED));
|
||||
}
|
||||
}
|
||||
|
||||
void DemoProject::readFromJsonObject(JsonObject& root) {
|
||||
_blinkSpeed = root["blink_speed"] | DEFAULT_BLINK_SPEED;
|
||||
}
|
||||
|
||||
void DemoProject::writeToJsonObject(JsonObject& root) {
|
||||
// connection settings
|
||||
root["blink_speed"] = _blinkSpeed;
|
||||
}
|
||||
|
||||
|
@ -1,23 +1,35 @@
|
||||
#ifndef DemoProject_h
|
||||
#define DemoProject_h
|
||||
|
||||
#include <ESPAsyncWebServer.h>
|
||||
#include <SecurityManager.h>
|
||||
#include <SettingsService.h>
|
||||
|
||||
class DemoProject {
|
||||
#define BLINK_LED 2
|
||||
#define MAX_DELAY 1000
|
||||
|
||||
#define DEFAULT_BLINK_SPEED 100
|
||||
#define DEMO_SETTINGS_FILE "/config/demoSettings.json"
|
||||
#define DEMO_SETTINGS_PATH "/rest/demoSettings"
|
||||
|
||||
class DemoProject : public AdminSettingsService {
|
||||
|
||||
public:
|
||||
|
||||
DemoProject(AsyncWebServer *server, SecurityManager* securityManager) : _server(server), _securityManager(securityManager) {}
|
||||
DemoProject(FS* fs, SecurityManager* securityManager) : AdminSettingsService(fs, securityManager, DEMO_SETTINGS_PATH, DEMO_SETTINGS_FILE) {}
|
||||
~DemoProject() {}
|
||||
|
||||
void begin();
|
||||
void init(AsyncWebServer* server);
|
||||
void loop();
|
||||
|
||||
private:
|
||||
|
||||
AsyncWebServer* _server;
|
||||
SecurityManager* _securityManager;
|
||||
unsigned long _lastBlink = 0;
|
||||
uint8_t _blinkSpeed = 255;
|
||||
|
||||
protected:
|
||||
|
||||
void readFromJsonObject(JsonObject& root);
|
||||
void writeToJsonObject(JsonObject& root);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
10
src/main.cpp
10
src/main.cpp
@ -7,9 +7,10 @@
|
||||
AsyncWebServer server(80);
|
||||
ESP8266React espServer(&SPIFFS);
|
||||
|
||||
DemoProject demoProject = DemoProject(&server, espServer.getSecurityManager());
|
||||
DemoProject demoProject = DemoProject(&SPIFFS, espServer.getSecurityManager());
|
||||
|
||||
void setup() {
|
||||
// start serial and filesystem
|
||||
Serial.begin(SERIAL_BAUD_RATE);
|
||||
SPIFFS.begin();
|
||||
|
||||
@ -17,15 +18,16 @@ void setup() {
|
||||
espServer.init(&server);
|
||||
|
||||
// begin the demo project
|
||||
demoProject.begin();
|
||||
demoProject.init(&server);
|
||||
|
||||
// start the server
|
||||
server.begin();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// run the framework loop
|
||||
// run the framework's loop function
|
||||
espServer.loop();
|
||||
|
||||
// run the demo project loop
|
||||
// run the demo project's loop function
|
||||
demoProject.loop();
|
||||
}
|
||||
|
Reference in New Issue
Block a user