From 5977b0585d70f049af2f7a45bac6e5dc2f9b9a25 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 3 Jul 2023 21:09:56 +0200 Subject: [PATCH] update mqtClient --- lib/espMqttClient/src/Config.h | 4 ++-- lib/espMqttClient/src/Helpers.h | 2 +- lib/espMqttClient/src/MqttClient.cpp | 13 +++++-------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/espMqttClient/src/Config.h b/lib/espMqttClient/src/Config.h index aba779565..940c2dea8 100644 --- a/lib/espMqttClient/src/Config.h +++ b/lib/espMqttClient/src/Config.h @@ -9,7 +9,7 @@ the LICENSE file. #pragma once #ifndef EMC_TX_TIMEOUT -#define EMC_TX_TIMEOUT 5000 +#define EMC_TX_TIMEOUT 2000 #endif #ifndef EMC_RX_BUFFER_SIZE @@ -29,7 +29,7 @@ the LICENSE file. #endif #ifndef EMC_MIN_FREE_MEMORY -#define EMC_MIN_FREE_MEMORY 4096 +#define EMC_MIN_FREE_MEMORY 16384 #endif #ifndef EMC_ESP8266_MULTITHREADING diff --git a/lib/espMqttClient/src/Helpers.h b/lib/espMqttClient/src/Helpers.h index 4a19224ba..05ab136d9 100644 --- a/lib/espMqttClient/src/Helpers.h +++ b/lib/espMqttClient/src/Helpers.h @@ -16,7 +16,7 @@ the LICENSE file. #define EMC_SEMAPHORE_TAKE() xSemaphoreTake(_xSemaphore, portMAX_DELAY) #define EMC_SEMAPHORE_GIVE() xSemaphoreGive(_xSemaphore) #define EMC_GET_FREE_MEMORY() std::max(ESP.getMaxAllocHeap(), ESP.getMaxAllocPsram()) - #define EMC_YIELD() taskYIELD() + #define EMC_YIELD() vTaskDelay(1) #define EMC_GENERATE_CLIENTID(x) snprintf(x, EMC_CLIENTID_LENGTH, "esp32%06llx", ESP.getEfuseMac()); #elif defined(ARDUINO_ARCH_ESP8266) #include // millis(), ESP.getFreeHeap(); diff --git a/lib/espMqttClient/src/MqttClient.cpp b/lib/espMqttClient/src/MqttClient.cpp index 2f1d0d643..f93bb78f5 100644 --- a/lib/espMqttClient/src/MqttClient.cpp +++ b/lib/espMqttClient/src/MqttClient.cpp @@ -332,8 +332,8 @@ int MqttClient::_sendPacket() { EMC_SEMAPHORE_TAKE(); OutgoingPacket * packet = _outbox.getCurrent(); - int32_t wantToWrite = 0; - int32_t written = 0; + size_t wantToWrite = 0; + size_t written = 0; if (packet && (wantToWrite == written)) { // mixing signed with unsigned here but safe because of MQTT packet size limits wantToWrite = packet->packet.available(_bytesSent); @@ -341,12 +341,7 @@ int MqttClient::_sendPacket() { EMC_SEMAPHORE_GIVE(); return 0; } - written = _transport->write(packet->packet.data(_bytesSent), wantToWrite); - if (written < 0) { - emc_log_w("Write error, check connection"); - EMC_SEMAPHORE_GIVE(); - return -1; - } + written = _transport->write(packet->packet.data(_bytesSent), wantToWrite); packet->timeSent = millis(); _lastClientActivity = millis(); _bytesSent += written; @@ -707,7 +702,9 @@ uint16_t MqttClient::getQueue() const { espMqttClientInternals::Outbox::Iterator it = _outbox.front(); uint16_t count = 0; while (it) { + // if (it.get()->packet.packetType() == PacketType.PUBLISH) { ++count; + // } ++it; } EMC_SEMAPHORE_GIVE();