From e14e71b5cc79ef34058cbb2600883c69179eca64 Mon Sep 17 00:00:00 2001 From: technyon Date: Fri, 27 Jan 2023 20:26:54 +0100 Subject: [PATCH] fix on mqtt date received handlers --- Network.cpp | 17 ++++++++++------- NetworkLock.cpp | 8 +------- NetworkOpener.cpp | 12 ++++-------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/Network.cpp b/Network.cpp index 1b5c1f7..1220719 100644 --- a/Network.cpp +++ b/Network.cpp @@ -280,11 +280,7 @@ bool Network::reconnect() _device->mqttClient()->publish(it.first.c_str(), MQTT_QOS_LEVEL, true, it.second.c_str()); } } - for(int i=0; i<10; i++) - { -// _device->mqttClient()->poll(); - delay(100); - } + delay(1000); _mqttConnectionState = 2; } else @@ -292,7 +288,6 @@ bool Network::reconnect() Log->print(F("MQTT connect failed, rc=")); // Log->println(_device->mqttClient()->connectError()); _device->printError(); -// _device->mqttClient()->stop(); _mqttConnectionState = 0; _nextReconnect = millis() + 5000; } @@ -345,7 +340,15 @@ void Network::registerMqttReceiver(MqttReceiver* receiver) void Network::onMqttDataReceivedCallback(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) { - _inst->onMqttDataReceived(properties, topic, payload, len, index, total); + uint8_t value[50] = {0}; + size_t l = min(len, sizeof(value)-1); + + for(int i=0; ionMqttDataReceived(properties, topic, value, len, index, total); } void Network::onMqttDataReceived(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) diff --git a/NetworkLock.cpp b/NetworkLock.cpp index d9a4109..6466a19 100644 --- a/NetworkLock.cpp +++ b/NetworkLock.cpp @@ -73,13 +73,7 @@ void NetworkLock::initialize() void NetworkLock::onMqttDataReceived(const char* topic, byte* payload, const unsigned int length) { - char value[50] = {0}; - size_t l = min(length, sizeof(value)-1); - - for(int i=0; imqttConnectionState() >= 2; diff --git a/NetworkOpener.cpp b/NetworkOpener.cpp index 32a61cc..2a0a95f 100644 --- a/NetworkOpener.cpp +++ b/NetworkOpener.cpp @@ -58,19 +58,14 @@ void NetworkOpener::update() void NetworkOpener::onMqttDataReceived(const char* topic, byte* payload, const unsigned int length) { - char value[50] = {0}; - size_t l = min(length, sizeof(value)-1); - - for(int i=0; imqttConnectionState() >= 2; if(processActions && comparePrefixedPath(topic, mqtt_topic_lock_action)) { - if(strcmp(value, "") == 0 || strcmp(value, "--") == 0 || strcmp(value, "ack") == 0 || strcmp(value, "unknown_action") == 0) return; + Serial.println(value); + if(strcmp((char*)payload, "") == 0 || strcmp(value, "--") == 0 || strcmp(value, "ack") == 0 || strcmp(value, "unknown_action") == 0) return; Log->print(F("Opener lock action received: ")); Log->println(value); @@ -489,5 +484,6 @@ bool NetworkOpener::comparePrefixedPath(const char *fullPath, const char *subPat { char prefixedPath[500]; buildMqttPath(subPath, prefixedPath); + return strcmp(fullPath, prefixedPath) == 0; }