From 37182cf13ce999a4370b5463b6ca46239aa89612 Mon Sep 17 00:00:00 2001 From: idostern9 Date: Mon, 19 Jun 2023 13:27:02 +0300 Subject: [PATCH 1/7] change static timer in keepalive func to regular timer --- paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h index 6afd927..690c03a 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h @@ -256,7 +256,9 @@ class Client unsigned char sendbuf[MAX_MQTT_PACKET_SIZE]; unsigned char readbuf[MAX_MQTT_PACKET_SIZE]; - Timer last_sent, last_received; + Timer last_sent; + Timer last_received; + Timer ping_sent; unsigned int keepAliveInterval; bool ping_outstanding; bool cleansession; @@ -700,7 +702,6 @@ template int MQTT::Client::keepalive() { int rc = SUCCESS; - static Timer ping_sent; if (keepAliveInterval == 0) goto exit; From a0456e8fd0db8cc3cf710e65c3ac54e5b6c9e369 Mon Sep 17 00:00:00 2001 From: idostern9 Date: Tue, 25 Jul 2023 12:00:06 +0300 Subject: [PATCH 2/7] MQTT delete unity --- src/MQTTClientMbedOs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MQTTClientMbedOs.h b/src/MQTTClientMbedOs.h index a3459e6..9b93a43 100644 --- a/src/MQTTClientMbedOs.h +++ b/src/MQTTClientMbedOs.h @@ -22,7 +22,7 @@ #include #include #include -#include "unity/unity.h" +// #include "unity/unity.h" #include "FP.h" #include From 1a93b6695d67572c63040d4b0d9a0b45963ed4aa Mon Sep 17 00:00:00 2001 From: idostern9 Date: Wed, 9 Aug 2023 08:54:47 +0300 Subject: [PATCH 3/7] removed dependancy on unity unit testing --- src/MQTTClientMbedOs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MQTTClientMbedOs.h b/src/MQTTClientMbedOs.h index a3459e6..9b93a43 100644 --- a/src/MQTTClientMbedOs.h +++ b/src/MQTTClientMbedOs.h @@ -22,7 +22,7 @@ #include #include #include -#include "unity/unity.h" +// #include "unity/unity.h" #include "FP.h" #include From 8f0790afdb05b801b8b571a10e25f987ff2e409a Mon Sep 17 00:00:00 2001 From: idostern9 Date: Mon, 26 Feb 2024 09:50:58 +0200 Subject: [PATCH 4/7] add stop to timers (countdown) --- paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h | 3 +++ paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h index 690c03a..da04bc9 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h @@ -1067,6 +1067,9 @@ int MQTT::Client::disconnect() if (len > 0) rc = sendPacket(len, timer); // send the disconnect packet closeSession(); + last_sent.stop(); + last_received.stop(); + ping_sent.stop(); return rc; } diff --git a/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h b/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h index 46f00e6..f9f4f9e 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h @@ -57,6 +57,12 @@ class Countdown return interval_end_ms - t.read_ms(); } + void stop() + { + t.stop(); + t.reset(); + } + private: Timer t; unsigned long interval_end_ms; From ca4d8258bb74fc1aa08c261ae2a3366abcaf6358 Mon Sep 17 00:00:00 2001 From: idostern9 Date: Wed, 22 May 2024 09:49:53 +0300 Subject: [PATCH 5/7] compile warnings cleaning --- paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h b/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h index f9f4f9e..82c9492 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/mbed/MQTTmbed.h @@ -36,7 +36,7 @@ class Countdown bool expired() { - return t.read_ms() >= interval_end_ms; + return (unsigned long)t.read_ms() >= interval_end_ms; } void countdown_ms(unsigned long ms) From 4be654a389f947fc848a40a830d7c081a228c2dc Mon Sep 17 00:00:00 2001 From: idostern9 Date: Sun, 26 May 2024 15:20:06 +0300 Subject: [PATCH 6/7] add close session for mqtt client in order to set is_connected to false after socket is closed --- paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h | 6 ++---- src/MQTTClientMbedOs.cpp | 5 +++++ src/MQTTClientMbedOs.h | 2 ++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h index da04bc9..050024d 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h @@ -114,7 +114,6 @@ class Client { public: - typedef void (*messageHandler)(MessageData&); /** Construct the client @@ -234,10 +233,9 @@ class Client { return isconnected; } - -private: - void closeSession(); + +private: void cleanSession(); int cycle(Timer& timer); int waitfor(int packet_type, Timer& timer); diff --git a/src/MQTTClientMbedOs.cpp b/src/MQTTClientMbedOs.cpp index 611e696..561d865 100644 --- a/src/MQTTClientMbedOs.cpp +++ b/src/MQTTClientMbedOs.cpp @@ -214,3 +214,8 @@ void MQTTClient::init(Socket *sock) client = NULL; clientSN = NULL; } + +void MQTTClient::mqttClientCloseSession() +{ + client->closeSession(); +} diff --git a/src/MQTTClientMbedOs.h b/src/MQTTClientMbedOs.h index 9b93a43..81e16ea 100644 --- a/src/MQTTClientMbedOs.h +++ b/src/MQTTClientMbedOs.h @@ -234,6 +234,8 @@ class MQTTClient { */ nsapi_error_t setMessageHandler(const char *topicFilter, messageHandler mh); + void mqttClientCloseSession(); + private: /** * @brief Helper function to initialize member variables. From 6d697cf486986ee3b0c55a9f3036b8264e6f3cc9 Mon Sep 17 00:00:00 2001 From: idostern9 Date: Sun, 26 May 2024 18:12:50 +0300 Subject: [PATCH 7/7] stop timers of mqtt in closeSession() --- paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h index 050024d..5309f19 100644 --- a/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h +++ b/paho_mqtt_embedded_c/MQTTClient/src/MQTTClient.h @@ -318,6 +318,9 @@ void MQTT::Client::cleanSession() template void MQTT::Client::closeSession() { + last_sent.stop(); + last_received.stop(); + ping_sent.stop(); ping_outstanding = false; isconnected = false; if (cleansession)