1
0
mirror of https://github.com/adafruit/Adafruit_MQTT_Library.git synced 2025-12-19 20:02:29 +03:00

feedback fixes

Thx @brentru . Changes have been made and tested.

- rev library 2.6.1 -> 2.6.2
- move setup() / loop() to bottom
- drop prototypes
- -10 safety margin added as #define
This commit is contained in:
Mikey Sklar
2025-11-24 07:27:36 -08:00
parent 475ec7ade7
commit fef830edc2
2 changed files with 44 additions and 39 deletions

View File

@@ -42,10 +42,23 @@
#define ESP32_GPIO0 -1
/*************************** Timing / Params ***************************/
// MQTT KeepAlive interval (seconds). The client must send at least one
// packet (e.g., PINGREQ) within this interval or the MQTT server will
// disconnect the session.
#define AIRLIFT_KEEPALIVE 30
// Safety margin (seconds) to subtract before sending a manual PING.
// AirLift/NINA-FW firmware does not reliably handle automatic MQTT
// KeepAlive packets, and real-world testing shows a 10 second margin
// prevents premature disconnects (“No socket available”).
#define KEEPALIVE_SAFETY_MARGIN 10
#define MAX_MQTT_RETRIES 5
#define SUBSCRIBE_WAIT_MS 1500
#define PING_PERIOD_MS ((AIRLIFT_KEEPALIVE - 10) * 1000)
// Time (milliseconds) between manual MQTT PING operations.
#define PING_PERIOD_MS \
((AIRLIFT_KEEPALIVE - KEEPALIVE_SAFETY_MARGIN) * 1000)
/*************************** MQTT Objects ******************************/
WiFiClient client;
@@ -65,43 +78,6 @@ Adafruit_MQTT_Subscribe time_subscription =
unsigned long ping_clk = 0;
long ping_cnt = 0;
/*************************** Function Prototypes ***********************/
void initWiFi();
void MQTT_connect();
void MQTT_ping();
void printCurrentNet();
void printWiFiData();
void printMacAddress(byte mac[]);
/*************************** Setup *************************************/
void setup() {
Serial.begin(115200);
while (!Serial) delay(10);
Serial.println("MQTT AirLift Subscribe + KeepAlive Example");
initWiFi();
mqtt.setKeepAliveInterval(AIRLIFT_KEEPALIVE);
mqtt.subscribe(&time_subscription);
MQTT_connect();
}
/*************************** Main Loop *********************************/
void loop() {
MQTT_ping();
Adafruit_MQTT_Subscribe *subscription =
mqtt.readSubscription(SUBSCRIBE_WAIT_MS);
if (subscription == &time_subscription) {
Serial.print("TIME FEED: ");
Serial.println((char *)time_subscription.lastread);
}
}
/*************************** MQTT Connect ******************************/
void MQTT_connect() {
@@ -241,3 +217,32 @@ void printMacAddress(byte mac[]) {
}
Serial.print(" ");
}
/*************************** Setup *************************************/
void setup() {
Serial.begin(115200);
while (!Serial) delay(10);
Serial.println("MQTT AirLift Subscribe + KeepAlive Example");
initWiFi();
mqtt.setKeepAliveInterval(AIRLIFT_KEEPALIVE);
mqtt.subscribe(&time_subscription);
MQTT_connect();
}
/*************************** Main Loop *********************************/
void loop() {
MQTT_ping();
Adafruit_MQTT_Subscribe *subscription =
mqtt.readSubscription(SUBSCRIBE_WAIT_MS);
if (subscription == &time_subscription) {
Serial.print("TIME FEED: ");
Serial.println((char *)time_subscription.lastread);
}
}

View File

@@ -1,5 +1,5 @@
name=Adafruit MQTT Library
version=2.6.1
version=2.6.2
author=Adafruit
maintainer=Adafruit <info@adafruit.com>
sentence=MQTT library that supports the FONA, ESP8266, ESP32, Yun, and generic Arduino Client hardware.