From 7273ee6a0bf0380fe530abee5631a1c48156c3eb Mon Sep 17 00:00:00 2001 From: Patrick Balsiger Date: Thu, 8 Nov 2018 15:25:17 +0100 Subject: [PATCH] cleanup examples, build and ci --- .gitlab-ci.yml | 7 ++-- platformio.ini | 14 ++----- src/MeshNet.cpp | 1 + src/examples/standalone/WiFiApp.h | 46 ---------------------- src/examples/standalone/main.cpp | 30 -------------- src/examples/wifi/WiFiApp.h | 24 +++++++++++ src/examples/{standalone => wifi}/config.h | 1 + src/examples/wifi/main.cpp | 28 +++++++++++++ src/examples/{mesh => wifiMesh}/MeshApp.h | 10 +---- src/examples/{mesh => wifiMesh}/README.md | 0 src/examples/{mesh => wifiMesh}/config.h | 0 src/examples/{mesh => wifiMesh}/main.cpp | 3 +- src/plugins/MeshNetworkPlugin.cpp | 2 +- src/plugins/WebServerConfig.h | 1 + 14 files changed, 65 insertions(+), 102 deletions(-) delete mode 100644 src/examples/standalone/WiFiApp.h delete mode 100644 src/examples/standalone/main.cpp create mode 100644 src/examples/wifi/WiFiApp.h rename src/examples/{standalone => wifi}/config.h (96%) create mode 100644 src/examples/wifi/main.cpp rename src/examples/{mesh => wifiMesh}/MeshApp.h (75%) rename src/examples/{mesh => wifiMesh}/README.md (100%) rename src/examples/{mesh => wifiMesh}/config.h (100%) rename src/examples/{mesh => wifiMesh}/main.cpp (80%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 33506d2..c5d1bc8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,11 +34,10 @@ firmware-build: stage: build image: python:2.7-stretch script: - - pio run -t clean + - pio run --target clean - pio run --environment basic - - pio run --environment mesh - - pio run --environment meshMqttBridge - - pio run --environment standalone + - pio run --environment wifi + - pio run --environment wifiMesh artifacts: paths: - .pioenvs/*/firmware.* diff --git a/platformio.ini b/platformio.ini index ab16b02..4c386fc 100644 --- a/platformio.ini +++ b/platformio.ini @@ -46,8 +46,8 @@ monitor_baud = ${common.monitor_baud} framework = ${common.framework} lib_deps = ${common.lib_deps} -[env:mesh] -src_filter = +<*> - + +[env:wifiMesh] +src_filter = +<*> - + platform = ${common.platform} board = ${common.board} upload_speed = ${common.upload_speed} @@ -55,19 +55,13 @@ monitor_baud = ${common.monitor_baud} framework = ${common.framework} lib_deps = ${common.lib_deps} painlessMesh - ESP8266mDNS - ArduinoOTA - ESP Async WebServer - ESPAsyncTCP -;upload_port = 192.168.1.247 -[env:standalone] -src_filter = +<*> - + +[env:wifi] +src_filter = +<*> - + platform = ${common.platform} board = ${common.board} upload_speed = ${common.upload_speed} monitor_baud = ${common.monitor_baud} framework = ${common.framework} lib_deps = ${common.lib_deps} - ArduinoOTA ESP Async WebServer \ No newline at end of file diff --git a/src/MeshNet.cpp b/src/MeshNet.cpp index 81adecc..42c08ce 100644 --- a/src/MeshNet.cpp +++ b/src/MeshNet.cpp @@ -28,6 +28,7 @@ int MeshNet::connect(){ if(config.stationMode){ connectStation(); } + return 1; } int MeshNet::connectStation() { diff --git a/src/examples/standalone/WiFiApp.h b/src/examples/standalone/WiFiApp.h deleted file mode 100644 index d552537..0000000 --- a/src/examples/standalone/WiFiApp.h +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef __WIFI_APP__ -#define __WIFI_APP__ - -#include -#include -#include -//#include -#include -#include -#include "Mediator.h" - -using namespace std; -using namespace std::placeholders; - -AsyncWebServer WEBSERVER(80); - -class WiFiApp : public Sprocket { - public: - Scheduler* ts; - Task someTask; - WiFiApp(SprocketConfig cfg, /* OtaConfig otaCfg, */ WebServerConfig webCfg) : Sprocket(cfg) { - //addPlugin(new OtaTcpPlugin(otaCfg)); - addPlugin(new WebServerPlugin(webCfg, &WEBSERVER)); - addPlugin(new WebConfigPlugin(&WEBSERVER)); - ts = new Scheduler(); - } - - Sprocket* activate(Scheduler* scheduler) { - Sprocket::activate(ts); - Serial.println("activate WiFiApp"); - // add a task - someTask.set(TASK_SECOND, TASK_FOREVER, [](){ - Serial.println("do stuff in task"); - }); - //addTask(someTask); - return this; - } using Sprocket::activate; - void loop(){ - //Sprocket::loop(); - ts->execute(); - yield(); - } -}; - -#endif \ No newline at end of file diff --git a/src/examples/standalone/main.cpp b/src/examples/standalone/main.cpp deleted file mode 100644 index b20bccc..0000000 --- a/src/examples/standalone/main.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "config.h" -#include "WiFiNet.h" -#include "WiFiApp.h" - -/* WiFiConfig wifiCfg = { - .stationMode=SPROCKET_MODE, - .stationSSID=STATION_SSID, - .stationPassword=STATION_PASSWORD, - .apSSID=AP_SSID, - .apPassword=AP_PASSWORD, - .hostname=HOSTNAME, - .connectTimeout=CONNECT_TIMEOUT -}; */ - -WiFiNet net(SPROCKET_MODE,STATION_SSID, STATION_PASSWORD,AP_SSID, AP_PASSWORD,HOSTNAME,CONNECT_TIMEOUT); -WiFiApp sprocket( - { STARTUP_DELAY, SERIAL_BAUD_RATE }, - /* { OTA_PORT, OTA_PASSWORD }, */ - { WEB_CONTEXT_PATH, WEB_DOC_ROOT, WEB_DEFAULT_FILE } -); - -void setup() { - delay(3000); - sprocket.join(net); -} - -void loop() { - sprocket.loop(); - yield(); -} \ No newline at end of file diff --git a/src/examples/wifi/WiFiApp.h b/src/examples/wifi/WiFiApp.h new file mode 100644 index 0000000..ab0c1f5 --- /dev/null +++ b/src/examples/wifi/WiFiApp.h @@ -0,0 +1,24 @@ + +#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/standalone/config.h b/src/examples/wifi/config.h similarity index 96% rename from src/examples/standalone/config.h rename to src/examples/wifi/config.h index 6e39aeb..1ce975a 100644 --- a/src/examples/standalone/config.h +++ b/src/examples/wifi/config.h @@ -27,5 +27,6 @@ #define WEB_CONTEXT_PATH "/" #define WEB_DOC_ROOT "/www" #define WEB_DEFAULT_FILE "index.html" +#define WEB_SERVER_PORT 80 #endif \ No newline at end of file diff --git a/src/examples/wifi/main.cpp b/src/examples/wifi/main.cpp new file mode 100644 index 0000000..8e300df --- /dev/null +++ b/src/examples/wifi/main.cpp @@ -0,0 +1,28 @@ +#include "config.h" +#include "WiFiNet.h" +#include "WiFiApp.h" + +WiFiNet wifi( + SPROCKET_MODE, + STATION_SSID, + STATION_PASSWORD, + AP_SSID, + AP_PASSWORD, + HOSTNAME, + CONNECT_TIMEOUT); +WiFiApp sprocket( + {STARTUP_DELAY, SERIAL_BAUD_RATE}, + {WEB_CONTEXT_PATH, WEB_DOC_ROOT, WEB_DEFAULT_FILE, WEB_SERVER_PORT}); + +void setup() +{ + delay(3000); + wifi.connect(); + sprocket.activate(); +} + +void loop() +{ + sprocket.loop(); + yield(); +} \ No newline at end of file diff --git a/src/examples/mesh/MeshApp.h b/src/examples/wifiMesh/MeshApp.h similarity index 75% rename from src/examples/mesh/MeshApp.h rename to src/examples/wifiMesh/MeshApp.h index 5305b14..e3a272f 100644 --- a/src/examples/mesh/MeshApp.h +++ b/src/examples/wifiMesh/MeshApp.h @@ -4,26 +4,18 @@ #include #include #include -#include -#include -#include -#include "Mediator.h" using namespace std; using namespace std::placeholders; -AsyncWebServer WEBSERVER(80); - class MeshApp : public Sprocket { public: Task heartbeatTask; - MeshApp(SprocketConfig cfg, MeshConfig meshCfg, WebServerConfig webCfg) : Sprocket(cfg) + MeshApp(SprocketConfig cfg, MeshConfig meshCfg) : Sprocket(cfg) { addPlugin(new MeshNetworkPlugin(meshCfg)); - addPlugin(new WebServerPlugin(webCfg, &WEBSERVER)); - addPlugin(new WebConfigPlugin(&WEBSERVER)); subscribe("device/heartbeat", bind(&MeshApp::messageHandler, this, _1)); } diff --git a/src/examples/mesh/README.md b/src/examples/wifiMesh/README.md similarity index 100% rename from src/examples/mesh/README.md rename to src/examples/wifiMesh/README.md diff --git a/src/examples/mesh/config.h b/src/examples/wifiMesh/config.h similarity index 100% rename from src/examples/mesh/config.h rename to src/examples/wifiMesh/config.h diff --git a/src/examples/mesh/main.cpp b/src/examples/wifiMesh/main.cpp similarity index 80% rename from src/examples/mesh/main.cpp rename to src/examples/wifiMesh/main.cpp index 91a9f1c..009c280 100644 --- a/src/examples/mesh/main.cpp +++ b/src/examples/wifiMesh/main.cpp @@ -6,8 +6,7 @@ MeshApp sprocket( {SPROCKET_MODE, WIFI_CHANNEL, MESH_PORT, MESH_PREFIX, MESH_PASSWORD, STATION_SSID, STATION_PASSWORD, HOSTNAME, - MESH_DEBUG_TYPES}, - {WEB_CONTEXT_PATH, WEB_DOC_ROOT, WEB_DEFAULT_FILE}); + MESH_DEBUG_TYPES}); void setup() { diff --git a/src/plugins/MeshNetworkPlugin.cpp b/src/plugins/MeshNetworkPlugin.cpp index c6a4897..87757ba 100644 --- a/src/plugins/MeshNetworkPlugin.cpp +++ b/src/plugins/MeshNetworkPlugin.cpp @@ -27,8 +27,8 @@ class MeshNetworkPlugin : public NetworkPlugin { userScheduler->setHighPriorityScheduler(meshScheduler); network->onReceive(bind(&MeshNetworkPlugin::dispatch, this, _1, _2)); - // TODO base subscribers subscribe("mesh/broadcast", bind(&MeshNetworkPlugin::broadcast, this, _1)); + // TODO mesh/sendTo NetworkPlugin::activate(meshScheduler); } void broadcast(String msg) diff --git a/src/plugins/WebServerConfig.h b/src/plugins/WebServerConfig.h index 7f58009..70c2433 100644 --- a/src/plugins/WebServerConfig.h +++ b/src/plugins/WebServerConfig.h @@ -5,6 +5,7 @@ struct WebServerConfig { const char* contextPath; const char* docRoot; const char* defaultFile; + int port; }; #endif \ No newline at end of file