diff --git a/Network.cpp b/Network.cpp index 24b3c8a..3525982 100644 --- a/Network.cpp +++ b/Network.cpp @@ -49,7 +49,7 @@ void Network::initialize() } -void Network::reconnect() +bool Network::reconnect() { while (!_mqttClient.connected()) { Serial.print("Attempting MQTT connection..."); @@ -73,9 +73,19 @@ void Network::reconnect() void Network::update() { + if(!WiFi.isConnected()) + { + Serial.println(F("WiFi not connected")); + vTaskDelay( 1000 / portTICK_PERIOD_MS); + } + if(!_mqttClient.connected()) { - reconnect(); + bool success = reconnect(); + if(!success) + { + return; + } } unsigned long ts = millis(); @@ -92,4 +102,6 @@ void Network::update() } _mqttClient.loop(); + + vTaskDelay( 100 / portTICK_PERIOD_MS); } diff --git a/Network.h b/Network.h index 3ffdcd2..7dc918c 100644 --- a/Network.h +++ b/Network.h @@ -12,7 +12,7 @@ public: void update(); private: - void reconnect(); + bool reconnect(); PubSubClient _mqttClient; WiFiClient _wifiClient; diff --git a/main.cpp b/main.cpp index 8ba754a..5f95a25 100644 --- a/main.cpp +++ b/main.cpp @@ -11,7 +11,10 @@ Nuki nuki("door", 0); void networkTask(void *pvParameters) { - network.update(); + while(true) + { + network.update(); + } } void nukiTask(void *pvParameters) @@ -21,32 +24,16 @@ void nukiTask(void *pvParameters) void setupTasks() { - xTaskCreate(networkTask, "ntw", 1024, NULL, 1, NULL); - xTaskCreate(nukiTask, "nuki", 1024, NULL, 1, NULL); + xTaskCreate(networkTask, "ntw", 2048, NULL, 1, NULL); +// xTaskCreate(nukiTask, "nuki", 1024, NULL, 1, NULL); } void setup() { network.initialize(); // nuki.initialize(); - - /* - Serial.begin(115200); - - WiFi.begin(ssid, password); - - while (WiFi.status() != WL_CONNECTED) - { - delay(500); - Serial.println("Connecting to WiFi.."); - } - - Serial.println("Connected to the WiFi network"); - */ setupTasks(); } void loop() -{ -// nuki.update(); -} \ No newline at end of file +{} \ No newline at end of file