diff --git a/src/MeshNet.h b/src/MeshNet.h index 688b2be..067560c 100644 --- a/src/MeshNet.h +++ b/src/MeshNet.h @@ -15,8 +15,8 @@ using namespace std::placeholders; #define MESH_PASSWORD "somethingSneaky" #define MESH_PORT 5555 -#define STATION_SSID "Th1ngs4p" -#define STATION_PWD "th3r31sn0sp00n" +#define STATION_SSID "tErAx1d" +#define STATION_PWD "ramalamadingdong" #define HOSTNAME "MeshNode" class MeshNet : public Network { diff --git a/src/Sprocket.cpp b/src/Sprocket.cpp index cc66698..46b9f54 100644 --- a/src/Sprocket.cpp +++ b/src/Sprocket.cpp @@ -5,6 +5,7 @@ Sprocket::Sprocket(){ } Sprocket* Sprocket::init(SprocketConfig cfg){ + delay(cfg.startupDelay); Serial.begin(cfg.serialBaudRate); SPIFFS.begin(); return this; @@ -42,7 +43,7 @@ Sprocket* Sprocket::app(App& app){ } void Sprocket::loop(){ - network.update(); + //network.update(); scheduler.execute(); //stack->loop(); } \ No newline at end of file diff --git a/src/Sprocket.h b/src/Sprocket.h index 7ba3adb..7bc17c3 100644 --- a/src/Sprocket.h +++ b/src/Sprocket.h @@ -10,26 +10,24 @@ #include "Network.h" struct SprocketConfig { + int startupDelay; int serialBaudRate; }; class Sprocket { + protected: + Scheduler scheduler; private: AppStack* stack; // REMOVE - Scheduler scheduler; - Network network; public: Sprocket(); Sprocket* init(SprocketConfig); Sprocket* join(Network&); Sprocket* join(Network&, App&); // REMOVE Sprocket* use(AppStack*); // REMOVE - Sprocket* addTask(Task&); // REMOVE + Sprocket* addTask(Task&); // REMOVE ?? Sprocket* app(App&); // REMOVE - void loop(); - virtual Sprocket* activate() { - activate(&scheduler, &network); - } + virtual void loop(); virtual Sprocket* activate(Scheduler* scheduler, Network* network) {} }; diff --git a/src/examples/basic/basic.cpp b/src/examples/basic/basic.cpp index 29deb66..1d30824 100644 --- a/src/examples/basic/basic.cpp +++ b/src/examples/basic/basic.cpp @@ -11,7 +11,7 @@ #define SERIAL_BAUD_RATE 115200 #define STARTUP_DELAY 3000 -SprocketConfig config = { SERIAL_BAUD_RATE }; +SprocketConfig config = { STARTUP_DELAY, SERIAL_BAUD_RATE }; WiFiNet net; Sprocket sprocket; diff --git a/src/examples/mesh/mesh.cpp b/src/examples/mesh/mesh.cpp index addd086..f1ab1db 100644 --- a/src/examples/mesh/mesh.cpp +++ b/src/examples/mesh/mesh.cpp @@ -10,7 +10,7 @@ #define SERIAL_BAUD_RATE 115200 #define STARTUP_DELAY 3000 -SprocketConfig config = { SERIAL_BAUD_RATE }; +SprocketConfig config = { STARTUP_DELAY, SERIAL_BAUD_RATE }; Sprocket sprocket; //AppStack stack; diff --git a/src/examples/mqttBridge/MqttMeshBridge.h b/src/examples/mqttBridge/MqttMeshBridge.h index 1c82bb1..a6d3e8b 100644 --- a/src/examples/mqttBridge/MqttMeshBridge.h +++ b/src/examples/mqttBridge/MqttMeshBridge.h @@ -4,7 +4,7 @@ #include #include #include -#include "App.h" +#include "Sprocket.h" #include "MeshNet.h" #define MQTT_CLIENT_NAME "meshBridge" @@ -18,6 +18,12 @@ using namespace std; using namespace std::placeholders; +struct MqttConfig { + const char* clientName; + const char* brokerHost; + int brokerPort; +}; + WiFiClient wifiClient; class MqttMeshBridge : public Sprocket { @@ -27,10 +33,11 @@ class MqttMeshBridge : public Sprocket { Task connectTask; Task processTask; - MqttMeshBridge() { + MqttMeshBridge(MqttConfig cfg) : Sprocket() { } Sprocket* activate(Scheduler* scheduler, Network* network) { + Serial.println("activate MQTT bridge"); net = static_cast(network); net->mesh.onReceive(bind(&MqttMeshBridge::receivedCallback,this, _1, _2)); client = new PubSubClient(MQTT_BROKER_HOST, MQTT_BROKER_PORT, bind(&MqttMeshBridge::mqttCallback, this, _1, _2, _3), wifiClient); @@ -39,6 +46,11 @@ class MqttMeshBridge : public Sprocket { return this; } + void loop() { + net->update(); + scheduler.execute(); + } + void enableConnectTask(Scheduler* scheduler) { connectTask.set(TASK_SECOND * 5, TASK_FOREVER, bind(&MqttMeshBridge::connect, this)); scheduler->addTask(connectTask); diff --git a/src/examples/mqttBridge/bridge.cpp b/src/examples/mqttBridge/bridge.cpp index c1ff9f4..caca954 100644 --- a/src/examples/mqttBridge/bridge.cpp +++ b/src/examples/mqttBridge/bridge.cpp @@ -10,14 +10,12 @@ #define SERIAL_BAUD_RATE 115200 #define STARTUP_DELAY 3000 -SprocketConfig config = { SERIAL_BAUD_RATE }; +SprocketConfig config = { STARTUP_DELAY, SERIAL_BAUD_RATE }; -Sprocket sprocket; MeshNet net; -MqttMeshBridge app; +MqttMeshBridge sprocket({"","",1883}); void setup() { - delay(STARTUP_DELAY); sprocket.init(config); sprocket.join(net); }