diff --git a/platformio.ini b/platformio.ini
index c8fcf8d..89edae7 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -22,10 +22,7 @@ lib_deps =
TaskScheduler
SPIFFS
ESP8266mDNS
- ArduinoOTA
painlessMesh
- ESPAsyncTCP
- ESP Async WebServer
;[env:build]
;src_filter = +<*> -
diff --git a/src/examples/wifi/WiFiApp.h b/src/examples/wifi/WiFiApp.h
deleted file mode 100644
index ab0c1f5..0000000
--- a/src/examples/wifi/WiFiApp.h
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef __WIFI_APP__
-#define __WIFI_APP__
-
-#include
-#include
-#include
-#include
-#include
-
-using namespace std;
-using namespace std::placeholders;
-
-class WiFiApp : public Sprocket {
- public:
- AsyncWebServer* server;
- WiFiApp(SprocketConfig cfg, WebServerConfig webCfg) : Sprocket(cfg) {
- server = new AsyncWebServer(webCfg.port);
- addPlugin(new WebServerPlugin(webCfg, server));
- addPlugin(new WebConfigPlugin(server));
- }
-};
-
-#endif
\ No newline at end of file
diff --git a/src/examples/wifi/main.cpp b/src/examples/wifi/main.cpp
index 8e300df..51acb6c 100644
--- a/src/examples/wifi/main.cpp
+++ b/src/examples/wifi/main.cpp
@@ -1,6 +1,6 @@
#include "config.h"
#include "WiFiNet.h"
-#include "WiFiApp.h"
+#include "Sprocket.h"
WiFiNet wifi(
SPROCKET_MODE,
@@ -10,9 +10,9 @@ WiFiNet wifi(
AP_PASSWORD,
HOSTNAME,
CONNECT_TIMEOUT);
-WiFiApp sprocket(
- {STARTUP_DELAY, SERIAL_BAUD_RATE},
- {WEB_CONTEXT_PATH, WEB_DOC_ROOT, WEB_DEFAULT_FILE, WEB_SERVER_PORT});
+
+Sprocket sprocket(
+ {STARTUP_DELAY, SERIAL_BAUD_RATE});
void setup()
{
diff --git a/src/examples/wifiMesh/MeshApp.h b/src/examples/wifiMesh/MeshApp.h
index e3a272f..696949d 100644
--- a/src/examples/wifiMesh/MeshApp.h
+++ b/src/examples/wifiMesh/MeshApp.h
@@ -4,6 +4,7 @@
#include
#include
#include
+#include
using namespace std;
using namespace std::placeholders;
@@ -24,7 +25,7 @@ class MeshApp : public Sprocket
// add a task that sends stuff to the mesh
heartbeatTask.set(TASK_SECOND * 5, TASK_FOREVER, bind(&MeshApp::heartbeat, this));
addTask(heartbeatTask);
- Serial.println("MeshApp activated");
+ PRINT_MSG(Serial,"MESH", "MeshApp activated");
return this;
}
using Sprocket::activate;
diff --git a/src/plugins/WebConfigPlugin.cpp b/src/plugins/WebConfigPlugin.cpp
deleted file mode 100644
index ba56945..0000000
--- a/src/plugins/WebConfigPlugin.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef __WEB_CONFIG_PLUGIN_H__
-#define __WEB_CONFIG_PLUGIN_H__
-
-#include
-#include "TaskSchedulerDeclarations.h"
-#include "ArduinoOTA.h"
-#include "Plugin.h"
-#include
-#include
-
-using namespace std;
-using namespace std::placeholders;
-
-
-class WebConfigPlugin : public Plugin {
- private:
- AsyncWebServer* server;
- public:
- WebConfigPlugin(AsyncWebServer* webServer){
- server = webServer;
- server->serveStatic("/config.json", SPIFFS, "config.json");
- }
- void activate(Scheduler* userScheduler){
- server->on("/heap", HTTP_GET, [](AsyncWebServerRequest *request){
- Serial.println("GET /heap");
- request->send(200, "text/plain", String(ESP.getFreeHeap()));
- });
- server->on("/restart", HTTP_POST, [](AsyncWebServerRequest *request){
- Serial.println("POST /restart");
- ESP.restart();
- });
- server->on("/config", HTTP_POST, [](AsyncWebServerRequest *request){
- Serial.println("POST /config");
- if(request->hasParam("config", true) && request->hasParam("fileName", true)) {
- String inStr = request->getParam("config", true)->value();
- String fileName = request->getParam("fileName", true)->value();
- File f = SPIFFS.open(fileName, "w");
- if (!f) {
- Serial.println("file open for write failed");
- }
- Serial.println("====== Writing to SPIFFS file =========");
- f.print(inStr);
- f.close();
- }
- request->redirect("/");
- });
- Serial.println("WebConfig activated");
- }
-};
-
-#endif
\ No newline at end of file
diff --git a/src/plugins/WebServerConfig.h b/src/plugins/WebServerConfig.h
deleted file mode 100644
index 70c2433..0000000
--- a/src/plugins/WebServerConfig.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __WEB_SERVER_CONFIG__
-#define __WEB_SERVER_CONFIG__
-
-struct WebServerConfig {
- const char* contextPath;
- const char* docRoot;
- const char* defaultFile;
- int port;
-};
-
-#endif
\ No newline at end of file
diff --git a/src/plugins/WebServerPlugin.cpp b/src/plugins/WebServerPlugin.cpp
deleted file mode 100644
index 54bf060..0000000
--- a/src/plugins/WebServerPlugin.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __WEB_SERVER_PLUGIN__
-#define __WEB_SERVER_PLUGIN__
-
-#include
-#include
-#include "TaskSchedulerDeclarations.h"
-#include "Plugin.h"
-#include
-
-using namespace std;
-using namespace std::placeholders;
-
-class WebServerPlugin : public Plugin {
- private:
- WebServerConfig config;
- AsyncWebServer* server;
- public:
- WebServerPlugin(WebServerConfig cfg, AsyncWebServer* webServer){
- config = cfg;
- server = webServer;
- }
- void activate(Scheduler* userScheduler){
- server->serveStatic(config.contextPath, SPIFFS, config.docRoot).setDefaultFile(config.defaultFile);
- // TODO add auth if configured
- // server->setAuthentication("user", "pass");
- server->begin();
- Serial.println("WebServer activated");
- }
-};
-
-#endif
\ No newline at end of file
diff --git a/src/utils/print.cpp b/src/utils/print.cpp
new file mode 100644
index 0000000..197e64a
--- /dev/null
+++ b/src/utils/print.cpp
@@ -0,0 +1,28 @@
+#include "utils/print.h"
+
+int FORMAT_BUFFER_SIZE(const char *format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ int result = vsnprintf(NULL, 0, format, args);
+ va_end(args);
+ return result + 1; // safe byte for \0
+}
+void PRINT_MSG(Print &out, const char *prefix, const char *format, ...)
+{
+ if (SPROCKET_PRINT)
+ {
+ out.print(String(prefix) + String("\t| "));
+ char formatString[128], *ptr;
+ strncpy_P(formatString, format, sizeof(formatString)); // copy in from program mem
+ // null terminate - leave last char since we might need it in worst case for result's \0
+ formatString[sizeof(formatString) - 2] = '\0';
+ ptr = &formatString[strlen(formatString) + 1]; // our result buffer...
+ va_list args;
+ va_start(args, format);
+ vsnprintf(ptr, sizeof(formatString) - 1 - strlen(formatString), formatString, args);
+ va_end(args);
+ formatString[sizeof(formatString) - 1] = '\0';
+ out.println(ptr);
+ }
+}
\ No newline at end of file
diff --git a/src/utils/utils_print.h b/src/utils/print.h
similarity index 60%
rename from src/utils/utils_print.h
rename to src/utils/print.h
index 51ac397..ea76fc4 100644
--- a/src/utils/utils_print.h
+++ b/src/utils/print.h
@@ -9,7 +9,7 @@
// TODO move to sprocket
-int FORMAT_BUFFER_SIZE(const char* format, ...);
-void PRINT_MSG(Print &out, const char* prefix, const char* format, ...);
+int FORMAT_BUFFER_SIZE(const char *format, ...);
+void PRINT_MSG(Print &out, const char *prefix, const char *format, ...);
#endif
\ No newline at end of file
diff --git a/src/utils/utils_print.cpp b/src/utils/utils_print.cpp
deleted file mode 100644
index ae6c013..0000000
--- a/src/utils/utils_print.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "utils_print.h"
-
-int FORMAT_BUFFER_SIZE(const char* format, ...) {
- va_list args;
- va_start(args, format);
- int result = vsnprintf(NULL, 0, format, args);
- va_end(args);
- return result + 1; // safe byte for \0
-}
-void PRINT_MSG(Print &out, const char* prefix, const char* format, ...) {
- if(SPROCKET_PRINT){
- out.print(String(prefix) + String("\t| "));
- char formatString[128], *ptr;
- strncpy_P( formatString, format, sizeof(formatString) ); // copy in from program mem
- // null terminate - leave last char since we might need it in worst case for result's \0
- formatString[ sizeof(formatString)-2 ]='\0';
- ptr=&formatString[ strlen(formatString)+1 ]; // our result buffer...
- va_list args;
- va_start (args,format);
- vsnprintf(ptr, sizeof(formatString)-1-strlen(formatString), formatString, args );
- va_end (args);
- formatString[ sizeof(formatString)-1 ]='\0';
- out.println(ptr);
- }
-}
\ No newline at end of file
diff --git a/src/utils/utils_web.h b/src/utils/utils_web.h
deleted file mode 100644
index 0ff8d4a..0000000
--- a/src/utils/utils_web.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef __WebUtils_H___
-#define __WebUtils_H___
-
-#include
-#include
-#include
-#include
-
-class WebUtils {
- public:
- static String getRequestParameterOrDefault(AsyncWebServerRequest *request, String param, String defaultValue, bool isPost = true){
- if(request->hasParam(param, isPost)) {
- return request->getParam(param, isPost)->value();
- }
- return defaultValue;
- }
- static String parseFrame(AwsEventType type, void * arg, uint8_t *data, size_t len) {
- String msg = "";
- if(type == WS_EVT_DATA){
- AwsFrameInfo * info = (AwsFrameInfo*)arg;
- if(info->opcode == WS_TEXT){
- for(size_t i=0; i < info->len; i++) {
- msg += (char) data[i];
- }
- } else {
- char buff[3];
- for(size_t i=0; i < info->len; i++) {
- sprintf(buff, "%02x ", (uint8_t) data[i]);
- msg += buff ;
- }
- }
-
- }
- return msg;
- }
- static String parseFrameAsString(AwsEventType type, void * arg, uint8_t *data, size_t len, int start = 0) {
- String msg = "";
- if(type == WS_EVT_DATA){
- AwsFrameInfo * info = (AwsFrameInfo*)arg;
- //if(info->final && info->index == 0 && info->len == len){
- if(info->opcode == WS_TEXT){
- for(size_t i=start; i < info->len; i++) {
- msg += (char) data[i];
- }
- } else {
- char buff[3];
- for(size_t i=start; i < info->len; i++) {
- sprintf(buff, "%02x ", (uint8_t) data[i]);
- msg += buff ;
- }
- }
-
- //}
- }
- return msg;
- }
- /* static void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
- if(type == WS_EVT_CONNECT){
- Serial.printf("ws[%s][%u] connect\n", server->url(), client->id());
- client->printf("Hello Client %u :)", client->id());
- client->ping();
- } else if(type == WS_EVT_DISCONNECT){
- Serial.printf("ws[%s][%u] disconnect: %u\n", server->url(), client->id());
- } else if(type == WS_EVT_ERROR){
- Serial.printf("ws[%s][%u] error(%u): %s\n", server->url(), client->id(), *((uint16_t*)arg), (char*)data);
- } else if(type == WS_EVT_PONG){
- Serial.printf("ws[%s][%u] pong[%u]: %s\n", server->url(), client->id(), len, (len)?(char*)data:"");
- } else if(type == WS_EVT_DATA){
- AwsFrameInfo * info = (AwsFrameInfo*)arg;
- String msg = "";
- //the whole message is in a single frame and we got all of it's data
- if(info->final && info->index == 0 && info->len == len){
- Serial.printf("ws[%s][%u] %s-message[%llu]: ", server->url(), client->id(), (info->opcode == WS_TEXT)?"text":"binary", info->len);
-
- if(info->opcode == WS_TEXT){
- for(size_t i=0; i < info->len; i++) {
- msg += (char) data[i];
- }
- } else {
- char buff[3];
- for(size_t i=0; i < info->len; i++) {
- sprintf(buff, "%02x ", (uint8_t) data[i]);
- msg += buff ;
- }
- }
- Serial.printf("%s\n",msg.c_str());
-
- if(info->opcode == WS_TEXT)
- client->text("I got your text message");
- else
- client->binary("I got your binary message");
- }
- //message is comprised of multiple frames or the frame is split into multiple packets
- else {
- if(info->index == 0){
- if(info->num == 0)
- Serial.printf("ws[%s][%u] %s-message start\n", server->url(), client->id(), (info->message_opcode == WS_TEXT)?"text":"binary");
- Serial.printf("ws[%s][%u] frame[%u] start[%llu]\n", server->url(), client->id(), info->num, info->len);
- }
-
- Serial.printf("ws[%s][%u] frame[%u] %s[%llu - %llu]: ", server->url(), client->id(), info->num, (info->message_opcode == WS_TEXT)?"text":"binary", info->index, info->index + len);
-
- if(info->opcode == WS_TEXT){
- for(size_t i=0; i < info->len; i++) {
- msg += (char) data[i];
- }
- } else {
- char buff[3];
- for(size_t i=0; i < info->len; i++) {
- sprintf(buff, "%02x ", (uint8_t) data[i]);
- msg += buff ;
- }
- }
- Serial.printf("%s\n",msg.c_str());
-
- if((info->index + len) == info->len){
- Serial.printf("ws[%s][%u] frame[%u] end[%llu]\n", server->url(), client->id(), info->num, info->len);
- if(info->final){
- Serial.printf("ws[%s][%u] %s-message end\n", server->url(), client->id(), (info->message_opcode == WS_TEXT)?"text":"binary");
- if(info->message_opcode == WS_TEXT)
- client->text("I got your text message");
- else
- client->binary("I got your binary message");
- }
- }
- }
- }
- } */
-
-};
-
-#endif
\ No newline at end of file