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